svf-tools 1.0.595 → 1.0.596

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 (629) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +3 -3
  2. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +5 -5
  4. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +5 -5
  5. package/SVF-doxygen/html/html/Andersen_8h_source.html +3 -3
  6. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +3 -3
  8. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +8 -8
  9. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +4 -4
  10. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +8 -5
  11. package/SVF-doxygen/html/html/CFLGraph_8h.html +1 -1
  12. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +18 -16
  13. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +4 -4
  14. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +3 -3
  16. package/SVF-doxygen/html/html/CHG_8cpp.html +1 -1
  17. package/SVF-doxygen/html/html/CHG_8cpp_source.html +11 -8
  18. package/SVF-doxygen/html/html/CHG_8h.html +1 -1
  19. package/SVF-doxygen/html/html/CHG_8h_source.html +9 -7
  20. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +3 -3
  21. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +7 -7
  22. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +18 -16
  23. package/SVF-doxygen/html/html/ConsG_8h.html +1 -1
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +8 -6
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +5 -5
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +2 -2
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +15 -13
  28. package/SVF-doxygen/html/html/DCHG_8h.html +1 -1
  29. package/SVF-doxygen/html/html/DCHG_8h_source.html +12 -10
  30. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +2 -2
  31. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  32. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +8 -8
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
  35. package/SVF-doxygen/html/html/DOTGraphTraits_8h.html +96 -0
  36. package/SVF-doxygen/html/html/DOTGraphTraits_8h_source.html +102 -0
  37. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +11 -11
  39. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +6 -6
  41. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +5 -5
  42. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/GenericGraph_8h.html +11 -1
  44. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +127 -114
  45. package/SVF-doxygen/html/html/GraphPrinter_8h.html +2 -4
  46. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +8 -5
  47. package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +2 -1
  48. package/SVF-doxygen/html/html/GraphTraits_8h.html +117 -0
  49. package/SVF-doxygen/html/html/GraphTraits_8h_source.html +91 -0
  50. package/SVF-doxygen/html/html/GraphWriter_8cpp.html +81 -0
  51. package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +80 -0
  52. package/SVF-doxygen/html/html/GraphWriter_8h.html +137 -0
  53. package/SVF-doxygen/html/html/GraphWriter_8h_source.html +129 -0
  54. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +6 -6
  56. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  57. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +3 -3
  58. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +9 -7
  59. package/SVF-doxygen/html/html/ICFG_8h.html +1 -1
  60. package/SVF-doxygen/html/html/ICFG_8h_source.html +11 -9
  61. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  62. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +8 -5
  63. package/SVF-doxygen/html/html/IRGraph_8h.html +1 -1
  64. package/SVF-doxygen/html/html/IRGraph_8h_source.html +7 -5
  65. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +4 -3
  66. package/SVF-doxygen/html/html/LLVMModule_8cpp.html +4 -3
  67. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +31 -31
  68. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +28 -28
  69. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
  70. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +7 -7
  72. package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
  73. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
  74. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  75. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +8 -8
  76. package/SVF-doxygen/html/html/PCG_8cpp_source.html +6 -6
  77. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +17 -14
  78. package/SVF-doxygen/html/html/PTACallGraph_8h.html +1 -1
  79. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +15 -13
  80. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
  81. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
  82. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  83. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +5 -5
  84. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +2 -2
  85. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
  86. package/SVF-doxygen/html/html/SCC_8h_source.html +3 -1
  87. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  88. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +2 -2
  89. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +14 -14
  90. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +8 -8
  91. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  92. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +7 -7
  93. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +10 -9
  94. package/SVF-doxygen/html/html/SVFG_8h_source.html +11 -10
  95. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -6
  96. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
  97. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +8 -8
  98. package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
  99. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +3 -3
  100. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +8 -8
  101. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +10 -10
  102. package/SVF-doxygen/html/html/SVFValue_8h_source.html +1 -1
  103. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +4 -4
  104. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +7 -7
  105. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +7 -7
  106. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  107. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +7 -7
  108. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +2 -1
  109. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +3 -3
  110. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
  111. package/SVF-doxygen/html/html/TCT_8cpp_source.html +18 -16
  112. package/SVF-doxygen/html/html/TCT_8h.html +1 -1
  113. package/SVF-doxygen/html/html/TCT_8h_source.html +19 -17
  114. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
  115. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  116. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
  117. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
  118. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +6 -6
  119. package/SVF-doxygen/html/html/VFGNode_8h_source.html +6 -6
  120. package/SVF-doxygen/html/html/VFG_8cpp_source.html +10 -8
  121. package/SVF-doxygen/html/html/VFG_8h.html +1 -1
  122. package/SVF-doxygen/html/html/VFG_8h_source.html +11 -9
  123. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
  124. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +9 -9
  125. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +3 -2
  126. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  127. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -1
  128. package/SVF-doxygen/html/html/annotated.html +55 -42
  129. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +2 -2
  132. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
  134. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  137. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +25 -25
  138. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +5 -5
  139. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +7 -7
  140. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +5 -5
  141. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +15 -15
  142. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +2 -2
  143. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +4 -4
  145. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +12 -12
  146. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
  147. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +3 -3
  148. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +5 -5
  150. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +4 -4
  151. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +4 -3
  152. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +6 -6
  153. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +4 -4
  154. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +10 -10
  156. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +10 -9
  157. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +2 -2
  159. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  161. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
  162. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +30 -29
  164. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  165. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  166. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +8 -8
  167. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +2 -2
  169. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +27 -24
  170. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
  171. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +14 -14
  172. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
  174. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +2 -2
  175. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +4 -4
  176. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +2 -2
  180. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +2 -2
  181. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
  182. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +17 -17
  183. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +15 -15
  184. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +5 -5
  185. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
  188. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
  189. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +31 -31
  192. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +44 -44
  193. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +96 -97
  194. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  195. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +4 -4
  200. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +16 -15
  201. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
  202. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +7 -7
  203. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +2 -2
  205. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +11 -10
  206. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  207. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
  210. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +4 -3
  216. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +103 -103
  217. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
  218. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +8 -8
  220. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +11 -11
  221. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +9 -9
  222. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +5 -5
  225. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +28 -28
  226. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +3 -3
  228. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +4 -4
  229. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  230. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  231. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +8 -8
  232. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
  233. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +23 -22
  234. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +3 -3
  235. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +6 -6
  236. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +9 -9
  237. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +12 -12
  239. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +4 -4
  240. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
  241. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
  242. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +2 -2
  243. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  244. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  245. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +4 -4
  247. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +11 -11
  248. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +43 -43
  249. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +9 -9
  250. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +35 -35
  251. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +19 -19
  252. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +3 -3
  253. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +9 -9
  254. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +9 -9
  256. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +12 -12
  257. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  258. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +7 -7
  260. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +4 -4
  261. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +12 -12
  262. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +4 -4
  263. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +7 -7
  264. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +5 -5
  265. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
  266. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +3 -3
  267. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +35 -35
  268. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +2 -2
  270. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +4 -4
  272. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +4 -4
  273. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  274. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +6 -6
  275. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +4 -4
  276. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  277. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +19 -18
  278. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +13 -13
  279. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +32 -32
  283. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +6 -6
  284. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +4 -4
  285. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  286. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +4 -3
  287. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +4 -4
  288. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
  289. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +4 -4
  290. package/SVF-doxygen/html/html/classes.html +105 -102
  291. package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +9 -7
  292. package/SVF-doxygen/html/html/classllvm_1_1GraphWriter-members.html +100 -0
  293. package/SVF-doxygen/html/html/classllvm_1_1GraphWriter.html +882 -0
  294. package/SVF-doxygen/html/html/classllvm_1_1iterator__adaptor__base-members.html +112 -0
  295. package/SVF-doxygen/html/html/classllvm_1_1iterator__adaptor__base.html +633 -0
  296. package/SVF-doxygen/html/html/classllvm_1_1iterator__adaptor__base.png +0 -0
  297. package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base-members.html +102 -0
  298. package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base.html +787 -0
  299. package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base.png +0 -0
  300. package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base_1_1ReferenceProxy-members.html +84 -0
  301. package/SVF-doxygen/html/html/classllvm_1_1iterator__facade__base_1_1ReferenceProxy.html +229 -0
  302. package/SVF-doxygen/html/html/classllvm_1_1iterator__range-members.html +87 -0
  303. package/SVF-doxygen/html/html/classllvm_1_1iterator__range.html +342 -0
  304. package/SVF-doxygen/html/html/classllvm_1_1mapped__iter-members.html +112 -0
  305. package/SVF-doxygen/html/html/classllvm_1_1mapped__iter.html +322 -0
  306. package/SVF-doxygen/html/html/classllvm_1_1mapped__iter.png +0 -0
  307. package/SVF-doxygen/html/html/classllvm_1_1pointer__iterator-members.html +113 -0
  308. package/SVF-doxygen/html/html/classllvm_1_1pointer__iterator.html +343 -0
  309. package/SVF-doxygen/html/html/classllvm_1_1pointer__iterator.png +0 -0
  310. package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -0
  311. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +4 -0
  312. package/SVF-doxygen/html/html/dir_fa02919a30fec2d2c2d591b4d920d648.html +6 -0
  313. package/SVF-doxygen/html/html/fastcluster__R__dm_8cpp_8inc_source.html +2 -1
  314. package/SVF-doxygen/html/html/files.html +42 -36
  315. package/SVF-doxygen/html/html/functions_a.html +11 -8
  316. package/SVF-doxygen/html/html/functions_b.html +20 -13
  317. package/SVF-doxygen/html/html/functions_c.html +36 -37
  318. package/SVF-doxygen/html/html/functions_d.html +16 -4
  319. package/SVF-doxygen/html/html/functions_e.html +16 -2
  320. package/SVF-doxygen/html/html/functions_eval_b.html +4 -4
  321. package/SVF-doxygen/html/html/functions_eval_i.html +6 -0
  322. package/SVF-doxygen/html/html/functions_f.html +21 -18
  323. package/SVF-doxygen/html/html/functions_func.html +13 -10
  324. package/SVF-doxygen/html/html/functions_func_b.html +3 -2
  325. package/SVF-doxygen/html/html/functions_func_d.html +7 -3
  326. package/SVF-doxygen/html/html/functions_func_e.html +12 -1
  327. package/SVF-doxygen/html/html/functions_func_g.html +54 -22
  328. package/SVF-doxygen/html/html/functions_func_h.html +7 -4
  329. package/SVF-doxygen/html/html/functions_func_i.html +22 -8
  330. package/SVF-doxygen/html/html/functions_func_m.html +3 -0
  331. package/SVF-doxygen/html/html/functions_func_n.html +3 -0
  332. package/SVF-doxygen/html/html/functions_func_o.html +42 -8
  333. package/SVF-doxygen/html/html/functions_func_p.html +7 -1
  334. package/SVF-doxygen/html/html/functions_func_r.html +7 -1
  335. package/SVF-doxygen/html/html/functions_func_w.html +21 -0
  336. package/SVF-doxygen/html/html/functions_g.html +60 -21
  337. package/SVF-doxygen/html/html/functions_h.html +8 -5
  338. package/SVF-doxygen/html/html/functions_i.html +50 -19
  339. package/SVF-doxygen/html/html/functions_l.html +3 -3
  340. package/SVF-doxygen/html/html/functions_m.html +4 -1
  341. package/SVF-doxygen/html/html/functions_n.html +9 -3
  342. package/SVF-doxygen/html/html/functions_o.html +53 -20
  343. package/SVF-doxygen/html/html/functions_p.html +31 -21
  344. package/SVF-doxygen/html/html/functions_r.html +13 -10
  345. package/SVF-doxygen/html/html/functions_rela.html +6 -3
  346. package/SVF-doxygen/html/html/functions_s.html +8 -10
  347. package/SVF-doxygen/html/html/functions_t.html +9 -9
  348. package/SVF-doxygen/html/html/functions_type_b.html +3 -0
  349. package/SVF-doxygen/html/html/functions_type_c.html +4 -3
  350. package/SVF-doxygen/html/html/functions_type_d.html +6 -1
  351. package/SVF-doxygen/html/html/functions_type_g.html +2 -1
  352. package/SVF-doxygen/html/html/functions_type_i.html +2 -1
  353. package/SVF-doxygen/html/html/functions_type_n.html +6 -3
  354. package/SVF-doxygen/html/html/functions_type_p.html +2 -1
  355. package/SVF-doxygen/html/html/functions_type_r.html +2 -1
  356. package/SVF-doxygen/html/html/functions_type_v.html +2 -1
  357. package/SVF-doxygen/html/html/functions_v.html +6 -5
  358. package/SVF-doxygen/html/html/functions_vars_b.html +3 -0
  359. package/SVF-doxygen/html/html/functions_vars_d.html +3 -0
  360. package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
  361. package/SVF-doxygen/html/html/functions_vars_f.html +3 -0
  362. package/SVF-doxygen/html/html/functions_vars_g.html +6 -0
  363. package/SVF-doxygen/html/html/functions_vars_i.html +10 -0
  364. package/SVF-doxygen/html/html/functions_vars_o.html +3 -0
  365. package/SVF-doxygen/html/html/functions_vars_p.html +3 -0
  366. package/SVF-doxygen/html/html/functions_w.html +30 -9
  367. package/SVF-doxygen/html/html/hierarchy.html +444 -397
  368. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
  369. package/SVF-doxygen/html/html/iterator_8h.html +123 -0
  370. package/SVF-doxygen/html/html/iterator_8h_source.html +134 -0
  371. package/SVF-doxygen/html/html/iterator__range_8h.html +109 -0
  372. package/SVF-doxygen/html/html/iterator__range_8h_source.html +90 -0
  373. package/SVF-doxygen/html/html/menudata.js +17 -16
  374. package/SVF-doxygen/html/html/namespacellvm.html +488 -11
  375. package/SVF-doxygen/html/html/namespacellvm_1_1DOT.html +107 -0
  376. package/SVF-doxygen/html/html/namespacellvm_1_1GraphProgram.html +122 -0
  377. package/SVF-doxygen/html/html/namespacemembers_c.html +9 -0
  378. package/SVF-doxygen/html/html/namespacemembers_d.html +5 -2
  379. package/SVF-doxygen/html/html/namespacemembers_e.html +3 -0
  380. package/SVF-doxygen/html/html/namespacemembers_enum.html +3 -0
  381. package/SVF-doxygen/html/html/namespacemembers_eval.html +15 -0
  382. package/SVF-doxygen/html/html/namespacemembers_f.html +3 -0
  383. package/SVF-doxygen/html/html/namespacemembers_func.html +0 -495
  384. package/SVF-doxygen/html/html/namespacemembers_func_b.html +88 -0
  385. package/SVF-doxygen/html/html/namespacemembers_func_c.html +97 -0
  386. package/SVF-doxygen/html/html/namespacemembers_func_d.html +97 -0
  387. package/SVF-doxygen/html/html/namespacemembers_func_e.html +82 -0
  388. package/SVF-doxygen/html/html/namespacemembers_func_f.html +76 -0
  389. package/SVF-doxygen/html/html/namespacemembers_func_g.html +186 -0
  390. package/SVF-doxygen/html/html/namespacemembers_func_h.html +76 -0
  391. package/SVF-doxygen/html/html/namespacemembers_func_i.html +250 -0
  392. package/SVF-doxygen/html/html/namespacemembers_func_m.html +91 -0
  393. package/SVF-doxygen/html/html/namespacemembers_func_n.html +76 -0
  394. package/SVF-doxygen/html/html/namespacemembers_func_o.html +94 -0
  395. package/SVF-doxygen/html/html/namespacemembers_func_p.html +82 -0
  396. package/SVF-doxygen/html/html/namespacemembers_func_r.html +79 -0
  397. package/SVF-doxygen/html/html/namespacemembers_func_s.html +91 -0
  398. package/SVF-doxygen/html/html/namespacemembers_func_t.html +76 -0
  399. package/SVF-doxygen/html/html/namespacemembers_func_v.html +85 -0
  400. package/SVF-doxygen/html/html/namespacemembers_func_w.html +82 -0
  401. package/SVF-doxygen/html/html/namespacemembers_i.html +8 -2
  402. package/SVF-doxygen/html/html/namespacemembers_m.html +12 -0
  403. package/SVF-doxygen/html/html/namespacemembers_n.html +9 -0
  404. package/SVF-doxygen/html/html/namespacemembers_r.html +4 -1
  405. package/SVF-doxygen/html/html/namespacemembers_t.html +3 -0
  406. package/SVF-doxygen/html/html/namespacemembers_type_r.html +3 -0
  407. package/SVF-doxygen/html/html/namespacemembers_v.html +3 -0
  408. package/SVF-doxygen/html/html/namespacemembers_w.html +3 -0
  409. package/SVF-doxygen/html/html/namespaces.html +3 -1
  410. package/SVF-doxygen/html/html/search/all_1.js +1 -0
  411. package/SVF-doxygen/html/html/search/all_10.js +13 -10
  412. package/SVF-doxygen/html/html/search/all_11.js +5 -2
  413. package/SVF-doxygen/html/html/search/all_12.js +4 -4
  414. package/SVF-doxygen/html/html/search/all_13.js +7 -6
  415. package/SVF-doxygen/html/html/search/all_15.js +4 -3
  416. package/SVF-doxygen/html/html/search/all_16.js +9 -2
  417. package/SVF-doxygen/html/html/search/all_2.js +6 -4
  418. package/SVF-doxygen/html/html/search/all_3.js +8 -5
  419. package/SVF-doxygen/html/html/search/all_4.js +9 -2
  420. package/SVF-doxygen/html/html/search/all_5.js +7 -2
  421. package/SVF-doxygen/html/html/search/all_6.js +3 -1
  422. package/SVF-doxygen/html/html/search/all_7.js +51 -7
  423. package/SVF-doxygen/html/html/search/all_8.js +1 -0
  424. package/SVF-doxygen/html/html/search/all_9.js +24 -6
  425. package/SVF-doxygen/html/html/search/all_c.js +4 -2
  426. package/SVF-doxygen/html/html/search/all_d.js +6 -1
  427. package/SVF-doxygen/html/html/search/all_e.js +7 -4
  428. package/SVF-doxygen/html/html/search/all_f.js +17 -13
  429. package/SVF-doxygen/html/html/search/classes_3.js +4 -0
  430. package/SVF-doxygen/html/html/search/classes_6.js +33 -1
  431. package/SVF-doxygen/html/html/search/classes_8.js +11 -1
  432. package/SVF-doxygen/html/html/search/classes_a.js +1 -0
  433. package/SVF-doxygen/html/html/search/classes_d.js +2 -0
  434. package/SVF-doxygen/html/html/search/classes_e.js +1 -0
  435. package/SVF-doxygen/html/html/search/enums_8.js +1 -6
  436. package/SVF-doxygen/html/html/search/enums_9.js +6 -1
  437. package/SVF-doxygen/html/html/search/enums_a.js +1 -4
  438. package/SVF-doxygen/html/html/search/enums_b.js +4 -2
  439. package/SVF-doxygen/html/html/search/enums_c.js +2 -4
  440. package/SVF-doxygen/html/html/search/enums_d.js +4 -1
  441. package/SVF-doxygen/html/html/search/enums_e.html +26 -0
  442. package/SVF-doxygen/html/html/search/enums_e.js +4 -0
  443. package/SVF-doxygen/html/html/search/enumvalues_1.js +3 -3
  444. package/SVF-doxygen/html/html/search/enumvalues_10.js +1 -0
  445. package/SVF-doxygen/html/html/search/enumvalues_2.js +1 -0
  446. package/SVF-doxygen/html/html/search/enumvalues_3.js +1 -0
  447. package/SVF-doxygen/html/html/search/enumvalues_5.js +1 -0
  448. package/SVF-doxygen/html/html/search/enumvalues_8.js +3 -1
  449. package/SVF-doxygen/html/html/search/enumvalues_b.js +1 -0
  450. package/SVF-doxygen/html/html/search/files_3.js +1 -0
  451. package/SVF-doxygen/html/html/search/files_6.js +4 -1
  452. package/SVF-doxygen/html/html/search/files_7.js +3 -1
  453. package/SVF-doxygen/html/html/search/functions_0.js +1 -0
  454. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  455. package/SVF-doxygen/html/html/search/functions_10.js +2 -0
  456. package/SVF-doxygen/html/html/search/functions_14.js +1 -0
  457. package/SVF-doxygen/html/html/search/functions_15.js +7 -0
  458. package/SVF-doxygen/html/html/search/functions_2.js +2 -0
  459. package/SVF-doxygen/html/html/search/functions_3.js +2 -1
  460. package/SVF-doxygen/html/html/search/functions_4.js +6 -2
  461. package/SVF-doxygen/html/html/search/functions_6.js +15 -6
  462. package/SVF-doxygen/html/html/search/functions_7.js +1 -0
  463. package/SVF-doxygen/html/html/search/functions_8.js +9 -3
  464. package/SVF-doxygen/html/html/search/functions_c.js +5 -0
  465. package/SVF-doxygen/html/html/search/functions_d.js +2 -0
  466. package/SVF-doxygen/html/html/search/functions_e.js +14 -8
  467. package/SVF-doxygen/html/html/search/functions_f.js +3 -1
  468. package/SVF-doxygen/html/html/search/namespaces_0.js +2 -0
  469. package/SVF-doxygen/html/html/search/related_9.js +3 -3
  470. package/SVF-doxygen/html/html/search/searchdata.js +1 -1
  471. package/SVF-doxygen/html/html/search/typedefs_1.js +1 -0
  472. package/SVF-doxygen/html/html/search/typedefs_13.js +1 -1
  473. package/SVF-doxygen/html/html/search/typedefs_2.js +2 -2
  474. package/SVF-doxygen/html/html/search/typedefs_3.js +2 -1
  475. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  476. package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
  477. package/SVF-doxygen/html/html/search/typedefs_c.js +3 -3
  478. package/SVF-doxygen/html/html/search/typedefs_e.js +1 -1
  479. package/SVF-doxygen/html/html/search/typedefs_f.js +2 -1
  480. package/SVF-doxygen/html/html/search/variables_10.js +1 -0
  481. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  482. package/SVF-doxygen/html/html/search/variables_2.js +1 -0
  483. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  484. package/SVF-doxygen/html/html/search/variables_4.js +1 -0
  485. package/SVF-doxygen/html/html/search/variables_5.js +1 -0
  486. package/SVF-doxygen/html/html/search/variables_6.js +1 -0
  487. package/SVF-doxygen/html/html/search/variables_7.js +2 -1
  488. package/SVF-doxygen/html/html/search/variables_9.js +5 -2
  489. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  490. package/SVF-doxygen/html/html/search/variables_f.js +1 -0
  491. package/SVF-doxygen/html/html/structSVF_1_1GenericEdge_1_1equalGEdge.html +3 -3
  492. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +3 -3
  493. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +46 -46
  494. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits-members.html +99 -0
  495. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits.html +193 -0
  496. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits.png +0 -0
  497. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4-members.html +22 -4
  498. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +67 -10
  499. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.png +0 -0
  500. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4-members.html +21 -3
  501. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +65 -8
  502. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.png +0 -0
  503. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4-members.html +22 -4
  504. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +72 -12
  505. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.png +0 -0
  506. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4-members.html +23 -5
  507. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +70 -10
  508. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.png +0 -0
  509. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4-members.html +23 -5
  510. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +68 -11
  511. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.png +0 -0
  512. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4-members.html +23 -5
  513. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +68 -11
  514. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.png +0 -0
  515. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4-members.html +24 -6
  516. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +76 -15
  517. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.png +0 -0
  518. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4-members.html +22 -4
  519. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +67 -10
  520. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.png +0 -0
  521. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4-members.html +24 -6
  522. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +73 -12
  523. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.png +0 -0
  524. package/SVF-doxygen/html/html/structllvm_1_1DefaultDOTGraphTraits-members.html +99 -0
  525. package/SVF-doxygen/html/html/structllvm_1_1DefaultDOTGraphTraits.html +855 -0
  526. package/SVF-doxygen/html/html/structllvm_1_1DefaultDOTGraphTraits.png +0 -0
  527. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits-members.html +81 -0
  528. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits.html +116 -0
  529. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4-members.html +81 -0
  530. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html +106 -0
  531. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.png +0 -0
  532. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4-members.html +81 -0
  533. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +12 -2
  534. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.png +0 -0
  535. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4-members.html +81 -0
  536. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.html +12 -2
  537. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.png +0 -0
  538. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4-members.html +81 -0
  539. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.html +12 -2
  540. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.png +0 -0
  541. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4-members.html +81 -0
  542. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +12 -2
  543. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.png +0 -0
  544. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4-members.html +1 -1
  545. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html +33 -31
  546. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4-members.html +81 -0
  547. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +12 -2
  548. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.png +0 -0
  549. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4-members.html +81 -0
  550. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.html +12 -2
  551. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.png +0 -0
  552. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4-members.html +81 -0
  553. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html +12 -2
  554. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.png +0 -0
  555. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4-members.html +81 -0
  556. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +12 -2
  557. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.png +0 -0
  558. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4-members.html +81 -0
  559. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +12 -2
  560. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.png +0 -0
  561. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +5 -1
  562. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.png +0 -0
  563. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4-members.html +81 -0
  564. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +10 -0
  565. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.png +0 -0
  566. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.html +5 -1
  567. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.png +0 -0
  568. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHNode_01_5_01_4-members.html +81 -0
  569. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHNode_01_5_01_4.html +10 -0
  570. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CHNode_01_5_01_4.png +0 -0
  571. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.html +5 -1
  572. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.png +0 -0
  573. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4-members.html +81 -0
  574. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.html +10 -0
  575. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.png +0 -0
  576. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +5 -1
  577. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.png +0 -0
  578. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHNode_01_5_01_4-members.html +81 -0
  579. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +10 -0
  580. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.png +0 -0
  581. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4-members.html +2 -2
  582. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html +46 -44
  583. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4-members.html +1 -1
  584. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html +38 -34
  585. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4-members.html +81 -0
  586. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +10 -0
  587. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.png +0 -0
  588. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +5 -1
  589. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.png +0 -0
  590. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html +5 -1
  591. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.png +0 -0
  592. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4-members.html +81 -0
  593. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.html +10 -0
  594. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.png +0 -0
  595. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.html +5 -1
  596. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.png +0 -0
  597. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +5 -1
  598. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFG_01_5_01_4.png +0 -0
  599. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4-members.html +81 -0
  600. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html +10 -0
  601. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.png +0 -0
  602. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4-members.html +81 -0
  603. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +10 -0
  604. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.png +0 -0
  605. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +5 -1
  606. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.png +0 -0
  607. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4-members.html +81 -0
  608. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +10 -0
  609. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.png +0 -0
  610. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +5 -1
  611. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFG_01_5_01_4.png +0 -0
  612. package/SVF-doxygen/html/html/structllvm_1_1Inverse-members.html +82 -0
  613. package/SVF-doxygen/html/html/structllvm_1_1Inverse.html +154 -0
  614. package/SVF-doxygen/html/html/structllvm_1_1pointee__iterator-members.html +111 -0
  615. package/SVF-doxygen/html/html/structllvm_1_1pointee__iterator.html +279 -0
  616. package/SVF-doxygen/html/html/structllvm_1_1pointee__iterator.png +0 -0
  617. package/SVF-doxygen/html/html/svf-ex_8cpp.html +8 -8
  618. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +4 -4
  619. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
  620. package/include/Graphs/DOTGraphTraits.h +188 -0
  621. package/include/Graphs/GenericGraph.h +50 -11
  622. package/include/Graphs/GraphPrinter.h +12 -20
  623. package/include/Graphs/GraphTraits.h +150 -0
  624. package/include/Graphs/GraphWriter.h +380 -0
  625. package/include/Util/iterator.h +407 -0
  626. package/include/Util/iterator_range.h +76 -0
  627. package/lib/Graphs/GraphWriter.cpp +53 -0
  628. package/lib/SVF-LLVM/LLVMModule.cpp +1 -0
  629. package/package.json +1 -1
