svf-tools 1.0.321 → 1.0.325

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 (487) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
  6. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +13 -12
  7. package/SVF-doxygen/html/html/ConsG_8h_source.html +15 -15
  8. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  9. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  11. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  12. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
  14. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  15. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  16. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
  18. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  19. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  20. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +4 -4
  23. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +4 -4
  24. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
  25. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/IRGraph_8cpp.html +1 -0
  27. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -18
  28. package/SVF-doxygen/html/html/IRGraph_8h_source.html +13 -13
  29. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +6 -6
  30. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
  31. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
  32. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +24 -24
  33. package/SVF-doxygen/html/html/MemRegion_8h_source.html +13 -13
  34. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +13 -13
  35. package/SVF-doxygen/html/html/MemSSA_8h_source.html +13 -13
  36. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  37. package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -1
  38. package/SVF-doxygen/html/html/Options_8h_source.html +2 -1
  39. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  40. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +8 -8
  41. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +8 -8
  42. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +3 -3
  43. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +8 -8
  44. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
  45. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  49. package/SVF-doxygen/html/html/SVFG_8cpp.html +1 -0
  50. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +63 -61
  51. package/SVF-doxygen/html/html/SVFG_8h_source.html +20 -20
  52. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
  53. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +42 -42
  54. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +61 -61
  55. package/SVF-doxygen/html/html/SVFIR_8h_source.html +153 -154
  56. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -22
  57. package/SVF-doxygen/html/html/SVFStatements_8h.html +11 -11
  58. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +133 -132
  59. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +9 -9
  60. package/SVF-doxygen/html/html/SVFVariables_8h.html +9 -9
  61. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +78 -78
  62. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  63. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  66. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +13 -13
  67. package/SVF-doxygen/html/html/VFGNode_8h_source.html +17 -17
  68. package/SVF-doxygen/html/html/VFG_8cpp_source.html +48 -48
  69. package/SVF-doxygen/html/html/VFG_8h_source.html +35 -35
  70. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  71. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  72. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  73. package/SVF-doxygen/html/html/annotated.html +21 -21
  74. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  75. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  76. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
  77. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +137 -0
  78. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +500 -0
  79. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.png +0 -0
  80. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
  81. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +7 -7
  82. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  83. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +4 -4
  84. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +34 -34
  85. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +4 -4
  86. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +12 -12
  87. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +4 -4
  88. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +8 -8
  89. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +4 -4
  90. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +8 -8
  91. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +4 -4
  92. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -8
  93. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +4 -4
  94. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +8 -8
  95. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +4 -4
  96. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +11 -11
  97. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +9 -9
  98. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +4 -4
  99. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +8 -8
  100. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +4 -4
  101. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +26 -26
  102. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +155 -0
  103. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +756 -0
  104. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.png +0 -0
  105. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +20 -19
  106. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +33 -31
  107. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  108. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode-members.html +8 -8
  109. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +6 -6
  110. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  111. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +20 -19
  112. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +24 -22
  113. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +169 -0
  114. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +537 -0
  115. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.png +0 -0
  116. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +169 -0
  117. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +547 -0
  118. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.png +0 -0
  119. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +172 -0
  120. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +556 -0
  121. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.png +0 -0
  122. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +75 -22
  123. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +479 -93
  124. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.png +0 -0
  125. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +4 -4
  126. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +11 -11
  127. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +5 -5
  128. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +46 -46
  129. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  130. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  131. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +18 -18
  133. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +57 -21
  134. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +253 -89
  135. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.png +0 -0
  136. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +7 -7
  138. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
  140. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +10 -10
  141. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +19 -19
  142. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +27 -27
  143. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +167 -0
  144. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +531 -0
  145. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.png +0 -0
  146. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +165 -0
  147. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +502 -0
  148. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.png +0 -0
  149. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +167 -0
  150. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +577 -0
  151. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.png +0 -0
  152. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +4 -4
  153. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +8 -8
  154. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +4 -4
  155. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +16 -16
  156. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +4 -4
  157. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +27 -27
  158. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +8 -8
  159. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +8 -8
  160. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +26 -26
  161. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  162. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +4 -4
  163. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode-members.html +6 -6
  164. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +6 -6
  165. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode-members.html +6 -6
  166. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +6 -6
  167. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +6 -6
  169. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  170. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +23 -22
  171. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  172. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN-members.html +12 -12
  173. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +61 -61
  174. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.png +0 -0
  175. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +57 -22
  176. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +259 -118
  177. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.png +0 -0
  178. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +7 -7
  180. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +170 -0
  181. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +752 -0
  182. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.png +0 -0
  183. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode-members.html +6 -6
  184. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +6 -6
  185. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +6 -6
  186. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +22 -22
  187. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +6 -6
  188. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +8 -8
  190. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +54 -54
  191. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  192. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode-members.html +6 -6
  193. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode.html +6 -6
  194. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +20 -20
  195. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +27 -27
  196. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
  197. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode-members.html +6 -6
  198. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +6 -6
  199. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +20 -20
  200. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +27 -27
  201. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  202. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +3 -3
  203. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +6 -6
  204. package/SVF-doxygen/html/html/classSVF_1_1LoadMU-members.html +3 -3
  205. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +20 -20
  206. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +57 -21
  207. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +253 -89
  208. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.png +0 -0
  209. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +7 -7
  211. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +23 -23
  212. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +147 -147
  213. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
  216. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
  217. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +25 -25
  218. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +102 -102
  219. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +24 -23
  220. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +36 -34
  221. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.png +0 -0
  222. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +142 -0
  223. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +649 -0
  224. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.png +0 -0
  225. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +165 -0
  226. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +644 -0
  227. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
  228. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +5 -5
  229. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +13 -13
  230. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +21 -20
  231. package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -0
  232. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +16 -16
  233. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +8 -8
  234. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +74 -22
  235. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +447 -98
  236. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.png +0 -0
  237. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +4 -4
  238. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +55 -55
  239. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode-members.html +7 -7
  240. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +6 -6
  241. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  242. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +20 -19
  243. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +24 -22
  244. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +8 -8
  245. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +24 -24
  246. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +56 -56
  247. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +103 -103
  248. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  249. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +68 -68
  250. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +45 -45
  251. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +132 -133
  252. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +759 -777
  253. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +12 -12
  254. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +180 -180
  255. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +23 -22
  256. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +57 -39
  257. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.png +0 -0
  258. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +8 -8
  259. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +82 -82
  260. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  261. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +11 -11
  262. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  263. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +4 -4
  264. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +8 -8
  265. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI-members.html +3 -3
  266. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +20 -20
  267. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +57 -21
  268. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +260 -89
  269. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.png +0 -0
  270. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +7 -7
  272. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +23 -22
  273. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +18 -16
  274. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +23 -22
  275. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +18 -16
  276. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  277. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  278. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +4 -4
  279. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +10 -10
  280. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +28 -28
  281. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +147 -0
  282. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +794 -0
  283. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.png +0 -0
  284. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +42 -42
  285. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +145 -145
  286. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +163 -0
  287. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +521 -0
  288. package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
  289. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +8 -8
  290. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +24 -24
  291. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +139 -0
  292. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +544 -0
  293. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.png +0 -0
  294. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +4 -4
  295. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +18 -18
  296. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
  297. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
  298. package/SVF-doxygen/html/html/classes.html +18 -18
  299. package/SVF-doxygen/html/html/functions_a.html +55 -55
  300. package/SVF-doxygen/html/html/functions_b.html +2 -2
  301. package/SVF-doxygen/html/html/functions_c.html +54 -59
  302. package/SVF-doxygen/html/html/functions_d.html +4 -4
  303. package/SVF-doxygen/html/html/functions_f.html +5 -5
  304. package/SVF-doxygen/html/html/functions_func.html +54 -54
  305. package/SVF-doxygen/html/html/functions_func_b.html +2 -2
  306. package/SVF-doxygen/html/html/functions_func_c.html +30 -30
  307. package/SVF-doxygen/html/html/functions_func_d.html +4 -4
  308. package/SVF-doxygen/html/html/functions_func_f.html +2 -2
  309. package/SVF-doxygen/html/html/functions_func_g.html +107 -105
  310. package/SVF-doxygen/html/html/functions_func_h.html +6 -6
  311. package/SVF-doxygen/html/html/functions_func_l.html +3 -3
  312. package/SVF-doxygen/html/html/functions_func_n.html +2 -2
  313. package/SVF-doxygen/html/html/functions_func_o.html +15 -15
  314. package/SVF-doxygen/html/html/functions_func_p.html +2 -2
  315. package/SVF-doxygen/html/html/functions_func_s.html +4 -4
  316. package/SVF-doxygen/html/html/functions_func_t.html +20 -20
  317. package/SVF-doxygen/html/html/functions_func_u.html +2 -2
  318. package/SVF-doxygen/html/html/functions_func_v.html +5 -5
  319. package/SVF-doxygen/html/html/functions_g.html +123 -121
  320. package/SVF-doxygen/html/html/functions_h.html +6 -6
  321. package/SVF-doxygen/html/html/functions_i.html +15 -15
  322. package/SVF-doxygen/html/html/functions_k.html +9 -0
  323. package/SVF-doxygen/html/html/functions_l.html +12 -12
  324. package/SVF-doxygen/html/html/functions_m.html +1 -1
  325. package/SVF-doxygen/html/html/functions_n.html +6 -6
  326. package/SVF-doxygen/html/html/functions_o.html +32 -35
  327. package/SVF-doxygen/html/html/functions_p.html +32 -49
  328. package/SVF-doxygen/html/html/functions_r.html +1 -1
  329. package/SVF-doxygen/html/html/functions_s.html +33 -14
  330. package/SVF-doxygen/html/html/functions_t.html +24 -24
  331. package/SVF-doxygen/html/html/functions_type_c.html +1 -4
  332. package/SVF-doxygen/html/html/functions_type_f.html +2 -2
  333. package/SVF-doxygen/html/html/functions_type_g.html +2 -2
  334. package/SVF-doxygen/html/html/functions_type_i.html +3 -3
  335. package/SVF-doxygen/html/html/functions_type_k.html +3 -0
  336. package/SVF-doxygen/html/html/functions_type_l.html +3 -3
  337. package/SVF-doxygen/html/html/functions_type_p.html +3 -19
  338. package/SVF-doxygen/html/html/functions_type_s.html +19 -3
  339. package/SVF-doxygen/html/html/functions_type_v.html +1 -1
  340. package/SVF-doxygen/html/html/functions_u.html +2 -2
  341. package/SVF-doxygen/html/html/functions_v.html +8 -8
  342. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  343. package/SVF-doxygen/html/html/functions_vars_g.html +8 -8
  344. package/SVF-doxygen/html/html/functions_vars_i.html +9 -9
  345. package/SVF-doxygen/html/html/functions_vars_k.html +6 -0
  346. package/SVF-doxygen/html/html/functions_vars_l.html +2 -2
  347. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  348. package/SVF-doxygen/html/html/functions_vars_o.html +3 -4
  349. package/SVF-doxygen/html/html/functions_vars_p.html +4 -7
  350. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  351. package/SVF-doxygen/html/html/functions_w.html +5 -9
  352. package/SVF-doxygen/html/html/hierarchy.html +65 -65
  353. package/SVF-doxygen/html/html/namespaceSVF.html +24 -24
  354. package/SVF-doxygen/html/html/search/all_1.js +39 -39
  355. package/SVF-doxygen/html/html/search/all_10.js +12 -17
  356. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  357. package/SVF-doxygen/html/html/search/all_13.js +17 -12
  358. package/SVF-doxygen/html/html/search/all_14.js +5 -5
  359. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  360. package/SVF-doxygen/html/html/search/all_16.js +5 -5
  361. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  362. package/SVF-doxygen/html/html/search/all_2.js +1 -1
  363. package/SVF-doxygen/html/html/search/all_3.js +9 -10
  364. package/SVF-doxygen/html/html/search/all_4.js +2 -2
  365. package/SVF-doxygen/html/html/search/all_6.js +4 -4
  366. package/SVF-doxygen/html/html/search/all_7.js +54 -53
  367. package/SVF-doxygen/html/html/search/all_8.js +2 -2
  368. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  369. package/SVF-doxygen/html/html/search/all_b.js +3 -0
  370. package/SVF-doxygen/html/html/search/all_c.js +7 -7
  371. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  372. package/SVF-doxygen/html/html/search/all_e.js +5 -5
  373. package/SVF-doxygen/html/html/search/all_f.js +5 -5
  374. package/SVF-doxygen/html/html/search/classes_0.js +1 -1
  375. package/SVF-doxygen/html/html/search/classes_1.js +1 -1
  376. package/SVF-doxygen/html/html/search/classes_11.js +1 -1
  377. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  378. package/SVF-doxygen/html/html/search/classes_2.js +5 -5
  379. package/SVF-doxygen/html/html/search/classes_3.js +2 -2
  380. package/SVF-doxygen/html/html/search/classes_5.js +1 -1
  381. package/SVF-doxygen/html/html/search/classes_6.js +2 -2
  382. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  383. package/SVF-doxygen/html/html/search/classes_b.js +1 -1
  384. package/SVF-doxygen/html/html/search/classes_c.js +1 -1
  385. package/SVF-doxygen/html/html/search/classes_d.js +1 -1
  386. package/SVF-doxygen/html/html/search/classes_f.js +1 -1
  387. package/SVF-doxygen/html/html/search/functions_0.js +39 -39
  388. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  389. package/SVF-doxygen/html/html/search/functions_10.js +4 -4
  390. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  391. package/SVF-doxygen/html/html/search/functions_12.js +1 -1
  392. package/SVF-doxygen/html/html/search/functions_13.js +2 -2
  393. package/SVF-doxygen/html/html/search/functions_2.js +7 -7
  394. package/SVF-doxygen/html/html/search/functions_3.js +2 -2
  395. package/SVF-doxygen/html/html/search/functions_5.js +1 -1
  396. package/SVF-doxygen/html/html/search/functions_6.js +49 -48
  397. package/SVF-doxygen/html/html/search/functions_7.js +2 -2
  398. package/SVF-doxygen/html/html/search/functions_a.js +3 -3
  399. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  400. package/SVF-doxygen/html/html/search/functions_d.js +2 -2
  401. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  402. package/SVF-doxygen/html/html/search/typedefs_11.js +7 -3
  403. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
  404. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -2
  405. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
  406. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  407. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  408. package/SVF-doxygen/html/html/search/typedefs_a.js +2 -1
  409. package/SVF-doxygen/html/html/search/typedefs_b.js +3 -3
  410. package/SVF-doxygen/html/html/search/typedefs_f.js +3 -7
  411. package/SVF-doxygen/html/html/search/variables_10.js +2 -3
  412. package/SVF-doxygen/html/html/search/variables_13.js +1 -0
  413. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  414. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  415. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  416. package/SVF-doxygen/html/html/search/variables_7.js +4 -4
  417. package/SVF-doxygen/html/html/search/variables_9.js +4 -4
  418. package/SVF-doxygen/html/html/search/variables_b.js +3 -1
  419. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  420. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  421. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  422. package/SVF-doxygen/html/html/search/variables_f.js +2 -2
  423. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +9 -9
  424. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  425. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +18 -18
  426. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +2 -2
  427. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
  428. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +1 -1
  429. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  430. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  431. package/include/DDA/ContextDDA.h +1 -1
  432. package/include/DDA/FlowDDA.h +1 -1
  433. package/include/Graphs/ConsG.h +10 -10
  434. package/include/Graphs/ICFGNode.h +4 -4
  435. package/include/Graphs/IRGraph.h +7 -7
  436. package/include/Graphs/VFG.h +13 -13
  437. package/include/Graphs/VFGNode.h +6 -6
  438. package/include/MSSA/MSSAMuChi.h +6 -6
  439. package/include/MSSA/MemRegion.h +11 -11
  440. package/include/MSSA/MemSSA.h +11 -11
  441. package/include/MemoryModel/PointerAnalysis.h +9 -9
  442. package/include/MemoryModel/PointerAnalysisImpl.h +4 -4
  443. package/include/MemoryModel/SVFIR.h +82 -83
  444. package/include/MemoryModel/SVFStatements.h +97 -92
  445. package/include/MemoryModel/SVFVariables.h +71 -71
  446. package/include/SVF-FE/SVFIRBuilder.h +24 -24
  447. package/include/Util/IRAnnotator.h +1 -1
  448. package/include/Util/Options.h +3 -1
  449. package/include/Util/TypeBasedHeapCloning.h +2 -2
  450. package/include/WPA/Andersen.h +1 -1
  451. package/include/WPA/FlowSensitiveTBHC.h +1 -1
  452. package/lib/DDA/ContextDDA.cpp +6 -6
  453. package/lib/DDA/DDAClient.cpp +6 -6
  454. package/lib/DDA/DDAStat.cpp +2 -2
  455. package/lib/DDA/FlowDDA.cpp +4 -4
  456. package/lib/Graphs/ConsG.cpp +37 -36
  457. package/lib/Graphs/ICFG.cpp +4 -4
  458. package/lib/Graphs/IRGraph.cpp +27 -24
  459. package/lib/Graphs/OfflineConsG.cpp +8 -8
  460. package/lib/Graphs/SVFG.cpp +18 -16
  461. package/lib/Graphs/ThreadCallGraph.cpp +2 -2
  462. package/lib/Graphs/VFG.cpp +52 -52
  463. package/lib/MSSA/MemRegion.cpp +23 -23
  464. package/lib/MSSA/MemSSA.cpp +15 -15
  465. package/lib/MTA/MTAAnnotator.cpp +5 -5
  466. package/lib/MemoryModel/PAGBuilderFromFile.cpp +13 -13
  467. package/lib/MemoryModel/PointerAnalysis.cpp +9 -9
  468. package/lib/MemoryModel/PointerAnalysisImpl.cpp +14 -14
  469. package/lib/MemoryModel/SVFIR.cpp +95 -95
  470. package/lib/MemoryModel/SVFStatements.cpp +24 -24
  471. package/lib/MemoryModel/SVFVariables.cpp +19 -19
  472. package/lib/SABER/LeakChecker.cpp +2 -2
  473. package/lib/SABER/SaberSVFGBuilder.cpp +5 -5
  474. package/lib/SVF-FE/Graph2Json.cpp +3 -3
  475. package/lib/SVF-FE/SVFIRBuilder.cpp +22 -22
  476. package/lib/Util/Options.cpp +6 -0
  477. package/lib/Util/PTAStat.cpp +8 -8
  478. package/lib/Util/TypeBasedHeapCloning.cpp +22 -22
  479. package/lib/WPA/Andersen.cpp +13 -13
  480. package/lib/WPA/AndersenSFR.cpp +2 -2
  481. package/lib/WPA/AndersenStat.cpp +6 -6
  482. package/lib/WPA/FlowSensitive.cpp +8 -8
  483. package/lib/WPA/FlowSensitiveStat.cpp +4 -4
  484. package/lib/WPA/FlowSensitiveTBHC.cpp +9 -9
  485. package/lib/WPA/VersionedFlowSensitive.cpp +2 -2
  486. package/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -1
  487. package/package.json +1 -1