@@ -66,7 +66,7 @@ $(function() {
66
66
  <div class="title">IRGraph.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="IRGraph_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFIR.cpp -- 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"> * SVFIR.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: 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;<span class="preprocessor">#include &quot;<a class="code" href="IRGraph_8h.html">Graphs/IRGraph.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea"> 36</a></span>&#160;<a class="code" href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea">IRGraph::~IRGraph</a>()</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec">SymbolTableInfo::releaseSymbolInfo</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; symInfo = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e"> 45</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">IRGraph::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="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a>,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;add edge from &quot;</span> &lt;&lt; src-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; kind :&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; &lt;&lt; src-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() &lt;&lt; <span class="stringliteral">&quot; to &quot;</span> &lt;&lt; dst-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; &lt;&lt; <span class="stringliteral">&quot; kind :&quot;</span> &lt;&lt; dst-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; src-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f">addOutEdge</a>(edge);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; dst-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618">addInEdge</a>(edge);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407"> 60</a></span>&#160;<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">IRGraph::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="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> edge(src,dst,kind, <span class="keyword">false</span>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&amp;edge);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (it != KindToSVFStmtSetMap[kind].end())</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; <span class="keywordflow">return</span> *it;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a1c999e2fd771e4fda192af096e3ec92c"> 74</a></span>&#160;<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">IRGraph::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="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> edge(src,op1,<a class="code" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">SVFStmt::makeEdgeFlagWithAddionalOpnd</a>(kind,op2), <span class="keyword">false</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&amp;edge);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (it != KindToSVFStmtSetMap[kind].end())</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> *it;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0"> 88</a></span>&#160;<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">IRGraph::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>* callInst)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> edge(src,dst,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">SVFStmt::makeEdgeFlagWithCallInst</a>(kind,callInst), <span class="keyword">false</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&amp;edge);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (it != KindToSVFStmtSetMap[kind].end())</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> *it;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307"> 102</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">IRGraph::dump</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;{</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>(), name, <span class="keyword">this</span>);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67"> 110</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">IRGraph::view</a>()</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; llvm::ViewGraph(<span class="keyword">this</span>, <span class="stringliteral">&quot;ProgramAssignmentGraph&quot;</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacellvm.html">llvm</a></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html"> 122</a></span>&#160;<span class="keyword">struct </span>DOTGraphTraits&lt;<a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>*&gt; : <span class="keyword">public</span> DefaultDOTGraphTraits</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad6174f74f7a037a7ffd13df41c5f50f7"> 125</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad6174f74f7a037a7ffd13df41c5f50f7">NodeType</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a03a1edb4d4b703eff1bdad004179c1ec"> 126</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html#a2f5471985dfe62bc9ded830a693ab153">NodeType::iterator</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a03a1edb4d4b703eff1bdad004179c1ec">ChildIteratorType</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad540c20d134f28f3b99a32d0e69b2a3f"> 127</a></span>&#160; <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad540c20d134f28f3b99a32d0e69b2a3f">DOTGraphTraits</a>(<span class="keywordtype">bool</span> isSimple = <span class="keyword">false</span>) :</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; DefaultDOTGraphTraits(isSimple)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a6cbd0e71b5ea955de8a548bad9256160"> 133</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a6cbd0e71b5ea955de8a548bad9256160">getGraphName</a>(<a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a> *graph)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> graph-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867">getGraphName</a>();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#if LLVM_VERSION_MAJOR &gt;= 12</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> isNodeHidden(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a> *)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a8593f5bcb7ff8b33bce21cfbc91e3753"> 144</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a8593f5bcb7ff8b33bce21cfbc91e3753">isNodeHidden</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#adec2012e10130f664fe0ea3acf39f78b">Options::ShowHiddenNode</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#acf194658d2cbdaf3f26f2af6c325fad7">isIsolatedNode</a>();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#aa8f1f1699fe8350542072cae450c8afa"> 153</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#aa8f1f1699fe8350542072cae450c8afa">getNodeLabel</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>*)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; std::stringstream rawstr(str);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// print function info</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a79b35a312248e96a89a28cbf1b99b6fe">getFunction</a>())</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;[&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a79b35a312248e96a89a28cbf1b99b6fe">getFunction</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>() &lt;&lt; <span class="stringliteral">&quot;] &quot;</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a9f6fb05fdadcba74038252a08356867d"> 167</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a9f6fb05fdadcba74038252a08356867d">getNodeAttributes</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>*)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;ValVar&gt;(node))</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepValVar&gt;(node))</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=hexagon&quot;</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyValVar&gt;(node))</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=diamond&quot;</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=box&quot;</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ObjVar&gt;(node))</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepObjVar&gt;(node))</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=doubleoctagon&quot;</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;FIObjVar&gt;(node))</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=box3d&quot;</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt;(node))</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=tab&quot;</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=component&quot;</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetPN&gt;(node))</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=Mrecord&quot;</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;VarArgPN&gt;(node))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=octagon&quot;</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; assert(0 &amp;&amp; <span class="stringliteral">&quot;no such kind!!&quot;</span>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&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="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> EdgeIter&gt;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a27816e06b813b2723a5757128d009cab"> 205</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a27816e06b813b2723a5757128d009cab">getEdgeAttributes</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>*, EdgeIter EI, <a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>*)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;AddrStmt&gt;(edge))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=green&quot;</span>;</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CopyStmt&gt;(edge))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black&quot;</span>;</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="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GepStmt&gt;(edge))</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=purple&quot;</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreStmt&gt;(edge))</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; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=blue&quot;</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadStmt&gt;(edge))</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=red&quot;</span>;</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;PhiStmt&gt;(edge))</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SelectStmt&gt;(edge))</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="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CmpStmt&gt;(edge))</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;BinaryOPStmt&gt;(edge))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UnaryOPStmt&gt;(edge))</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;BranchStmt&gt;(edge))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;TDForkPE&gt;(edge))</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=Turquoise&quot;</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;TDJoinPE&gt;(edge))</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=Turquoise&quot;</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CallPE&gt;(edge))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black,style=dashed&quot;</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetPE&gt;(edge))</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black,style=dotted&quot;</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;No such kind edge!!&quot;</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; exit(1);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> EdgeIter&gt;</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a947696a48fdac183d0cc40de92944315"> 275</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a947696a48fdac183d0cc40de92944315">getEdgeSourceLabel</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>*, EdgeIter EI)</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* calledge = SVFUtil::dyn_cast&lt;CallPE&gt;(edge))</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* callInst= calledge-&gt;getCallSite()-&gt;getCallSite();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> callInst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* retedge = SVFUtil::dyn_cast&lt;RetPE&gt;(edge))</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* callInst= retedge-&gt;getCallSite()-&gt;getCallSite();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> callInst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;};</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;} <span class="comment">// End namespace llvm</span></div><div class="ttc" id="SVFType_8h_html_a7a295e02c56a93cf9206dd9d3b18dd17"><div class="ttname"><a href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a></div><div class="ttdeci">#define DPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00426">SVFType.h:426</a></div></div>
69
+ <a href="IRGraph_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFIR.cpp -- 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"> * SVFIR.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: 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;<span class="preprocessor">#include &quot;<a class="code" href="IRGraph_8h.html">Graphs/IRGraph.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea"> 36</a></span>&#160;<a class="code" href="classSVF_1_1IRGraph.html#a2085d6895363c2ff7b757eb58f3f4cea">IRGraph::~IRGraph</a>()</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec">SymbolTableInfo::releaseSymbolInfo</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; symInfo = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e"> 45</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1IRGraph.html#a722f32d0a0a3bafdd97fc74819d2621e">IRGraph::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="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a>,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;add edge from &quot;</span> &lt;&lt; src-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; kind :&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; &lt;&lt; src-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() &lt;&lt; <span class="stringliteral">&quot; to &quot;</span> &lt;&lt; dst-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; &lt;&lt; <span class="stringliteral">&quot; kind :&quot;</span> &lt;&lt; dst-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">getNodeKind</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; src-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f">addOutEdge</a>(edge);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; dst-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618">addInEdge</a>(edge);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407"> 60</a></span>&#160;<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#abe0ab797a3da420e4d2f9136d64fb407">IRGraph::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="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> edge(src,dst,kind, <span class="keyword">false</span>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&amp;edge);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (it != KindToSVFStmtSetMap[kind].end())</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; <span class="keywordflow">return</span> *it;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a1c999e2fd771e4fda192af096e3ec92c"> 74</a></span>&#160;<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">IRGraph::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="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> edge(src,op1,<a class="code" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">SVFStmt::makeEdgeFlagWithAddionalOpnd</a>(kind,op2), <span class="keyword">false</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&amp;edge);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (it != KindToSVFStmtSetMap[kind].end())</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> *it;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0"> 88</a></span>&#160;<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">IRGraph::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>* callInst)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> edge(src,dst,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">SVFStmt::makeEdgeFlagWithCallInst</a>(kind,callInst), <span class="keyword">false</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; SVFStmt::SVFStmtSetTy::iterator it = KindToSVFStmtSetMap[kind].find(&amp;edge);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (it != KindToSVFStmtSetMap[kind].end())</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> *it;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307"> 102</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a1cb32461439c4dc8d044c2bfadb11307">IRGraph::dump</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;{</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>(), name, <span class="keyword">this</span>);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67"> 110</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IRGraph.html#a3a656bb310ba0f42e525995a480a5b67">IRGraph::view</a>()</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="namespacellvm.html#a470c5592e4cd36a22901d15832b9c41b">llvm::ViewGraph</a>(<span class="keyword">this</span>, <span class="stringliteral">&quot;ProgramAssignmentGraph&quot;</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacellvm.html">llvm</a></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html"> 122</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structllvm_1_1DOTGraphTraits.html">DOTGraphTraits</a>&lt;<a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>*&gt; : <span class="keyword">public</span> <a class="code" href="structllvm_1_1DefaultDOTGraphTraits.html">DefaultDOTGraphTraits</a></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad6174f74f7a037a7ffd13df41c5f50f7"> 125</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad6174f74f7a037a7ffd13df41c5f50f7">NodeType</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a03a1edb4d4b703eff1bdad004179c1ec"> 126</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html#a2f5471985dfe62bc9ded830a693ab153">NodeType::iterator</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a03a1edb4d4b703eff1bdad004179c1ec">ChildIteratorType</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad540c20d134f28f3b99a32d0e69b2a3f"> 127</a></span>&#160; <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad540c20d134f28f3b99a32d0e69b2a3f">DOTGraphTraits</a>(<span class="keywordtype">bool</span> isSimple = <span class="keyword">false</span>) :</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="structllvm_1_1DefaultDOTGraphTraits.html">DefaultDOTGraphTraits</a>(isSimple)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a6cbd0e71b5ea955de8a548bad9256160"> 133</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a6cbd0e71b5ea955de8a548bad9256160">getGraphName</a>(<a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a> *graph)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> graph-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a5a34f23fee4f84e74908041efebd6867">getGraphName</a>();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#if LLVM_VERSION_MAJOR &gt;= 12</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> isNodeHidden(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a> *)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a8593f5bcb7ff8b33bce21cfbc91e3753"> 144</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a8593f5bcb7ff8b33bce21cfbc91e3753">isNodeHidden</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#adec2012e10130f664fe0ea3acf39f78b">Options::ShowHiddenNode</a>) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#acf194658d2cbdaf3f26f2af6c325fad7">isIsolatedNode</a>();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#aa8f1f1699fe8350542072cae450c8afa"> 153</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#aa8f1f1699fe8350542072cae450c8afa">getNodeLabel</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>*)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; std::stringstream rawstr(str);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// print function info</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a79b35a312248e96a89a28cbf1b99b6fe">getFunction</a>())</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;[&quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a79b35a312248e96a89a28cbf1b99b6fe">getFunction</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a68b40576b24c4cb81cc3ba75550f4654">getName</a>() &lt;&lt; <span class="stringliteral">&quot;] &quot;</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; rawstr &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ada932ef2ae0a3e712174df479c35b0dd">toString</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a9f6fb05fdadcba74038252a08356867d"> 167</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a9f6fb05fdadcba74038252a08356867d">getNodeAttributes</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>*)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;ValVar&gt;(node))</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepValVar&gt;(node))</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=hexagon&quot;</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyValVar&gt;(node))</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=diamond&quot;</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=box&quot;</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ObjVar&gt;(node))</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;GepObjVar&gt;(node))</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=doubleoctagon&quot;</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;FIObjVar&gt;(node))</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=box3d&quot;</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;DummyObjVar&gt;(node))</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=tab&quot;</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=component&quot;</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetPN&gt;(node))</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=Mrecord&quot;</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;VarArgPN&gt;(node))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;shape=octagon&quot;</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; assert(0 &amp;&amp; <span class="stringliteral">&quot;no such kind!!&quot;</span>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&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="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> EdgeIter&gt;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a27816e06b813b2723a5757128d009cab"> 205</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a27816e06b813b2723a5757128d009cab">getEdgeAttributes</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>*, EdgeIter EI, <a class="code" href="classSVF_1_1IRGraph.html">IRGraph</a>*)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;AddrStmt&gt;(edge))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=green&quot;</span>;</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CopyStmt&gt;(edge))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black&quot;</span>;</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="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;GepStmt&gt;(edge))</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=purple&quot;</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;StoreStmt&gt;(edge))</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; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=blue&quot;</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;LoadStmt&gt;(edge))</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=red&quot;</span>;</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;PhiStmt&gt;(edge))</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SelectStmt&gt;(edge))</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="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CmpStmt&gt;(edge))</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;BinaryOPStmt&gt;(edge))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;UnaryOPStmt&gt;(edge))</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;BranchStmt&gt;(edge))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=grey&quot;</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;TDForkPE&gt;(edge))</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=Turquoise&quot;</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;TDJoinPE&gt;(edge))</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=Turquoise&quot;</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;CallPE&gt;(edge))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black,style=dashed&quot;</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;RetPE&gt;(edge))</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;color=black,style=dotted&quot;</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;No such kind edge!!&quot;</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; exit(1);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">class</span> EdgeIter&gt;</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a947696a48fdac183d0cc40de92944315"> 275</a></span>&#160; <span class="keyword">static</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a947696a48fdac183d0cc40de92944315">getEdgeSourceLabel</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>*, EdgeIter EI)</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge = *(EI.getCurrent());</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; assert(edge &amp;&amp; <span class="stringliteral">&quot;No edge found!!&quot;</span>);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* calledge = SVFUtil::dyn_cast&lt;CallPE&gt;(edge))</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* callInst= calledge-&gt;getCallSite()-&gt;getCallSite();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> callInst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* retedge = SVFUtil::dyn_cast&lt;RetPE&gt;(edge))</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* callInst= retedge-&gt;getCallSite()-&gt;getCallSite();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> callInst-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;};</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;} <span class="comment">// End namespace llvm</span></div><div class="ttc" id="SVFType_8h_html_a7a295e02c56a93cf9206dd9d3b18dd17"><div class="ttname"><a href="SVFType_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a></div><div class="ttdeci">#define DPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00426">SVFType.h:426</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1SVFVar_html_a9376133075b0d44ff09876af933c8618"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a9376133075b0d44ff09876af933c8618">SVF::SVFVar::addInEdge</a></div><div class="ttdeci">void addInEdge(SVFStmt *inEdge)</div><div class="ttdoc">add methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00206">SVFVariables.h:206</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00579">SVFValue.h:579</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00545">SVFStatements.h:545</a></div></div>
@@ -85,9 +85,9 @@ $(function() {
85
85
  <div class="ttc" id="cJSON_8h_html_a25d22ecc7e656d2c59332072684e8766"><div class="ttname"><a href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a></div><div class="ttdeci">const char *const name</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00264">cJSON.h:264</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
87
87
  <div class="ttc" id="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4_html_ad6174f74f7a037a7ffd13df41c5f50f7"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad6174f74f7a037a7ffd13df41c5f50f7">llvm::DOTGraphTraits&lt; IRGraph * &gt;::NodeType</a></div><div class="ttdeci">SVFVar NodeType</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00125">IRGraph.cpp:125</a></div></div>
88
- <div class="ttc" id="classSVF_1_1GenericNode_html_a391e996d695b114530120723da1d003e"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">SVF::GenericNode::getNodeKind</a></div><div class="ttdeci">GNodeK getNodeKind() const</div><div class="ttdoc">Get node kind. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00175">GenericGraph.h:175</a></div></div>
88
+ <div class="ttc" id="classSVF_1_1GenericNode_html_a391e996d695b114530120723da1d003e"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a391e996d695b114530120723da1d003e">SVF::GenericNode::getNodeKind</a></div><div class="ttdeci">GNodeK getNodeKind() const</div><div class="ttdoc">Get node kind. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00176">GenericGraph.h:176</a></div></div>
89
89
  <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>
90
- <div class="ttc" id="classSVF_1_1GenericNode_html_a2f5471985dfe62bc9ded830a693ab153"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2f5471985dfe62bc9ded830a693ab153">SVF::GenericNode::iterator</a></div><div class="ttdeci">GEdgeSetTy::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00143">GenericGraph.h:143</a></div></div>
90
+ <div class="ttc" id="classSVF_1_1GenericNode_html_a2f5471985dfe62bc9ded830a693ab153"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2f5471985dfe62bc9ded830a693ab153">SVF::GenericNode::iterator</a></div><div class="ttdeci">GEdgeSetTy::iterator iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00144">GenericGraph.h:144</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1Options_html_adec2012e10130f664fe0ea3acf39f78b"><div class="ttname"><a href="classSVF_1_1Options.html#adec2012e10130f664fe0ea3acf39f78b">SVF::Options::ShowHiddenNode</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ShowHiddenNode</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00250">Options.h:250</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00488">SVFStatements.h:488</a></div></div>
93
93
  <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#l00088">IRGraph.cpp:88</a></div></div>
@@ -96,20 +96,23 @@ $(function() {
96
96
  <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#l00045">IRGraph.cpp:45</a></div></div>
97
97
  <div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a3b20523aed66ac8943d7d00ff777137b"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">SVF::SVFStmt::makeEdgeFlagWithAddionalOpnd</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithAddionalOpnd(GEdgeKind k, const SVFVar *var)</div><div class="ttdoc">Compute the unique edgeFlag value from edge kind and second variable operand for MultiOpndStmt. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00143">SVFStatements.h:143</a></div></div>
99
- <div class="ttc" id="classllvm_1_1GraphPrinter_html_af6ed328e74882d2b5e2b4039cb836928"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &amp;O, const std::string &amp;GraphName, const GraphType &amp;GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00058">GraphPrinter.h:58</a></div></div>
99
+ <div class="ttc" id="classllvm_1_1GraphPrinter_html_af6ed328e74882d2b5e2b4039cb836928"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#af6ed328e74882d2b5e2b4039cb836928">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &amp;O, const std::string &amp;GraphName, const GraphType &amp;GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00056">GraphPrinter.h:56</a></div></div>
100
100
  <div class="ttc" id="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4_html_ad540c20d134f28f3b99a32d0e69b2a3f"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#ad540c20d134f28f3b99a32d0e69b2a3f">llvm::DOTGraphTraits&lt; IRGraph * &gt;::DOTGraphTraits</a></div><div class="ttdeci">DOTGraphTraits(bool isSimple=false)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00127">IRGraph.cpp:127</a></div></div>
101
101
  <div class="ttc" id="IRGraph_8h_html"><div class="ttname"><a href="IRGraph_8h.html">IRGraph.h</a></div></div>
102
102
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
103
+ <div class="ttc" id="structllvm_1_1DOTGraphTraits_html"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits.html">llvm::DOTGraphTraits</a></div><div class="ttdef"><b>Definition:</b> <a href="DOTGraphTraits_8h_source.html#l00181">DOTGraphTraits.h:181</a></div></div>
103
104
  <div class="ttc" id="classSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00248">SVFValue.h:248</a></div></div>
104
105
  <div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
105
106
  <div class="ttc" id="classSVF_1_1SVFVar_html_a79b35a312248e96a89a28cbf1b99b6fe"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a79b35a312248e96a89a28cbf1b99b6fe">SVF::SVFVar::getFunction</a></div><div class="ttdeci">virtual const SVFFunction * getFunction() const</div><div class="ttdoc">Return the function that this SVFVar resides in. Return nullptr if it is a global or constantexpr nod...</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00127">SVFVariables.h:127</a></div></div>
106
107
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
107
108
  <div class="ttc" id="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4_html_a947696a48fdac183d0cc40de92944315"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a947696a48fdac183d0cc40de92944315">llvm::DOTGraphTraits&lt; IRGraph * &gt;::getEdgeSourceLabel</a></div><div class="ttdeci">static std::string getEdgeSourceLabel(SVFVar *, EdgeIter EI)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00275">IRGraph.cpp:275</a></div></div>
108
- <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
109
+ <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00170">GenericGraph.h:170</a></div></div>
110
+ <div class="ttc" id="namespacellvm_html_a470c5592e4cd36a22901d15832b9c41b"><div class="ttname"><a href="namespacellvm.html#a470c5592e4cd36a22901d15832b9c41b">llvm::ViewGraph</a></div><div class="ttdeci">void ViewGraph(const GraphType &amp;G, const std::string &amp;name, bool ShortNames=false, GraphProgram::Name Program=GraphProgram::DOT)</div><div class="ttdef"><b>Definition:</b> <a href="GraphWriter_8h_source.html#l00371">GraphWriter.h:371</a></div></div>
109
111
  <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#l00060">IRGraph.cpp:60</a></div></div>
110
112
  <div class="ttc" id="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4_html_a8593f5bcb7ff8b33bce21cfbc91e3753"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a8593f5bcb7ff8b33bce21cfbc91e3753">llvm::DOTGraphTraits&lt; IRGraph * &gt;::isNodeHidden</a></div><div class="ttdeci">static bool isNodeHidden(SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00144">IRGraph.cpp:144</a></div></div>
111
113
  <div class="ttc" id="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4_html_a6cbd0e71b5ea955de8a548bad9256160"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html#a6cbd0e71b5ea955de8a548bad9256160">llvm::DOTGraphTraits&lt; IRGraph * &gt;::getGraphName</a></div><div class="ttdeci">static std::string getGraphName(IRGraph *graph)</div><div class="ttdoc">Return name of the graph. </div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8cpp_source.html#l00133">IRGraph.cpp:133</a></div></div>
112
114
  <div class="ttc" id="classSVF_1_1SVFVar_html_acf194658d2cbdaf3f26f2af6c325fad7"><div class="ttname"><a href="classSVF_1_1SVFVar.html#acf194658d2cbdaf3f26f2af6c325fad7">SVF::SVFVar::isIsolatedNode</a></div><div class="ttdeci">bool isIsolatedNode() const</div><div class="ttdoc">Whether this is an isoloated node on the SVFIR graph. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8cpp_source.html#l00079">SVFVariables.cpp:79</a></div></div>
115
+ <div class="ttc" id="structllvm_1_1DefaultDOTGraphTraits_html"><div class="ttname"><a href="structllvm_1_1DefaultDOTGraphTraits.html">llvm::DefaultDOTGraphTraits</a></div><div class="ttdef"><b>Definition:</b> <a href="DOTGraphTraits_8h_source.html#l00029">DOTGraphTraits.h:29</a></div></div>
113
116
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
114
117
  <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00419">SVFType.h:419</a></div></div>
115
118
  <div class="ttc" id="classSVF_1_1SVFVar_html_a21a44c7a30e4e3743f6c3186fd7dbe8f"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a21a44c7a30e4e3743f6c3186fd7dbe8f">SVF::SVFVar::addOutEdge</a></div><div class="ttdeci">void addOutEdge(SVFStmt *outEdge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00213">SVFVariables.h:213</a></div></div>
@@ -85,7 +85,7 @@ Classes</h2></td></tr>
85
85
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllvm_1_1GraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html">llvm::GraphTraits&lt; SVF::SVFVar * &gt;</a></td></tr>
86
86
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
87
87
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html">llvm::GraphTraits&lt; Inverse&lt; SVF::SVFVar * &gt; &gt;</a></td></tr>
88
- <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inverse GraphTraits specializations for SVFIR node, it is used for inverse traversal. <a href="structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html#details">More...</a><br /></td></tr>
88
+ <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structllvm_1_1Inverse.html">Inverse</a> <a class="el" href="structllvm_1_1GraphTraits.html">GraphTraits</a> specializations for SVFIR node, it is used for inverse traversal. <a href="structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html#details">More...</a><br /></td></tr>
89
89
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
90
90
  <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structllvm_1_1GraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html">llvm::GraphTraits&lt; SVF::IRGraph * &gt;</a></td></tr>
91
91
  <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>