@@ -66,9 +66,8 @@ $(function() {
66
66
  <div class="title">IRGraph.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="IRGraph_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">//===- SVFIR.h -- SVF IR Graph or PAG (Program Assignment 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"> * IRGraph.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: Nov 1, 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;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef IRGRAPH_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define IRGRAPH_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFStatements_8h.html">MemoryModel/SVFStatements.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFVariables_8h.html">MemoryModel/SVFVariables.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="NodeIDAllocator_8h.html">Util/NodeIDAllocator.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ICFG_8h.html">Graphs/ICFG.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</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"><a class="line" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea"> 42</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> <a class="code" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152"> 43</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> <a class="code" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152">PAGEdge</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">* Graph representation of SVF IR. It can be seen as a program assignment graph (PAG)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericGraph.html">GenericGraph</a>&lt;SVFVar,SVFStmt&gt;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#ae9547730a27575194977b240647e8ce2"> 51</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFStmt*&gt;</a> <a class="code" href="classSVF_1_1IRGraph.html#ae9547730a27575194977b240647e8ce2">PAGEdgeSet</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a833015e6a332b0d97b9a7de37dce5fab"> 52</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const Value*,PAGEdgeSet&gt;</a> <a class="code" href="classSVF_1_1IRGraph.html#a833015e6a332b0d97b9a7de37dce5fab">ValueToEdgeMap</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a6efd8215ac2484a16a9ab2afbde290b4"> 55</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1IRGraph.html#a6efd8215ac2484a16a9ab2afbde290b4">PAGEdgeKindToSetMap</a>; <span class="comment">// &lt; SVFIR edge map containing all PAGEdges</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a780372b8241dc1c76e31b0340d5d2401"> 56</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVFStmt::PAGKindToEdgeSetMapTy</a> <a class="code" href="classSVF_1_1IRGraph.html#a780372b8241dc1c76e31b0340d5d2401">PTAPAGEdgeKindToSetMap</a>; <span class="comment">// &lt; SVFIR edge map containing only pointer-related edges, i.e, both RHS and RHS are of pointer type</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379"> 57</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">fromFile</a>; </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598"> 58</a></span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">nodeNumAfterPAGBuild</a>; <span class="comment">// initial node number after building SVFIR, excluding later added nodes, e.g., gepobj nodes</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27"> 59</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704"> 60</a></span>&#160; ValueToEdgeMap <a class="code" href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704">valueToEdgeMap</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a679145e7bf818b0a19005dc8e2845fe1"> 61</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1IRGraph.html#a679145e7bf818b0a19005dc8e2845fe1">symInfo</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007"> 64</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(i,node);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">addEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">hasNonlabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">hasLabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* cs);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">hasLabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op1, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op2);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac"> 81</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac">mapValueToEdge</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">auto</span> inserted = valueToEdgeMap.emplace(V, PAGEdgeSet{edge});</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (!inserted.second) {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; inserted.first-&gt;second.emplace(edge);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50"> 89</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">getMemObj</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)<span class="keyword"> const</span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">getObjSym</a>(val));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28"> 94</a></span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">IRGraph</a>(<span class="keywordtype">bool</span> buildFromFile): fromFile(buildFromFile), nodeNumAfterPAGBuild(0), totalPTAPAGEdge(0){</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; symInfo = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// insert dummy value if a correct value cannot be found</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; valueToEdgeMap[<span class="keyword">nullptr</span>] = <a class="code" href="classSVF_1_1IRGraph.html#ae9547730a27575194977b240647e8ce2">PAGEdgeSet</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea">~IRGraph</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98"> 103</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98">isBuiltFromFile</a>()</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">fromFile</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aa9aca34170ac4308359a4c8c3466dcd0"> 108</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> PAGEdgeSet&amp; <a class="code" href="classSVF_1_1IRGraph.html#aa9aca34170ac4308359a4c8c3466dcd0">getValueEdges</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">auto</span> it = valueToEdgeMap.find(V);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span> (it == valueToEdgeMap.end()) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">//special empty set</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> valueToEdgeMap.at(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624"> 120</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161">getValSym</a>(V);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1"> 124</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">hasValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* V)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae">hasValSym</a>(V);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1"> 130</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">getObjectNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">getObjSym</a>(V);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910"> 135</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">getReturnNode</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="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#afc8b0b6aea972f34a0c099b75114b81e">getRetSym</a>(func-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b"> 140</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</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="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#aec3fd21a11f760ca8684e390c6948f02">getVarargSym</a>(func-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0"> 144</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</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> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</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"><a class="line" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91"> 148</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">getConstantNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198"> 152</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5"> 156</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>()<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> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>();</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"><a class="line" href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e"> 160</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">getBlackHoleObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">getBlkObj</a>();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb"> 164</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb">getConstantObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">getConstantObj</a>();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22"> 169</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">getValueNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">valSyms</a>().size();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3"> 173</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">getObjectNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697">idToObjMap</a>().size();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257"> 177</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257">getNodeNumAfterPAGBuild</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">nodeNumAfterPAGBuild</a>;</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_1IRGraph.html#a5fe12445ed0528183775747dec356db0"> 181</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0">setNodeNumAfterPAGBuild</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; nodeNumAfterPAGBuild = num;</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_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96"> 186</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96">getPAGNodeNum</a>()<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> <a class="code" href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">nodeNum</a>;</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_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998"> 190</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998">getPAGEdgeNum</a>()<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> <a class="code" href="classSVF_1_1GenericGraph.html#a2fbc96de5f066469c2739229307bcc0c">edgeNum</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb"> 194</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">getPTAPAGEdgeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867"> 199</a></span>&#160; <span class="keyword">inline</span> std::string <a class="code" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867">getGraphName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;SVFIR&quot;</span>;</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"> 203</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">dump</a>(std::string name);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">view</a>();</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;</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"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacellvm.html">llvm</a></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;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">/* !</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"> * GraphTraits specializations of SVFIR to be used for the generic graph algorithms.</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> * Provide graph traits for tranversing from a SVFIR node using standard graph traversals.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html"> 221</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span>GraphTraits&lt;<a class="code" href="namespaceSVF.html">SVF</a>::SVFVar*&gt; : <span class="keyword">public</span> GraphTraits&lt;SVF::GenericNode&lt;SVF::SVFVar,SVF::SVFStmt&gt;* &gt;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;{</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</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"><a class="line" href="structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html"> 226</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span>GraphTraits&lt;Inverse&lt;SVF::SVFVar *&gt; &gt; : <span class="keyword">public</span> GraphTraits&lt;Inverse&lt;SVF::GenericNode&lt;SVF::SVFVar,SVF::SVFStmt&gt;* &gt; &gt;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;{</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;};</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html"> 230</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span>GraphTraits&lt;SVF::<a class="code" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">IRGraph</a>*&gt; : <span class="keyword">public</span> GraphTraits&lt;SVF::GenericGraph&lt;SVF::SVFVar,SVF::SVFStmt&gt;* &gt;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4"> 232</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4">NodeRef</a>;</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;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;} <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IRGRAPH_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1IRGraph_html_a3ce34b9fcb651689bce44ab48fbcdff0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">SVF::IRGraph::getBlackHoleNode</a></div><div class="ttdeci">NodeID getBlackHoleNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00144">IRGraph.h:144</a></div></div>
69
+ <a href="IRGraph_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">//===- SVFIR.h -- SVF IR Graph or PAG (Program Assignment 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"> * IRGraph.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: Nov 1, 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;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#ifndef IRGRAPH_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define IRGRAPH_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFStatements_8h.html">MemoryModel/SVFStatements.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFVariables_8h.html">MemoryModel/SVFVariables.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="NodeIDAllocator_8h.html">Util/NodeIDAllocator.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFUtil_8h.html">Util/SVFUtil.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ICFG_8h.html">Graphs/ICFG.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</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"><a class="line" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea"> 42</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> <a class="code" href="namespaceSVF.html#a733b44f64a95e6e13e7379120d7a3eea">PAGNode</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152"> 43</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> <a class="code" href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152">PAGEdge</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">* Graph representation of SVF IR. It can be seen as a program assignment graph (PAG)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1GenericGraph.html">GenericGraph</a>&lt;SVFVar,SVFStmt&gt;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a28ea8f85b0923d00364a010c1fd4e416"> 51</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFStmt*&gt;</a> <a class="code" href="classSVF_1_1IRGraph.html#a28ea8f85b0923d00364a010c1fd4e416">SVFStmtSet</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#addfc2131699f5ecee3a45d65cda46c24"> 52</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const Value*,SVFStmtSet&gt;</a> <a class="code" href="classSVF_1_1IRGraph.html#addfc2131699f5ecee3a45d65cda46c24">ValueToEdgeMap</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3db2c4e2823f16d78c86596da284acd1"> 55</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVFStmt::KindToSVFStmtMapTy</a> <a class="code" href="classSVF_1_1IRGraph.html#a3db2c4e2823f16d78c86596da284acd1">KindToSVFStmtSetMap</a>; <span class="comment">// &lt; SVFIR edge map containing all PAGEdges</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#ae0a9b81717fd834bbd109c4b69aaff9d"> 56</a></span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVFStmt::KindToSVFStmtMapTy</a> <a class="code" href="classSVF_1_1IRGraph.html#ae0a9b81717fd834bbd109c4b69aaff9d">KindToPTASVFStmtSetMap</a>; <span class="comment">// &lt; SVFIR edge map containing only pointer-related edges, i.e, both RHS and RHS are of pointer type</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379"> 57</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">fromFile</a>; </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598"> 58</a></span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">nodeNumAfterPAGBuild</a>; <span class="comment">// initial node number after building SVFIR, excluding later added nodes, e.g., gepobj nodes</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27"> 59</a></span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704"> 60</a></span>&#160; ValueToEdgeMap <a class="code" href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704">valueToEdgeMap</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a679145e7bf818b0a19005dc8e2845fe1"> 61</a></span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1IRGraph.html#a679145e7bf818b0a19005dc8e2845fe1">symInfo</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007"> 64</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(i,node);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">addEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">hasNonlabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">hasLabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* cs);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">hasLabeledEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op1, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op2);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac"> 81</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#aefe3143b33cee00c3c2611fea577c1ac">mapValueToEdge</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">auto</span> inserted = valueToEdgeMap.emplace(V, SVFStmtSet{edge});</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (!inserted.second) {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; inserted.first-&gt;second.emplace(edge);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50"> 89</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">getMemObj</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)<span class="keyword"> const</span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">getObjSym</a>(val));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28"> 94</a></span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">IRGraph</a>(<span class="keywordtype">bool</span> buildFromFile): fromFile(buildFromFile), nodeNumAfterPAGBuild(0), totalPTAPAGEdge(0){</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; symInfo = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// insert dummy value if a correct value cannot be found</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; valueToEdgeMap[<span class="keyword">nullptr</span>] = <a class="code" href="classSVF_1_1IRGraph.html#a28ea8f85b0923d00364a010c1fd4e416">SVFStmtSet</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea">~IRGraph</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98"> 103</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98">isBuiltFromFile</a>()</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">fromFile</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a7710f6795d971d7a8b5683835c4c0fb8"> 108</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> SVFStmtSet&amp; <a class="code" href="classSVF_1_1IRGraph.html#a7710f6795d971d7a8b5683835c4c0fb8">getValueEdges</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">auto</span> it = valueToEdgeMap.find(V);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span> (it == valueToEdgeMap.end()) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">//special empty set</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> valueToEdgeMap.at(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624"> 120</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161">getValSym</a>(V);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1"> 124</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">hasValueNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* V)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae">hasValSym</a>(V);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1"> 130</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">getObjectNode</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">getObjSym</a>(V);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910"> 135</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">getReturnNode</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="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#afc8b0b6aea972f34a0c099b75114b81e">getRetSym</a>(func-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b"> 140</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">getVarargNode</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="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#aec3fd21a11f760ca8684e390c6948f02">getVarargSym</a>(func-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0"> 144</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</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> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</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"><a class="line" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91"> 148</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">getConstantNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198"> 152</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5"> 156</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>()<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> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>();</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"><a class="line" href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e"> 160</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">getBlackHoleObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">getBlkObj</a>();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb"> 164</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb">getConstantObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">getConstantObj</a>();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22"> 169</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">getValueNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">valSyms</a>().size();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3"> 173</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">getObjectNodeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> symInfo-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697">idToObjMap</a>().size();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257"> 177</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257">getNodeNumAfterPAGBuild</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">nodeNumAfterPAGBuild</a>;</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_1IRGraph.html#a5fe12445ed0528183775747dec356db0"> 181</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0">setNodeNumAfterPAGBuild</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; nodeNumAfterPAGBuild = num;</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_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96"> 186</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96">getPAGNodeNum</a>()<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> <a class="code" href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">nodeNum</a>;</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_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998"> 190</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998">getPAGEdgeNum</a>()<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> <a class="code" href="classSVF_1_1GenericGraph.html#a2fbc96de5f066469c2739229307bcc0c">edgeNum</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb"> 194</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">getPTAPAGEdgeNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867"> 199</a></span>&#160; <span class="keyword">inline</span> std::string <a class="code" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867">getGraphName</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;SVFIR&quot;</span>;</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"> 203</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">dump</a>(std::string name);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">view</a>();</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;</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"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacellvm.html">llvm</a></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;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">/* !</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment"> * GraphTraits specializations of SVFIR to be used for the generic graph algorithms.</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment"> * Provide graph traits for tranversing from a SVFIR node using standard graph traversals.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html"> 221</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span>GraphTraits&lt;<a class="code" href="namespaceSVF.html">SVF</a>::SVFVar*&gt; : <span class="keyword">public</span> GraphTraits&lt;SVF::GenericNode&lt;SVF::SVFVar,SVF::SVFStmt&gt;* &gt;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;{</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</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"><a class="line" href="structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html"> 226</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span>GraphTraits&lt;Inverse&lt;SVF::SVFVar *&gt; &gt; : <span class="keyword">public</span> GraphTraits&lt;Inverse&lt;SVF::GenericNode&lt;SVF::SVFVar,SVF::SVFStmt&gt;* &gt; &gt;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;{</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;};</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html"> 230</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span>GraphTraits&lt;SVF::<a class="code" href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">IRGraph</a>*&gt; : <span class="keyword">public</span> GraphTraits&lt;SVF::GenericGraph&lt;SVF::SVFVar,SVF::SVFStmt&gt;* &gt;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4"> 232</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a> *<a class="code" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4">NodeRef</a>;</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;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;} <span class="comment">// End namespace llvm</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IRGRAPH_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1IRGraph_html_a3ce34b9fcb651689bce44ab48fbcdff0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">SVF::IRGraph::getBlackHoleNode</a></div><div class="ttdeci">NodeID getBlackHoleNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00144">IRGraph.h:144</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_acbcd5035240fab0b809c3334a27159ae"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae">SVF::SymbolTableInfo::hasValSym</a></div><div class="ttdeci">bool hasValSym(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00265">SymbolTableInfo.h:265</a></div></div>
71
- <div class="ttc" id="classSVF_1_1IRGraph_html_ae9547730a27575194977b240647e8ce2"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ae9547730a27575194977b240647e8ce2">SVF::IRGraph::PAGEdgeSet</a></div><div class="ttdeci">Set&lt; const SVFStmt * &gt; PAGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00051">IRGraph.h:51</a></div></div>
72
71
  <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00421">SymbolTableInfo.h:421</a></div></div>
73
72
  <div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00328">CHG.h:328</a></div></div>
74
73
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aebf96274e1ad2a523981487839a3025e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">SVF::SymbolTableInfo::getBlkObj</a></div><div class="ttdeci">MemObj * getBlkObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00215">SymbolTableInfo.h:215</a></div></div>
@@ -81,12 +80,11 @@ $(function() {
81
80
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aec3fd21a11f760ca8684e390c6948f02"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aec3fd21a11f760ca8684e390c6948f02">SVF::SymbolTableInfo::getVarargSym</a></div><div class="ttdeci">SymID getVarargSym(const Function *val) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00294">SymbolTableInfo.h:294</a></div></div>
82
81
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afc8b0b6aea972f34a0c099b75114b81e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afc8b0b6aea972f34a0c099b75114b81e">SVF::SymbolTableInfo::getRetSym</a></div><div class="ttdeci">SymID getRetSym(const Function *val) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00287">SymbolTableInfo.h:287</a></div></div>
83
82
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
84
- <div class="ttc" id="classSVF_1_1IRGraph_html_a833015e6a332b0d97b9a7de37dce5fab"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a833015e6a332b0d97b9a7de37dce5fab">SVF::IRGraph::ValueToEdgeMap</a></div><div class="ttdeci">Map&lt; const Value *, PAGEdgeSet &gt; ValueToEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00052">IRGraph.h:52</a></div></div>
85
83
  <div class="ttc" id="classSVF_1_1IRGraph_html"><div class="ttname"><a href="classSVF_1_1IRGraph.html">SVF::IRGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00048">IRGraph.h:48</a></div></div>
86
84
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVF::SVFStmt::PEDGEK</a></div><div class="ttdeci">PEDGEK</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00054">SVFStatements.h:54</a></div></div>
87
85
  <div class="ttc" id="classSVF_1_1IRGraph_html_a8b10c318674a47035d617b3ade4f069b"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8b10c318674a47035d617b3ade4f069b">SVF::IRGraph::getVarargNode</a></div><div class="ttdeci">NodeID getVarargNode(const SVFFunction *func) const</div><div class="ttdoc">getVarargNode - Return the unique node representing the variadic argument of a variadic function...</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00140">IRGraph.h:140</a></div></div>
88
- <div class="ttc" id="classSVF_1_1IRGraph_html_a1cb32461439c4dc8d044c2bfadb11307"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">SVF::IRGraph::dump</a></div><div class="ttdeci">void dump(std::string name)</div><div class="ttdoc">Dump SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00099">IRGraph.cpp:99</a></div></div>
89
- <div class="ttc" id="classSVF_1_1IRGraph_html_a3a656bb310ba0f42e525995a480a5b67"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">SVF::IRGraph::view</a></div><div class="ttdeci">void view()</div><div class="ttdoc">View graph from the debugger. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00107">IRGraph.cpp:107</a></div></div>
86
+ <div class="ttc" id="classSVF_1_1IRGraph_html_a1cb32461439c4dc8d044c2bfadb11307"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">SVF::IRGraph::dump</a></div><div class="ttdeci">void dump(std::string name)</div><div class="ttdoc">Dump SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00101">IRGraph.cpp:101</a></div></div>
87
+ <div class="ttc" id="classSVF_1_1IRGraph_html_a3a656bb310ba0f42e525995a480a5b67"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">SVF::IRGraph::view</a></div><div class="ttdeci">void view()</div><div class="ttdoc">View graph from the debugger. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00109">IRGraph.cpp:109</a></div></div>
90
88
  <div class="ttc" id="classSVF_1_1IRGraph_html_a41423da58a07b344bc7ca8dd96d48f98"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a41423da58a07b344bc7ca8dd96d48f98">SVF::IRGraph::isBuiltFromFile</a></div><div class="ttdeci">bool isBuiltFromFile()</div><div class="ttdoc">Whether this SVFIR built from a txt file. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00103">IRGraph.h:103</a></div></div>
91
89
  <div class="ttc" id="classSVF_1_1IRGraph_html_aafe9544b07a8c40bf915613df11df48e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">SVF::IRGraph::getBlackHoleObj</a></div><div class="ttdeci">const MemObj * getBlackHoleObj() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00160">IRGraph.h:160</a></div></div>
92
90
  <div class="ttc" id="classSVF_1_1IRGraph_html_a1308b5d3001c6676e8a8be6a8b118704"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a1308b5d3001c6676e8a8be6a8b118704">SVF::IRGraph::valueToEdgeMap</a></div><div class="ttdeci">ValueToEdgeMap valueToEdgeMap</div><div class="ttdoc">Map llvm::Values to all corresponding PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00060">IRGraph.h:60</a></div></div>
@@ -101,26 +99,28 @@ $(function() {
101
99
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_adaed6e68c2f53260ed4c4fc38b5c4721"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">SVF::SymbolTableInfo::nullPtrSymID</a></div><div class="ttdeci">SymID nullPtrSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00229">SymbolTableInfo.h:229</a></div></div>
102
100
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a8f3cb8a1db34dd692ee04561f4edeebf"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">SVF::SymbolTableInfo::valSyms</a></div><div class="ttdeci">ValueToIDMapTy &amp; valSyms()</div><div class="ttdoc">Get different kinds of syms maps. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00317">SymbolTableInfo.h:317</a></div></div>
103
101
  <div class="ttc" id="classSVF_1_1IRGraph_html_a4c8ef6e30a33ecbdc4024e201237ae22"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">SVF::IRGraph::getValueNodeNum</a></div><div class="ttdeci">Size_t getValueNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00169">IRGraph.h:169</a></div></div>
102
+ <div class="ttc" id="classSVF_1_1IRGraph_html_ae0a9b81717fd834bbd109c4b69aaff9d"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ae0a9b81717fd834bbd109c4b69aaff9d">SVF::IRGraph::KindToPTASVFStmtSetMap</a></div><div class="ttdeci">SVFStmt::KindToSVFStmtMapTy KindToPTASVFStmtSetMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00056">IRGraph.h:56</a></div></div>
104
103
  <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="SVFBasicTypes_8h_source.html#l00100">SVFBasicTypes.h:100</a></div></div>
105
104
  <div class="ttc" id="classSVF_1_1IRGraph_html_a80cf14bf43accb89cb82490b4f173598"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a80cf14bf43accb89cb82490b4f173598">SVF::IRGraph::nodeNumAfterPAGBuild</a></div><div class="ttdeci">NodeID nodeNumAfterPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00058">IRGraph.h:58</a></div></div>
106
105
  <div class="ttc" id="classSVF_1_1IRGraph_html_a3b417ee79560fd00f4cf80906044c198"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">SVF::IRGraph::getBlkPtr</a></div><div class="ttdeci">NodeID getBlkPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00152">IRGraph.h:152</a></div></div>
107
106
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a65f49178a948380c2d6105178509a906"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">SVF::SymbolTableInfo::getObj</a></div><div class="ttdeci">MemObj * getObj(SymID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00280">SymbolTableInfo.h:280</a></div></div>
108
107
  <div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
109
108
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
110
- <div class="ttc" id="classSVF_1_1IRGraph_html_aa9aca34170ac4308359a4c8c3466dcd0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aa9aca34170ac4308359a4c8c3466dcd0">SVF::IRGraph::getValueEdges</a></div><div class="ttdeci">const PAGEdgeSet &amp; getValueEdges(const Value *V)</div><div class="ttdoc">Get all SVFIR Edges that corresponds to an LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00108">IRGraph.h:108</a></div></div>
109
+ <div class="ttc" id="classSVF_1_1SVFStmt_html_a93fc6c4c991931c78c48500c2db50f66"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVF::SVFStmt::KindToSVFStmtMapTy</a></div><div class="ttdeci">PAGEdgeToSetMapTy KindToSVFStmtMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00180">SVFStatements.h:180</a></div></div>
111
110
  <div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00120">IRGraph.h:120</a></div></div>
112
111
  <div class="ttc" id="classSVF_1_1IRGraph_html_a2fda1df53e53c0098d99f36d8f6f0998"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998">SVF::IRGraph::getPAGEdgeNum</a></div><div class="ttdeci">Size_t getPAGEdgeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00190">IRGraph.h:190</a></div></div>
113
112
  <div class="ttc" id="NodeIDAllocator_8h_html"><div class="ttname"><a href="NodeIDAllocator_8h.html">NodeIDAllocator.h</a></div></div>
114
113
  <div class="ttc" id="classSVF_1_1IRGraph_html_a4f5792216c6f38c32dac5074862ffc50"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a4f5792216c6f38c32dac5074862ffc50">SVF::IRGraph::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj(const Value *val) const</div><div class="ttdoc">get MemObj according to LLVM value </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00089">IRGraph.h:89</a></div></div>
115
114
  <div class="ttc" id="SVFVariables_8h_html"><div class="ttname"><a href="SVFVariables_8h.html">SVFVariables.h</a></div></div>
115
+ <div class="ttc" id="classSVF_1_1IRGraph_html_addfc2131699f5ecee3a45d65cda46c24"><div class="ttname"><a href="classSVF_1_1IRGraph.html#addfc2131699f5ecee3a45d65cda46c24">SVF::IRGraph::ValueToEdgeMap</a></div><div class="ttdeci">Map&lt; const Value *, SVFStmtSet &gt; ValueToEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00052">IRGraph.h:52</a></div></div>
116
116
  <div class="ttc" id="classSVF_1_1IRGraph_html_a0a18bca50f7cd3a1882754f19303d257"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a0a18bca50f7cd3a1882754f19303d257">SVF::IRGraph::getNodeNumAfterPAGBuild</a></div><div class="ttdeci">u32_t getNodeNumAfterPAGBuild() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00177">IRGraph.h:177</a></div></div>
117
- <div class="ttc" id="classSVF_1_1IRGraph_html_a192e584440eb141e0d35d8fed671bbe0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">SVF::IRGraph::hasLabeledEdge</a></div><div class="ttdeci">SVFStmt * hasLabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind, const ICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00085">IRGraph.cpp:85</a></div></div>
117
+ <div class="ttc" id="classSVF_1_1IRGraph_html_a192e584440eb141e0d35d8fed671bbe0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">SVF::IRGraph::hasLabeledEdge</a></div><div class="ttdeci">SVFStmt * hasLabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind, const ICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00087">IRGraph.cpp:87</a></div></div>
118
118
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ab582424fdb6d9674c1bd4466cdfbe497"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">SVF::SymbolTableInfo::constantSymID</a></div><div class="ttdeci">SymID constantSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00234">SymbolTableInfo.h:234</a></div></div>
119
119
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
120
120
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_afca5a68d1825326e3ec6302ce0afee66"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">SVF::SymbolTableInfo::getObjSym</a></div><div class="ttdeci">SymID getObjSym(const Value *val) const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00273">SymbolTableInfo.h:273</a></div></div>
121
121
  <div class="ttc" id="classSVF_1_1IRGraph_html_a3de9a2a565c303f68a90c32dc59febd5"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">SVF::IRGraph::getNullPtr</a></div><div class="ttdeci">NodeID getNullPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00156">IRGraph.h:156</a></div></div>
122
122
  <div class="ttc" id="namespaceSVF_html_a2db29836a72e8d86e9baa6d8d55d2978"><div class="ttname"><a href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">SVF::Size_t</a></div><div class="ttdeci">signed long Size_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
123
- <div class="ttc" id="classSVF_1_1IRGraph_html_a722f32d0a0a3bafdd97fc74819d2621e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">SVF::IRGraph::addEdge</a></div><div class="ttdeci">bool addEdge(SVFVar *src, SVFVar *dst, SVFStmt *edge)</div><div class="ttdoc">Add an edge into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00042">IRGraph.cpp:42</a></div></div>
123
+ <div class="ttc" id="classSVF_1_1IRGraph_html_a722f32d0a0a3bafdd97fc74819d2621e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">SVF::IRGraph::addEdge</a></div><div class="ttdeci">bool addEdge(SVFVar *src, SVFVar *dst, SVFStmt *edge)</div><div class="ttdoc">Add an edge into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00044">IRGraph.cpp:44</a></div></div>
124
124
  <div class="ttc" id="classSVF_1_1IRGraph_html_aceae1e4e49a1d2e63ef3d71a7e5ef3eb"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb">SVF::IRGraph::getConstantObj</a></div><div class="ttdeci">const MemObj * getConstantObj() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00164">IRGraph.h:164</a></div></div>
125
125
  <div class="ttc" id="classSVF_1_1IRGraph_html_aceb17dfbe137658625e16291127267d1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aceb17dfbe137658625e16291127267d1">SVF::IRGraph::hasValueNode</a></div><div class="ttdeci">bool hasValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00124">IRGraph.h:124</a></div></div>
126
126
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00059">SymbolTableInfo.cpp:59</a></div></div>
@@ -128,26 +128,26 @@ $(function() {
128
128
  <div class="ttc" id="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4_html_a2f3dc486fd4a3d8f4f4fd27d0f0f65c4"><div class="ttname"><a href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html#a2f3dc486fd4a3d8f4f4fd27d0f0f65c4">llvm::GraphTraits&lt; SVF::IRGraph * &gt;::NodeRef</a></div><div class="ttdeci">SVF::SVFVar * NodeRef</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00232">IRGraph.h:232</a></div></div>
129
129
  <div class="ttc" id="ICFG_8h_html"><div class="ttname"><a href="ICFG_8h.html">ICFG.h</a></div></div>
130
130
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::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#l00380">GenericGraph.h:380</a></div></div>
131
+ <div class="ttc" id="classSVF_1_1IRGraph_html_a28ea8f85b0923d00364a010c1fd4e416"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a28ea8f85b0923d00364a010c1fd4e416">SVF::IRGraph::SVFStmtSet</a></div><div class="ttdeci">Set&lt; const SVFStmt * &gt; SVFStmtSet</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00051">IRGraph.h:51</a></div></div>
131
132
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a1689fa03795200b501ae3887906e7e72"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">SVF::SymbolTableInfo::blkPtrSymID</a></div><div class="ttdeci">SymID blkPtrSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00224">SymbolTableInfo.h:224</a></div></div>
132
133
  <div class="ttc" id="namespaceSVF_html_ae6ead95a66f69e1e4cfa1159f868a152"><div class="ttname"><a href="namespaceSVF.html#ae6ead95a66f69e1e4cfa1159f868a152">SVF::PAGEdge</a></div><div class="ttdeci">SVFStmt PAGEdge</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00043">IRGraph.h:43</a></div></div>
133
134
  <div class="ttc" id="classSVF_1_1IRGraph_html_a973fb40e0eb600a7f90884767e036a96"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a973fb40e0eb600a7f90884767e036a96">SVF::IRGraph::getPAGNodeNum</a></div><div class="ttdeci">Size_t getPAGNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00186">IRGraph.h:186</a></div></div>
134
- <div class="ttc" id="classSVF_1_1SVFStmt_html_a47a67e8aaae7059e353841a40b89e936"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a47a67e8aaae7059e353841a40b89e936">SVF::SVFStmt::PAGKindToEdgeSetMapTy</a></div><div class="ttdeci">PAGEdgeToSetMapTy PAGKindToEdgeSetMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00180">SVFStatements.h:180</a></div></div>
135
135
  <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00249">BasicTypes.h:249</a></div></div>
136
- <div class="ttc" id="classSVF_1_1IRGraph_html_a780372b8241dc1c76e31b0340d5d2401"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a780372b8241dc1c76e31b0340d5d2401">SVF::IRGraph::PTAPAGEdgeKindToSetMap</a></div><div class="ttdeci">SVFStmt::PAGKindToEdgeSetMapTy PTAPAGEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00056">IRGraph.h:56</a></div></div>
136
+ <div class="ttc" id="classSVF_1_1IRGraph_html_a7710f6795d971d7a8b5683835c4c0fb8"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a7710f6795d971d7a8b5683835c4c0fb8">SVF::IRGraph::getValueEdges</a></div><div class="ttdeci">const SVFStmtSet &amp; getValueEdges(const Value *V)</div><div class="ttdoc">Get all SVFIR Edges that corresponds to an LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00108">IRGraph.h:108</a></div></div>
137
137
  <div class="ttc" id="classSVF_1_1IRGraph_html_a685f1a8a35aa5dc9c298e3b0e2ccf007"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">SVF::IRGraph::addNode</a></div><div class="ttdeci">NodeID addNode(SVFVar *node, NodeID i)</div><div class="ttdoc">Add a node into the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00064">IRGraph.h:64</a></div></div>
138
138
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
139
139
  <div class="ttc" id="classSVF_1_1IRGraph_html_a8e9b2e37b36433c01e90d54a4edbf7f3"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">SVF::IRGraph::getObjectNodeNum</a></div><div class="ttdeci">Size_t getObjectNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00173">IRGraph.h:173</a></div></div>
140
140
  <div class="ttc" id="classSVF_1_1IRGraph_html_ac5da3a0cbe040a45d719b6f6a23aed91"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">SVF::IRGraph::getConstantNode</a></div><div class="ttdeci">NodeID getConstantNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00148">IRGraph.h:148</a></div></div>
141
- <div class="ttc" id="classSVF_1_1IRGraph_html_abe0ab797a3da420e4d2f9136d64fb407"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">SVF::IRGraph::hasNonlabeledEdge</a></div><div class="ttdeci">SVFStmt * hasNonlabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00057">IRGraph.cpp:57</a></div></div>
141
+ <div class="ttc" id="classSVF_1_1IRGraph_html_abe0ab797a3da420e4d2f9136d64fb407"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">SVF::IRGraph::hasNonlabeledEdge</a></div><div class="ttdeci">SVFStmt * hasNonlabeledEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00059">IRGraph.cpp:59</a></div></div>
142
142
  <div class="ttc" id="classSVF_1_1IRGraph_html_a34f7644ccf88fc0911c0b4f625dc1f28"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a34f7644ccf88fc0911c0b4f625dc1f28">SVF::IRGraph::IRGraph</a></div><div class="ttdeci">IRGraph(bool buildFromFile)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00094">IRGraph.h:94</a></div></div>
143
143
  <div class="ttc" id="classSVF_1_1GenericGraph_html"><div class="ttname"><a href="classSVF_1_1GenericGraph.html">SVF::GenericGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00327">GenericGraph.h:327</a></div></div>
144
144
  <div class="ttc" id="classSVF_1_1IRGraph_html_a5fe12445ed0528183775747dec356db0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a5fe12445ed0528183775747dec356db0">SVF::IRGraph::setNodeNumAfterPAGBuild</a></div><div class="ttdeci">void setNodeNumAfterPAGBuild(u32_t num)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00181">IRGraph.h:181</a></div></div>
145
+ <div class="ttc" id="classSVF_1_1IRGraph_html_a3db2c4e2823f16d78c86596da284acd1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3db2c4e2823f16d78c86596da284acd1">SVF::IRGraph::KindToSVFStmtSetMap</a></div><div class="ttdeci">SVFStmt::KindToSVFStmtMapTy KindToSVFStmtSetMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00055">IRGraph.h:55</a></div></div>
145
146
  <div class="ttc" id="classSVF_1_1IRGraph_html_aba13ca47865614e45321c1ae53e640c1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aba13ca47865614e45321c1ae53e640c1">SVF::IRGraph::getObjectNode</a></div><div class="ttdeci">NodeID getObjectNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00130">IRGraph.h:130</a></div></div>
146
147
  <div class="ttc" id="classSVF_1_1IRGraph_html_a96010999a4e5013beb1c37ef753ff910"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a96010999a4e5013beb1c37ef753ff910">SVF::IRGraph::getReturnNode</a></div><div class="ttdeci">NodeID getReturnNode(const SVFFunction *func) const</div><div class="ttdoc">GetReturnNode - Return the unique node representing the return value of a function. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00135">IRGraph.h:135</a></div></div>
147
- <div class="ttc" id="classSVF_1_1IRGraph_html_a6efd8215ac2484a16a9ab2afbde290b4"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a6efd8215ac2484a16a9ab2afbde290b4">SVF::IRGraph::PAGEdgeKindToSetMap</a></div><div class="ttdeci">SVFStmt::PAGKindToEdgeSetMapTy PAGEdgeKindToSetMap</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00055">IRGraph.h:55</a></div></div>
148
148
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
149
149
  <div class="ttc" id="classSVF_1_1IRGraph_html_a7750a2b2a98bb39fc5f67af4e0c12379"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a7750a2b2a98bb39fc5f67af4e0c12379">SVF::IRGraph::fromFile</a></div><div class="ttdeci">bool fromFile</div><div class="ttdoc">Whether the SVFIR is built according to user specified data from a txt file. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00057">IRGraph.h:57</a></div></div>
150
- <div class="ttc" id="classSVF_1_1IRGraph_html_a2085d6895363c2ff7b757eb58f3f4cea"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea">SVF::IRGraph::~IRGraph</a></div><div class="ttdeci">virtual ~IRGraph()</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00034">IRGraph.cpp:34</a></div></div>
150
+ <div class="ttc" id="classSVF_1_1IRGraph_html_a2085d6895363c2ff7b757eb58f3f4cea"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea">SVF::IRGraph::~IRGraph</a></div><div class="ttdeci">virtual ~IRGraph()</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00036">IRGraph.cpp:36</a></div></div>
151
151
  <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
152
152
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html">SVF::SymbolTableInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00047">SymbolTableInfo.h:47</a></div></div>
153
153
  <div class="ttc" id="classSVF_1_1IRGraph_html_ad4860fe89aa3a11c73aac3ed60f712cb"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">SVF::IRGraph::getPTAPAGEdgeNum</a></div><div class="ttdeci">Size_t getPTAPAGEdgeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00194">IRGraph.h:194</a></div></div>