svf-tools 1.0.596 → 1.0.598

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 (802) hide show
  1. package/README.md +1 -1
  2. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
  5. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
  6. package/SVF-doxygen/html/html/Andersen_8h_source.html +5 -5
  7. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -7
  8. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
  9. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +8 -8
  10. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +4 -4
  11. package/SVF-doxygen/html/html/CFLGraph_8cpp.html +3 -2
  12. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +15 -16
  13. package/SVF-doxygen/html/html/CFLGraph_8h.html +4 -6
  14. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +19 -20
  15. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +4 -4
  16. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +8 -8
  18. package/SVF-doxygen/html/html/CHG_8cpp.html +6 -5
  19. package/SVF-doxygen/html/html/CHG_8cpp_source.html +26 -27
  20. package/SVF-doxygen/html/html/CHG_8h.html +4 -6
  21. package/SVF-doxygen/html/html/CHG_8h_source.html +13 -14
  22. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +7 -7
  25. package/SVF-doxygen/html/html/ConsG_8cpp.html +3 -2
  26. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +27 -28
  27. package/SVF-doxygen/html/html/ConsG_8h.html +4 -6
  28. package/SVF-doxygen/html/html/ConsG_8h_source.html +10 -11
  29. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
  30. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  31. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
  32. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +21 -21
  33. package/SVF-doxygen/html/html/DCHG_8h.html +4 -6
  34. package/SVF-doxygen/html/html/DCHG_8h_source.html +15 -16
  35. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  36. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  38. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  40. package/SVF-doxygen/html/html/DOTGraphTraits_8h.html +4 -3
  41. package/SVF-doxygen/html/html/DOTGraphTraits_8h_source.html +24 -24
  42. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +4 -4
  43. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  44. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -5
  45. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +12 -12
  47. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  49. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
  50. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  51. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  52. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
  53. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
  54. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +2 -2
  55. package/SVF-doxygen/html/html/GenericGraph_8h.html +8 -9
  56. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +125 -125
  57. package/SVF-doxygen/html/html/GraphPrinter_8h.html +3 -2
  58. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +7 -7
  59. package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +4 -4
  60. package/SVF-doxygen/html/html/GraphTraits_8h.html +20 -19
  61. package/SVF-doxygen/html/html/GraphTraits_8h_source.html +13 -13
  62. package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/GraphWriter_8h.html +23 -22
  64. package/SVF-doxygen/html/html/GraphWriter_8h_source.html +48 -48
  65. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +7 -7
  66. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
  67. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +7 -7
  68. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +7 -7
  69. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +3 -3
  70. package/SVF-doxygen/html/html/ICFG_8cpp.html +3 -2
  71. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +27 -28
  72. package/SVF-doxygen/html/html/ICFG_8h.html +4 -6
  73. package/SVF-doxygen/html/html/ICFG_8h_source.html +14 -15
  74. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  75. package/SVF-doxygen/html/html/IRGraph_8cpp.html +3 -2
  76. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -21
  77. package/SVF-doxygen/html/html/IRGraph_8h.html +4 -6
  78. package/SVF-doxygen/html/html/IRGraph_8h_source.html +9 -10
  79. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +7 -7
  80. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +38 -39
  81. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +19 -19
  82. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +16 -9
  83. package/SVF-doxygen/html/html/LLVMUtil_8h.html +6 -0
  84. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +6 -4
  85. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +6 -6
  86. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
  88. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +23 -23
  89. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
  90. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +6 -6
  91. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +3 -3
  92. package/SVF-doxygen/html/html/MHP_8cpp_source.html +23 -23
  93. package/SVF-doxygen/html/html/MHP_8h_source.html +4 -4
  94. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +3 -3
  95. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
  96. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
  97. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +3 -3
  98. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
  99. package/SVF-doxygen/html/html/MTA_8cpp_source.html +3 -3
  100. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  101. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +18 -18
  103. package/SVF-doxygen/html/html/MemRegion_8h_source.html +2 -2
  104. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +21 -21
  105. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  106. package/SVF-doxygen/html/html/PCG_8cpp_source.html +18 -18
  107. package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
  108. package/SVF-doxygen/html/html/PTACallGraph_8cpp.html +3 -2
  109. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +27 -28
  110. package/SVF-doxygen/html/html/PTACallGraph_8h.html +4 -6
  111. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -18
  112. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
  113. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
  114. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +3 -3
  115. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
  116. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +3 -3
  117. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +7 -7
  118. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
  119. package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
  120. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  122. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +3 -3
  123. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +14 -14
  124. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
  125. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +3 -3
  126. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +7 -7
  127. package/SVF-doxygen/html/html/SVFG_8cpp.html +3 -2
  128. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +23 -24
  129. package/SVF-doxygen/html/html/SVFG_8h.html +1 -3
  130. package/SVF-doxygen/html/html/SVFG_8h_source.html +13 -14
  131. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +15 -14
  132. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +4 -4
  133. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +8 -8
  134. package/SVF-doxygen/html/html/SVFIR_8h_source.html +4 -4
  135. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  136. package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
  137. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +9 -9
  138. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +9 -9
  139. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +12 -12
  140. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
  141. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +9 -9
  142. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +16 -19
  143. package/SVF-doxygen/html/html/SVFValue_8h.html +3 -3
  144. package/SVF-doxygen/html/html/SVFValue_8h_source.html +210 -213
  145. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +7 -7
  146. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +13 -14
  147. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +3 -3
  148. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +17 -17
  149. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +6 -6
  150. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
  151. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +7 -7
  152. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  153. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +3 -4
  154. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +3 -3
  155. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -10
  156. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -4
  157. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
  158. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
  159. package/SVF-doxygen/html/html/TCT_8cpp.html +3 -2
  160. package/SVF-doxygen/html/html/TCT_8cpp_source.html +38 -39
  161. package/SVF-doxygen/html/html/TCT_8h.html +4 -6
  162. package/SVF-doxygen/html/html/TCT_8h_source.html +27 -28
  163. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +10 -10
  164. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
  165. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
  166. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +7 -7
  167. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +8 -8
  168. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +6 -6
  169. package/SVF-doxygen/html/html/VFGNode_8h_source.html +8 -8
  170. package/SVF-doxygen/html/html/VFG_8cpp.html +3 -2
  171. package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -21
  172. package/SVF-doxygen/html/html/VFG_8h.html +4 -6
  173. package/SVF-doxygen/html/html/VFG_8h_source.html +14 -15
  174. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
  175. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +10 -10
  176. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +3 -3
  177. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +8 -8
  178. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  179. package/SVF-doxygen/html/html/WPASolver_8h_source.html +4 -4
  180. package/SVF-doxygen/html/html/annotated.html +291 -291
  181. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +4 -4
  183. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +4 -4
  184. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +3 -3
  185. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +3 -3
  186. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
  187. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  188. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  191. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +1 -1
  192. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +33 -33
  193. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +7 -7
  195. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +10 -10
  197. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +7 -7
  199. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
  200. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +1 -1
  201. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +4 -4
  202. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +4 -4
  204. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +12 -12
  205. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  207. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +4 -4
  208. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +11 -11
  210. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +4 -4
  211. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +4 -4
  212. package/SVF-doxygen/html/html/classSVF_1_1CFLNode-members.html +45 -44
  213. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +29 -29
  214. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +4 -4
  215. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +16 -16
  217. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +17 -17
  218. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +3 -3
  219. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +2 -2
  221. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
  222. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +7 -7
  223. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  224. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +56 -56
  227. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  228. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  230. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +30 -30
  231. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +18 -18
  232. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +12 -12
  233. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  234. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  236. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +2 -2
  237. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +2 -2
  238. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +2 -2
  240. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +2 -2
  241. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +35 -35
  242. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
  243. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +16 -16
  244. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  245. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
  246. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +2 -2
  247. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +2 -2
  249. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
  250. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  251. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +6 -6
  253. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -4
  254. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +4 -4
  256. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +8 -8
  258. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
  259. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +1 -1
  260. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +21 -21
  261. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +17 -17
  262. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +29 -29
  263. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  264. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +3 -3
  266. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +3 -3
  267. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +6 -6
  268. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +8 -8
  269. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +31 -31
  270. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +44 -44
  271. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +98 -97
  272. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  273. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -4
  274. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  275. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
  276. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -4
  277. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1GraphPrinter-members.html +83 -0
  279. package/SVF-doxygen/html/html/classSVF_1_1GraphPrinter.html +236 -0
  280. package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver-members.html +2 -2
  281. package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +12 -12
  282. package/SVF-doxygen/html/html/classSVF_1_1GraphWriter-members.html +100 -0
  283. package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +882 -0
  284. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +19 -19
  285. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +12 -12
  286. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +7 -7
  287. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  288. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +2 -2
  289. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +11 -11
  290. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  291. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
  293. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +3 -3
  295. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +6 -6
  298. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  299. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
  301. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +7 -7
  302. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +69 -69
  303. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +2 -2
  304. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +22 -22
  305. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
  307. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
  308. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +50 -50
  309. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +7 -7
  310. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +55 -55
  311. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +1 -1
  312. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +22 -22
  313. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  314. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +4 -4
  315. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -3
  316. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
  317. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
  318. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +37 -37
  319. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
  320. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  321. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +36 -36
  322. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +3 -3
  323. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +4 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -4
  325. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  326. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
  327. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +3 -3
  328. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +25 -25
  329. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +3 -3
  330. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +7 -7
  331. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +9 -9
  332. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  333. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +40 -40
  334. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +7 -7
  335. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +4 -4
  336. package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +1 -1
  337. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +3 -3
  338. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +2 -2
  339. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +5 -5
  340. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  341. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +2 -2
  343. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection-members.html +1 -1
  344. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +8 -8
  345. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +7 -9
  346. package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +16 -20
  347. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +8 -10
  348. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +56 -63
  349. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +6 -8
  350. package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +7 -11
  351. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +12 -14
  352. package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +34 -38
  353. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +6 -8
  354. package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +5 -9
  355. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +6 -8
  356. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +7 -11
  357. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +6 -8
  358. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +10 -14
  359. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +6 -8
  360. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +14 -18
  361. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +6 -8
  362. package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +7 -11
  363. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +23 -25
  364. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +115 -119
  365. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +16 -16
  366. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  367. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +43 -43
  368. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +9 -9
  369. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +9 -11
  370. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +14 -18
  371. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +35 -35
  372. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +48 -47
  373. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +11 -13
  374. package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +31 -35
  375. package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +2 -2
  376. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +6 -8
  377. package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +7 -11
  378. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +3 -3
  379. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +6 -8
  380. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +5 -9
  381. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +9 -9
  382. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +9 -9
  383. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +3 -3
  384. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +25 -28
  385. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +38 -128
  386. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +12 -12
  387. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +14 -16
  388. package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +29 -33
  389. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +46 -46
  390. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
  391. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
  392. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +2 -2
  393. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +16 -16
  394. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver-members.html +2 -2
  395. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +12 -12
  396. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +1 -1
  397. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +9 -9
  398. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +5 -5
  399. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  400. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
  401. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder-members.html +2 -3
  402. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +21 -54
  403. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
  404. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +72 -72
  405. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +1 -1
  406. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  407. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  408. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +11 -11
  409. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +5 -5
  410. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
  411. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +4 -4
  412. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +4 -4
  413. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  414. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +1 -1
  415. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +12 -12
  416. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +5 -5
  417. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +3 -3
  418. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +21 -21
  419. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +13 -13
  420. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -4
  422. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +2 -2
  423. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +1 -1
  424. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +35 -35
  425. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +6 -6
  426. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +4 -4
  427. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +1 -1
  428. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +4 -4
  429. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +7 -7
  430. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +9 -9
  431. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +4 -4
  432. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +1 -1
  433. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +8 -8
  434. package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base-members.html +112 -0
  435. package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +633 -0
  436. package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.png +0 -0
  437. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base-members.html +102 -0
  438. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base.html +787 -0
  439. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base.png +0 -0
  440. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy-members.html +84 -0
  441. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +229 -0
  442. package/SVF-doxygen/html/html/classSVF_1_1iter__range-members.html +87 -0
  443. package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +342 -0
  444. package/SVF-doxygen/html/html/classSVF_1_1mapped__iter-members.html +112 -0
  445. package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +322 -0
  446. package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.png +0 -0
  447. package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator-members.html +113 -0
  448. package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +343 -0
  449. package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.png +0 -0
  450. package/SVF-doxygen/html/html/classes.html +59 -59
  451. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  452. package/SVF-doxygen/html/html/fastcluster__R__dm_8cpp_8inc_source.html +2 -2
  453. package/SVF-doxygen/html/html/functions_a.html +1 -1
  454. package/SVF-doxygen/html/html/functions_b.html +4 -4
  455. package/SVF-doxygen/html/html/functions_c.html +20 -18
  456. package/SVF-doxygen/html/html/functions_d.html +20 -20
  457. package/SVF-doxygen/html/html/functions_e.html +14 -16
  458. package/SVF-doxygen/html/html/functions_eval_i.html +2 -2
  459. package/SVF-doxygen/html/html/functions_f.html +1 -1
  460. package/SVF-doxygen/html/html/functions_func.html +1 -1
  461. package/SVF-doxygen/html/html/functions_func_b.html +2 -2
  462. package/SVF-doxygen/html/html/functions_func_c.html +4 -4
  463. package/SVF-doxygen/html/html/functions_func_d.html +14 -14
  464. package/SVF-doxygen/html/html/functions_func_e.html +8 -8
  465. package/SVF-doxygen/html/html/functions_func_g.html +72 -72
  466. package/SVF-doxygen/html/html/functions_func_h.html +4 -7
  467. package/SVF-doxygen/html/html/functions_func_i.html +17 -20
  468. package/SVF-doxygen/html/html/functions_func_m.html +1 -1
  469. package/SVF-doxygen/html/html/functions_func_n.html +3 -3
  470. package/SVF-doxygen/html/html/functions_func_o.html +24 -24
  471. package/SVF-doxygen/html/html/functions_func_p.html +4 -4
  472. package/SVF-doxygen/html/html/functions_func_r.html +2 -2
  473. package/SVF-doxygen/html/html/functions_func_s.html +15 -18
  474. package/SVF-doxygen/html/html/functions_func_w.html +8 -8
  475. package/SVF-doxygen/html/html/functions_g.html +84 -82
  476. package/SVF-doxygen/html/html/functions_h.html +6 -12
  477. package/SVF-doxygen/html/html/functions_i.html +40 -43
  478. package/SVF-doxygen/html/html/functions_l.html +3 -3
  479. package/SVF-doxygen/html/html/functions_m.html +1 -1
  480. package/SVF-doxygen/html/html/functions_n.html +30 -30
  481. package/SVF-doxygen/html/html/functions_o.html +39 -43
  482. package/SVF-doxygen/html/html/functions_p.html +16 -16
  483. package/SVF-doxygen/html/html/functions_r.html +8 -6
  484. package/SVF-doxygen/html/html/functions_rela.html +3 -3
  485. package/SVF-doxygen/html/html/functions_s.html +22 -25
  486. package/SVF-doxygen/html/html/functions_t.html +3 -3
  487. package/SVF-doxygen/html/html/functions_type_b.html +1 -1
  488. package/SVF-doxygen/html/html/functions_type_c.html +7 -7
  489. package/SVF-doxygen/html/html/functions_type_d.html +4 -4
  490. package/SVF-doxygen/html/html/functions_type_e.html +4 -4
  491. package/SVF-doxygen/html/html/functions_type_g.html +6 -6
  492. package/SVF-doxygen/html/html/functions_type_i.html +4 -4
  493. package/SVF-doxygen/html/html/functions_type_n.html +27 -27
  494. package/SVF-doxygen/html/html/functions_type_p.html +3 -3
  495. package/SVF-doxygen/html/html/functions_type_r.html +2 -2
  496. package/SVF-doxygen/html/html/functions_type_v.html +2 -2
  497. package/SVF-doxygen/html/html/functions_v.html +5 -5
  498. package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
  499. package/SVF-doxygen/html/html/functions_vars_d.html +1 -1
  500. package/SVF-doxygen/html/html/functions_vars_e.html +1 -1
  501. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  502. package/SVF-doxygen/html/html/functions_vars_g.html +7 -5
  503. package/SVF-doxygen/html/html/functions_vars_h.html +0 -3
  504. package/SVF-doxygen/html/html/functions_vars_i.html +6 -6
  505. package/SVF-doxygen/html/html/functions_vars_o.html +1 -1
  506. package/SVF-doxygen/html/html/functions_vars_p.html +1 -1
  507. package/SVF-doxygen/html/html/functions_w.html +17 -17
  508. package/SVF-doxygen/html/html/hierarchy.html +159 -159
  509. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +4 -4
  510. package/SVF-doxygen/html/html/iterator_8h.html +16 -15
  511. package/SVF-doxygen/html/html/iterator_8h_source.html +53 -53
  512. package/SVF-doxygen/html/html/iterator__range_8h.html +9 -8
  513. package/SVF-doxygen/html/html/iterator__range_8h_source.html +11 -11
  514. package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
  515. package/SVF-doxygen/html/html/namespaceSVF.html +575 -9
  516. package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +107 -0
  517. package/SVF-doxygen/html/html/namespaceSVF_1_1GraphProgram.html +122 -0
  518. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +65 -7
  519. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +3 -3
  520. package/SVF-doxygen/html/html/namespacellvm.html +1 -572
  521. package/SVF-doxygen/html/html/namespacemembers_c.html +3 -3
  522. package/SVF-doxygen/html/html/namespacemembers_d.html +1 -1
  523. package/SVF-doxygen/html/html/namespacemembers_e.html +1 -1
  524. package/SVF-doxygen/html/html/namespacemembers_enum.html +1 -1
  525. package/SVF-doxygen/html/html/namespacemembers_eval.html +5 -5
  526. package/SVF-doxygen/html/html/namespacemembers_f.html +1 -1
  527. package/SVF-doxygen/html/html/namespacemembers_func_c.html +2 -2
  528. package/SVF-doxygen/html/html/namespacemembers_func_e.html +1 -1
  529. package/SVF-doxygen/html/html/namespacemembers_func_i.html +8 -5
  530. package/SVF-doxygen/html/html/namespacemembers_func_m.html +4 -4
  531. package/SVF-doxygen/html/html/namespacemembers_func_n.html +1 -1
  532. package/SVF-doxygen/html/html/namespacemembers_func_v.html +1 -1
  533. package/SVF-doxygen/html/html/namespacemembers_func_w.html +1 -1
  534. package/SVF-doxygen/html/html/namespacemembers_g.html +1 -1
  535. package/SVF-doxygen/html/html/namespacemembers_i.html +6 -3
  536. package/SVF-doxygen/html/html/namespacemembers_m.html +4 -4
  537. package/SVF-doxygen/html/html/namespacemembers_n.html +3 -3
  538. package/SVF-doxygen/html/html/namespacemembers_r.html +1 -1
  539. package/SVF-doxygen/html/html/namespacemembers_t.html +1 -1
  540. package/SVF-doxygen/html/html/namespacemembers_type_g.html +1 -1
  541. package/SVF-doxygen/html/html/namespacemembers_type_r.html +1 -1
  542. package/SVF-doxygen/html/html/namespacemembers_v.html +1 -1
  543. package/SVF-doxygen/html/html/namespacemembers_w.html +1 -1
  544. package/SVF-doxygen/html/html/namespaces.html +5 -5
  545. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  546. package/SVF-doxygen/html/html/search/all_1.js +1 -1
  547. package/SVF-doxygen/html/html/search/all_10.js +12 -12
  548. package/SVF-doxygen/html/html/search/all_11.js +7 -7
  549. package/SVF-doxygen/html/html/search/all_12.js +7 -6
  550. package/SVF-doxygen/html/html/search/all_13.js +7 -7
  551. package/SVF-doxygen/html/html/search/all_15.js +4 -4
  552. package/SVF-doxygen/html/html/search/all_16.js +10 -10
  553. package/SVF-doxygen/html/html/search/all_2.js +3 -3
  554. package/SVF-doxygen/html/html/search/all_3.js +7 -7
  555. package/SVF-doxygen/html/html/search/all_4.js +20 -20
  556. package/SVF-doxygen/html/html/search/all_5.js +9 -9
  557. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  558. package/SVF-doxygen/html/html/search/all_7.js +87 -87
  559. package/SVF-doxygen/html/html/search/all_8.js +1 -3
  560. package/SVF-doxygen/html/html/search/all_9.js +23 -23
  561. package/SVF-doxygen/html/html/search/all_c.js +2 -4
  562. package/SVF-doxygen/html/html/search/all_d.js +5 -5
  563. package/SVF-doxygen/html/html/search/all_e.js +11 -11
  564. package/SVF-doxygen/html/html/search/all_f.js +19 -19
  565. package/SVF-doxygen/html/html/search/classes_3.js +13 -13
  566. package/SVF-doxygen/html/html/search/classes_6.js +64 -64
  567. package/SVF-doxygen/html/html/search/classes_8.js +10 -10
  568. package/SVF-doxygen/html/html/search/classes_a.js +1 -1
  569. package/SVF-doxygen/html/html/search/classes_d.js +2 -2
  570. package/SVF-doxygen/html/html/search/classes_e.js +1 -1
  571. package/SVF-doxygen/html/html/search/enums_8.js +1 -1
  572. package/SVF-doxygen/html/html/search/enumvalues_10.js +1 -1
  573. package/SVF-doxygen/html/html/search/enumvalues_2.js +1 -1
  574. package/SVF-doxygen/html/html/search/enumvalues_3.js +1 -1
  575. package/SVF-doxygen/html/html/search/enumvalues_5.js +1 -1
  576. package/SVF-doxygen/html/html/search/enumvalues_8.js +2 -2
  577. package/SVF-doxygen/html/html/search/enumvalues_b.js +1 -1
  578. package/SVF-doxygen/html/html/search/functions_0.js +1 -1
  579. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  580. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  581. package/SVF-doxygen/html/html/search/functions_11.js +1 -2
  582. package/SVF-doxygen/html/html/search/functions_14.js +1 -1
  583. package/SVF-doxygen/html/html/search/functions_15.js +8 -8
  584. package/SVF-doxygen/html/html/search/functions_2.js +4 -4
  585. package/SVF-doxygen/html/html/search/functions_3.js +5 -5
  586. package/SVF-doxygen/html/html/search/functions_4.js +7 -7
  587. package/SVF-doxygen/html/html/search/functions_6.js +21 -21
  588. package/SVF-doxygen/html/html/search/functions_7.js +1 -2
  589. package/SVF-doxygen/html/html/search/functions_8.js +8 -8
  590. package/SVF-doxygen/html/html/search/functions_c.js +5 -5
  591. package/SVF-doxygen/html/html/search/functions_d.js +4 -4
  592. package/SVF-doxygen/html/html/search/functions_e.js +14 -14
  593. package/SVF-doxygen/html/html/search/functions_f.js +4 -4
  594. package/SVF-doxygen/html/html/search/namespaces_0.js +0 -2
  595. package/SVF-doxygen/html/html/search/namespaces_1.js +2 -0
  596. package/SVF-doxygen/html/html/search/related_9.js +3 -3
  597. package/SVF-doxygen/html/html/search/typedefs_1.js +1 -1
  598. package/SVF-doxygen/html/html/search/typedefs_13.js +1 -1
  599. package/SVF-doxygen/html/html/search/typedefs_2.js +2 -2
  600. package/SVF-doxygen/html/html/search/typedefs_3.js +2 -2
  601. package/SVF-doxygen/html/html/search/typedefs_4.js +1 -1
  602. package/SVF-doxygen/html/html/search/typedefs_6.js +3 -3
  603. package/SVF-doxygen/html/html/search/typedefs_7.js +2 -2
  604. package/SVF-doxygen/html/html/search/typedefs_c.js +4 -4
  605. package/SVF-doxygen/html/html/search/typedefs_e.js +2 -2
  606. package/SVF-doxygen/html/html/search/typedefs_f.js +2 -2
  607. package/SVF-doxygen/html/html/search/variables_10.js +1 -1
  608. package/SVF-doxygen/html/html/search/variables_13.js +3 -3
  609. package/SVF-doxygen/html/html/search/variables_2.js +1 -1
  610. package/SVF-doxygen/html/html/search/variables_4.js +1 -1
  611. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  612. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  613. package/SVF-doxygen/html/html/search/variables_7.js +2 -2
  614. package/SVF-doxygen/html/html/search/variables_8.js +0 -1
  615. package/SVF-doxygen/html/html/search/variables_9.js +5 -5
  616. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  617. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  618. package/SVF-doxygen/html/html/search/variables_f.js +1 -1
  619. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits-members.html +99 -0
  620. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits.html +193 -0
  621. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits.png +0 -0
  622. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4-members.html +105 -0
  623. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +443 -0
  624. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.png +0 -0
  625. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4-members.html +104 -0
  626. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +388 -0
  627. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.png +0 -0
  628. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4-members.html +106 -0
  629. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +481 -0
  630. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.png +0 -0
  631. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4-members.html +106 -0
  632. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +475 -0
  633. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.png +0 -0
  634. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4-members.html +107 -0
  635. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +486 -0
  636. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.png +0 -0
  637. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4-members.html +106 -0
  638. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +457 -0
  639. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.png +0 -0
  640. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4-members.html +108 -0
  641. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +595 -0
  642. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.png +0 -0
  643. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01TCT_01_5_01_4-members.html +105 -0
  644. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +409 -0
  645. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01TCT_01_5_01_4.png +0 -0
  646. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4-members.html +107 -0
  647. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +543 -0
  648. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4.png +0 -0
  649. package/SVF-doxygen/html/html/structSVF_1_1DefaultDOTGraphTraits-members.html +99 -0
  650. package/SVF-doxygen/html/html/structSVF_1_1DefaultDOTGraphTraits.html +855 -0
  651. package/SVF-doxygen/html/html/structSVF_1_1DefaultDOTGraphTraits.png +0 -0
  652. package/SVF-doxygen/html/html/structSVF_1_1GenericEdge_1_1equalGEdge.html +3 -3
  653. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits-members.html +81 -0
  654. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits.html +116 -0
  655. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4-members.html +81 -0
  656. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html +106 -0
  657. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.png +0 -0
  658. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4-members.html +81 -0
  659. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +110 -0
  660. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.png +0 -0
  661. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4-members.html +81 -0
  662. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.html +110 -0
  663. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.png +0 -0
  664. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4-members.html +81 -0
  665. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.html +110 -0
  666. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.png +0 -0
  667. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4-members.html +81 -0
  668. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +110 -0
  669. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.png +0 -0
  670. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4-members.html +88 -0
  671. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html +324 -0
  672. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4-members.html +81 -0
  673. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +110 -0
  674. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.png +0 -0
  675. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4-members.html +81 -0
  676. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.html +110 -0
  677. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.png +0 -0
  678. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4-members.html +81 -0
  679. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html +110 -0
  680. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.png +0 -0
  681. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4-members.html +81 -0
  682. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +110 -0
  683. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.png +0 -0
  684. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4-members.html +81 -0
  685. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +110 -0
  686. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.png +0 -0
  687. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4-members.html +81 -0
  688. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +126 -0
  689. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.png +0 -0
  690. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4-members.html +81 -0
  691. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +106 -0
  692. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.png +0 -0
  693. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHGraph_01_5_01_4-members.html +81 -0
  694. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.html +126 -0
  695. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.png +0 -0
  696. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHNode_01_5_01_4-members.html +81 -0
  697. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHNode_01_5_01_4.html +106 -0
  698. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHNode_01_5_01_4.png +0 -0
  699. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4-members.html +81 -0
  700. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.html +126 -0
  701. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.png +0 -0
  702. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4-members.html +81 -0
  703. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.html +106 -0
  704. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.png +0 -0
  705. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4-members.html +81 -0
  706. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +126 -0
  707. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.png +0 -0
  708. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4-members.html +81 -0
  709. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +106 -0
  710. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.png +0 -0
  711. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4-members.html +99 -0
  712. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html +467 -0
  713. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.png +0 -0
  714. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4-members.html +89 -0
  715. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html +367 -0
  716. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.png +0 -0
  717. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4-members.html +81 -0
  718. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +106 -0
  719. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.png +0 -0
  720. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFG_01_5_01_4-members.html +81 -0
  721. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +126 -0
  722. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFG_01_5_01_4.png +0 -0
  723. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1IRGraph_01_5_01_4-members.html +81 -0
  724. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html +126 -0
  725. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.png +0 -0
  726. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4-members.html +81 -0
  727. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.html +106 -0
  728. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.png +0 -0
  729. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4-members.html +81 -0
  730. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.html +126 -0
  731. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.png +0 -0
  732. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4-members.html +81 -0
  733. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +126 -0
  734. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.png +0 -0
  735. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFVar_01_5_01_4-members.html +81 -0
  736. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html +106 -0
  737. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.png +0 -0
  738. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCTNode_01_5_01_4-members.html +81 -0
  739. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +106 -0
  740. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.png +0 -0
  741. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCT_01_5_01_4-members.html +81 -0
  742. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +126 -0
  743. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCT_01_5_01_4.png +0 -0
  744. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFGNode_01_5_01_4-members.html +81 -0
  745. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +106 -0
  746. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.png +0 -0
  747. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFG_01_5_01_4-members.html +81 -0
  748. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +126 -0
  749. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFG_01_5_01_4.png +0 -0
  750. package/SVF-doxygen/html/html/structSVF_1_1Inverse-members.html +82 -0
  751. package/SVF-doxygen/html/html/structSVF_1_1Inverse.html +154 -0
  752. package/SVF-doxygen/html/html/structSVF_1_1pointee__iter-members.html +111 -0
  753. package/SVF-doxygen/html/html/structSVF_1_1pointee__iter.html +279 -0
  754. package/SVF-doxygen/html/html/structSVF_1_1pointee__iter.png +0 -0
  755. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  756. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  757. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  758. package/SVF-doxygen/html/html/svf-ex_8cpp.html +9 -9
  759. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
  760. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +4 -4
  761. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  762. package/include/Graphs/CFLGraph.h +6 -6
  763. package/include/Graphs/CHG.h +6 -6
  764. package/include/Graphs/ConsG.h +6 -6
  765. package/include/Graphs/DOTGraphTraits.h +3 -3
  766. package/include/Graphs/GenericGraph.h +10 -9
  767. package/include/Graphs/GraphPrinter.h +2 -2
  768. package/include/Graphs/GraphTraits.h +29 -29
  769. package/include/Graphs/GraphWriter.h +6 -6
  770. package/include/Graphs/ICFG.h +6 -6
  771. package/include/Graphs/IRGraph.h +6 -7
  772. package/include/Graphs/PTACallGraph.h +6 -6
  773. package/include/Graphs/SVFG.h +6 -6
  774. package/include/Graphs/VFG.h +6 -6
  775. package/include/MTA/TCT.h +6 -6
  776. package/include/SABER/SrcSnkSolver.h +2 -2
  777. package/include/SVF-LLVM/DCHG.h +6 -6
  778. package/include/SVF-LLVM/LLVMUtil.h +5 -0
  779. package/include/SVF-LLVM/SymbolTableBuilder.h +0 -3
  780. package/include/SVFIR/SVFValue.h +2 -11
  781. package/include/SVFIR/SVFVariables.h +5 -5
  782. package/include/Util/GraphReachSolver.h +2 -2
  783. package/include/Util/SCC.h +1 -1
  784. package/include/Util/iterator.h +32 -32
  785. package/include/Util/iterator_range.h +11 -11
  786. package/include/WPA/WPASolver.h +1 -1
  787. package/lib/Graphs/CFLGraph.cpp +2 -2
  788. package/lib/Graphs/CHG.cpp +2 -2
  789. package/lib/Graphs/ConsG.cpp +2 -2
  790. package/lib/Graphs/GraphWriter.cpp +1 -1
  791. package/lib/Graphs/ICFG.cpp +2 -2
  792. package/lib/Graphs/IRGraph.cpp +2 -2
  793. package/lib/Graphs/PTACallGraph.cpp +2 -2
  794. package/lib/Graphs/SVFG.cpp +1 -1
  795. package/lib/Graphs/VFG.cpp +2 -2
  796. package/lib/MTA/TCT.cpp +1 -1
  797. package/lib/SVF-LLVM/LLVMModule.cpp +0 -2
  798. package/lib/SVF-LLVM/LLVMUtil.cpp +40 -0
  799. package/lib/SVF-LLVM/SVFIRBuilder.cpp +1 -1
  800. package/lib/SVF-LLVM/SymbolTableBuilder.cpp +0 -34
  801. package/lib/SVFIR/SVFValue.cpp +0 -1
  802. package/package.json +1 -1
@@ -687,8 +687,8 @@ Private Attributes</h2></td></tr>
687
687
  <p>Context-sensitive forward traversal from each fork site </p>
688
688
 
689
689
  <p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00725">725</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
690
- <div class="fragment"><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;{</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">TCT::const_iterator</a> it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; {</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThread.html">CxtThread</a>&amp; ct = it-&gt;second-&gt;getCxtThread();</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> rootTid = it-&gt;first;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a7965a276a3a12d532c9967de13d4cc8a">clearFlagMap</a>();</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* forkInst = ct.<a class="code" href="classSVF_1_1CxtThread.html#addee4e560a470eec9fbbf17efee906a9">getThread</a>())</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; {</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> forkSiteCxt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#ab4bc72ca330b315df06f2d4d2c1a7b4f">getCxtOfCxtThread</a>(ct);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* exitInst = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ae9fe4c9382f13d339db3baa39d956b05">getExitInstOfParentRoutineFun</a>(rootTid);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a>&amp; nextInsts = forkInst-&gt;getSuccInstructions();</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; {</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> cs(forkSiteCxt,*nit);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(cs,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>);</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; }</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">while</span>(!<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">cxtStmtList</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> cts = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4d893583db922444c6a29923bf3d05d3">popFromCTSWorkList</a>();</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;-----\nForkJoinAnalysis root thread: &quot;</span> &lt;&lt; it-&gt;first &lt;&lt; <span class="stringliteral">&quot; &quot;</span>);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,cts.<a class="code" href="classSVF_1_1CxtStmt.html#a56e2767c327a383db09dca96edb19614">dump</a>());</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;-----\n&quot;</span>);</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> callees;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a66965759d876309c64faf4b755afc2a7">isTDFork</a>(curInst))</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#adddbc09b7b99170cd0941f22ccc7e561">handleFork</a>(cts,rootTid);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a97151d74790b2853249d0cc94bb0904f">isTDJoin</a>(curInst))</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ae4d0ee03b30220793d24f814e75a440e">handleJoin</a>(cts,rootTid);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; }</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#afdc3358522417de9a0d3a181a329f722">SVFUtil::isCallSite</a>(curInst) &amp;&amp; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#aa69b82c888c8193e97f9e95c62ac99d4">isCandidateFun</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a1c34a3617488e152104e3625c975f608">getCallee</a>(curInst, callees)))</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ab636777379aca0b53a06e4888d4b4c6b">handleCall</a>(cts,rootTid);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; }</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(curInst-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#a454f676881eecf4b7399649a81180b5d">isRetInst</a>())</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; {</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a30e5ef1322216857513047d23b525829">handleRet</a>(cts);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; }</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; {</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; }</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">if</span>(curInst==exitInst)</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; {</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(cts)!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>)</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a02dad7e9ae45a1751c4548dd9991a8b4">addToFullJoin</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a516578af1f8666ff672e6611e61d7152">getParentThread</a>(rootTid),rootTid);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a6ead92486459ec7f94a8375c7f96faca">addToPartial</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a516578af1f8666ff672e6611e61d7152">getParentThread</a>(rootTid),rootTid);</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; }</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00368">GenericGraph.h:368</a></div></div>
691
- <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>
690
+ <div class="fragment"><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;{</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">TCT::const_iterator</a> it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; {</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtThread.html">CxtThread</a>&amp; ct = it-&gt;second-&gt;getCxtThread();</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> rootTid = it-&gt;first;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a7965a276a3a12d532c9967de13d4cc8a">clearFlagMap</a>();</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* forkInst = ct.<a class="code" href="classSVF_1_1CxtThread.html#addee4e560a470eec9fbbf17efee906a9">getThread</a>())</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; {</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> forkSiteCxt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#ab4bc72ca330b315df06f2d4d2c1a7b4f">getCxtOfCxtThread</a>(ct);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* exitInst = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ae9fe4c9382f13d339db3baa39d956b05">getExitInstOfParentRoutineFun</a>(rootTid);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a>&amp; nextInsts = forkInst-&gt;getSuccInstructions();</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; {</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> cs(forkSiteCxt,*nit);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(cs,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>);</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; }</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">while</span>(!<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#acccf53d174cac3275da0d79c89a73916">cxtStmtList</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> cts = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a4d893583db922444c6a29923bf3d05d3">popFromCTSWorkList</a>();</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;-----\nForkJoinAnalysis root thread: &quot;</span> &lt;&lt; it-&gt;first &lt;&lt; <span class="stringliteral">&quot; &quot;</span>);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,cts.<a class="code" href="classSVF_1_1CxtStmt.html#a56e2767c327a383db09dca96edb19614">dump</a>());</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;-----\n&quot;</span>);</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> callees;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a66965759d876309c64faf4b755afc2a7">isTDFork</a>(curInst))</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#adddbc09b7b99170cd0941f22ccc7e561">handleFork</a>(cts,rootTid);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a97151d74790b2853249d0cc94bb0904f">isTDJoin</a>(curInst))</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ae4d0ee03b30220793d24f814e75a440e">handleJoin</a>(cts,rootTid);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; }</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#afdc3358522417de9a0d3a181a329f722">SVFUtil::isCallSite</a>(curInst) &amp;&amp; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#aa69b82c888c8193e97f9e95c62ac99d4">isCandidateFun</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a1c34a3617488e152104e3625c975f608">getCallee</a>(curInst, callees)))</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ab636777379aca0b53a06e4888d4b4c6b">handleCall</a>(cts,rootTid);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; }</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(curInst-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#a454f676881eecf4b7399649a81180b5d">isRetInst</a>())</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; {</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a30e5ef1322216857513047d23b525829">handleRet</a>(cts);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; }</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; {</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; }</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">if</span>(curInst==exitInst)</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; {</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(cts)!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>)</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a02dad7e9ae45a1751c4548dd9991a8b4">addToFullJoin</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a516578af1f8666ff672e6611e61d7152">getParentThread</a>(rootTid),rootTid);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a6ead92486459ec7f94a8375c7f96faca">addToPartial</a>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a516578af1f8666ff672e6611e61d7152">getParentThread</a>(rootTid),rootTid);</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; }</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
691
+ <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#l00570">SVFValue.h:570</a></div></div>
692
692
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ab636777379aca0b53a06e4888d4b4c6b"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ab636777379aca0b53a06e4888d4b4c6b">SVF::ForkJoinAnalysis::handleCall</a></div><div class="ttdeci">void handleCall(const CxtStmt &amp;cts, NodeID rootTid)</div><div class="ttdoc">Handle call. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00879">MHP.cpp:879</a></div></div>
693
693
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &amp;cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00414">MHP.h:414</a></div></div>
694
694
  <div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
@@ -699,8 +699,8 @@ Private Attributes</h2></td></tr>
699
699
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set&lt; const SVFFunction * &gt; FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
700
700
  <div class="ttc" id="classSVF_1_1CxtThread_html"><div class="ttname"><a href="classSVF_1_1CxtThread.html">SVF::CxtThread</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00188">CxtStmt.h:188</a></div></div>
701
701
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a613d763731058899e6819acdb2d7315f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">SVF::ForkJoinAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00301">MHP.h:301</a></div></div>
702
- <div class="ttc" id="classSVF_1_1GenericGraph_html_a5dfa3f178d4abf37177d0d74ff4c6a97"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVF::GenericGraph::const_iterator</a></div><div class="ttdeci">IDToNodeMapTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00346">GenericGraph.h:346</a></div></div>
703
- <div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00372">GenericGraph.h:372</a></div></div>
702
+ <div class="ttc" id="classSVF_1_1GenericGraph_html_a5dfa3f178d4abf37177d0d74ff4c6a97"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVF::GenericGraph::const_iterator</a></div><div class="ttdeci">IDToNodeMapTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00347">GenericGraph.h:347</a></div></div>
703
+ <div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00373">GenericGraph.h:373</a></div></div>
704
704
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a6ead92486459ec7f94a8375c7f96faca"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a6ead92486459ec7f94a8375c7f96faca">SVF::ForkJoinAnalysis::addToPartial</a></div><div class="ttdeci">void addToPartial(NodeID tid1, NodeID tid2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00544">MHP.h:544</a></div></div>
705
705
  <div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector&lt; u32_t &gt; CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00119">SVFType.h:119</a></div></div>
706
706
  <div class="ttc" id="SVFType_8h_html_a217a1ccdaec1abb103cf6b0373631234"><div class="ttname"><a href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a></div><div class="ttdeci">#define DMTA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00439">SVFType.h:439</a></div></div>
@@ -720,7 +720,7 @@ Private Attributes</h2></td></tr>
720
720
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ae9fe4c9382f13d339db3baa39d956b05"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ae9fe4c9382f13d339db3baa39d956b05">SVF::ForkJoinAnalysis::getExitInstOfParentRoutineFun</a></div><div class="ttdeci">const SVFInstruction * getExitInstOfParentRoutineFun(NodeID tid) const</div><div class="ttdoc">Get exit instruction of the start routine function of tid&amp;#39;s parent thread. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00360">MHP.h:360</a></div></div>
721
721
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a4d893583db922444c6a29923bf3d05d3"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a4d893583db922444c6a29923bf3d05d3">SVF::ForkJoinAnalysis::popFromCTSWorkList</a></div><div class="ttdeci">CxtStmt popFromCTSWorkList()</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00470">MHP.h:470</a></div></div>
722
722
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a30e5ef1322216857513047d23b525829"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a30e5ef1322216857513047d23b525829">SVF::ForkJoinAnalysis::handleRet</a></div><div class="ttdeci">void handleRet(const CxtStmt &amp;cts)</div><div class="ttdoc">Handle return. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l00903">MHP.cpp:903</a></div></div>
723
- <div class="ttc" id="classSVF_1_1SVFInstruction_html_a454f676881eecf4b7399649a81180b5d"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#a454f676881eecf4b7399649a81180b5d">SVF::SVFInstruction::isRetInst</a></div><div class="ttdeci">bool isRetInst() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00638">SVFValue.h:638</a></div></div>
723
+ <div class="ttc" id="classSVF_1_1SVFInstruction_html_a454f676881eecf4b7399649a81180b5d"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#a454f676881eecf4b7399649a81180b5d">SVF::SVFInstruction::isRetInst</a></div><div class="ttdeci">bool isRetInst() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00629">SVFValue.h:629</a></div></div>
724
724
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a56e2767c327a383db09dca96edb19614"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a56e2767c327a383db09dca96edb19614">SVF::CxtStmt::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdoc">Dump CxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00109">CxtStmt.h:109</a></div></div>
725
725
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00296">MHP.h:296</a></div></div>
726
726
  <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>
@@ -781,14 +781,14 @@ Private Attributes</h2></td></tr>
781
781
  <p>Collect SCEV pass information for pointers at fork/join sites Because ScalarEvolution is a function pass, previous knowledge of a function may be overwritten when analyzing a new function. We use a internal wrapper class PTASCEV to record all the necessary information for determining symmetric fork/join inside loops </p>
782
782
 
783
783
  <p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00673">673</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
784
- <div class="fragment"><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;{</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFInstruction*&gt;</a> CallInstSet;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, CallInstSet &gt;</a> FunToFJSites;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; FunToFJSites funToFJSites;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">for</span>(ThreadCallGraph::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a>(),</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">forksitesEnd</a>(); it!=eit; ++it)</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* fork = (*it)-&gt;getCallSite();</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; funToFJSites[fork-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>()].insert(fork);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; }</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">for</span>(ThreadCallGraph::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a98ecfe14be2d38d292b5919716cdd29d">joinsitesBegin</a>(),</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a50502f398e5eac9c6da3e26ea6052057">joinsitesEnd</a>(); it!=eit; ++it)</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* join = (*it)-&gt;getCallSite();</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; funToFJSites[join-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>()].insert(join);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; }</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="comment">// for(FunToFJSites::const_iterator it = funToFJSites.begin(), eit = funToFJSites.end(); it!=eit; ++it)</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="comment">// {</span></div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="comment">// // ScalarEvolution* SE = MTA::getSE(it-&gt;first);</span></div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="comment">// for(CallInstSet::const_iterator sit = it-&gt;second.begin(), esit = it-&gt;second.end(); sit!=esit; ++sit)</span></div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="comment">// {</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="comment">// const SVFInstruction* callInst = *sit;</span></div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="comment">// if(tct-&gt;getThreadCallGraph()-&gt;isForksite(getCBN(callInst)))</span></div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="comment">// {</span></div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="comment">// // const SVFValue* forkSiteTidPtr = getForkedThread(callInst);</span></div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="comment">// // const SCEV *forkSiteTidPtrSCEV = SE-&gt;getSCEV(const_cast&lt;Value*&gt;(forkSiteTidPtr));</span></div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="comment">// // const SCEV *baseForkTidPtrSCEV = SE-&gt;getSCEV(const_cast&lt;Value*&gt;(getBasePtr(forkSiteTidPtr)));</span></div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="comment">// // forkSiteTidPtrSCEV = getSCEVMinusExpr(forkSiteTidPtrSCEV, baseForkTidPtrSCEV, SE);</span></div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="comment">// // PTASCEV scev(forkSiteTidPtr,nullptr,nullptr);</span></div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="comment">// // fkjnToPTASCEVMap.insert(std::make_pair(callInst,scev));</span></div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="comment">// else</span></div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="comment">// {</span></div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="comment">// // const SVFValue* joinSiteTidPtr = getJoinedThread(callInst);</span></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="comment">// //const SCEV *joinSiteTidPtrSCEV = SE-&gt;getSCEV(const_cast&lt;Value*&gt;(joinSiteTidPtr));</span></div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="comment">// //const SCEV *baseJoinTidPtrSCEV = SE-&gt;getSCEV(const_cast&lt;Value*&gt;(getBasePtr(joinSiteTidPtr)));</span></div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="comment">// //joinSiteTidPtrSCEV = getSCEVMinusExpr(joinSiteTidPtrSCEV, baseJoinTidPtrSCEV, SE);</span></div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">// // PTASCEV scev(joinSiteTidPtr,nullptr,nullptr);</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// // fkjnToPTASCEVMap.insert(std::make_pair(callInst,scev));</span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;}</div><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>
784
+ <div class="fragment"><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;{</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const SVFInstruction*&gt;</a> CallInstSet;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*, CallInstSet &gt;</a> FunToFJSites;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; FunToFJSites funToFJSites;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">for</span>(ThreadCallGraph::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a>(),</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">forksitesEnd</a>(); it!=eit; ++it)</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* fork = (*it)-&gt;getCallSite();</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; funToFJSites[fork-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>()].insert(fork);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; }</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">for</span>(ThreadCallGraph::CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a98ecfe14be2d38d292b5919716cdd29d">joinsitesBegin</a>(),</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; eit = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">getThreadCallGraph</a>()-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a50502f398e5eac9c6da3e26ea6052057">joinsitesEnd</a>(); it!=eit; ++it)</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* join = (*it)-&gt;getCallSite();</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; funToFJSites[join-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>()].insert(join);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; }</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="comment">// for(FunToFJSites::const_iterator it = funToFJSites.begin(), eit = funToFJSites.end(); it!=eit; ++it)</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="comment">// {</span></div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="comment">// // ScalarEvolution* SE = MTA::getSE(it-&gt;first);</span></div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="comment">// for(CallInstSet::const_iterator sit = it-&gt;second.begin(), esit = it-&gt;second.end(); sit!=esit; ++sit)</span></div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="comment">// {</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="comment">// const SVFInstruction* callInst = *sit;</span></div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="comment">// if(tct-&gt;getThreadCallGraph()-&gt;isForksite(getCBN(callInst)))</span></div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="comment">// {</span></div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="comment">// // const SVFValue* forkSiteTidPtr = getForkedThread(callInst);</span></div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="comment">// // const SCEV *forkSiteTidPtrSCEV = SE-&gt;getSCEV(const_cast&lt;Value*&gt;(forkSiteTidPtr));</span></div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="comment">// // const SCEV *baseForkTidPtrSCEV = SE-&gt;getSCEV(const_cast&lt;Value*&gt;(getBasePtr(forkSiteTidPtr)));</span></div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="comment">// // forkSiteTidPtrSCEV = getSCEVMinusExpr(forkSiteTidPtrSCEV, baseForkTidPtrSCEV, SE);</span></div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="comment">// // PTASCEV scev(forkSiteTidPtr,nullptr,nullptr);</span></div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="comment">// // fkjnToPTASCEVMap.insert(std::make_pair(callInst,scev));</span></div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="comment">// else</span></div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="comment">// {</span></div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="comment">// // const SVFValue* joinSiteTidPtr = getJoinedThread(callInst);</span></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="comment">// //const SCEV *joinSiteTidPtrSCEV = SE-&gt;getSCEV(const_cast&lt;Value*&gt;(joinSiteTidPtr));</span></div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="comment">// //const SCEV *baseJoinTidPtrSCEV = SE-&gt;getSCEV(const_cast&lt;Value*&gt;(getBasePtr(joinSiteTidPtr)));</span></div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="comment">// //joinSiteTidPtrSCEV = getSCEVMinusExpr(joinSiteTidPtrSCEV, baseJoinTidPtrSCEV, SE);</span></div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">// // PTASCEV scev(joinSiteTidPtr,nullptr,nullptr);</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// // fkjnToPTASCEVMap.insert(std::make_pair(callInst,scev));</span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="comment">// }</span></div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;}</div><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#l00570">SVFValue.h:570</a></div></div>
785
785
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00555">MHP.h:555</a></div></div>
786
786
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a1ebbd26c17cff1c1a1bee9caa9a8f825"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">SVF::ThreadCallGraph::forksitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator forksitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00277">ThreadCallGraph.h:277</a></div></div>
787
787
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00099">SVFType.h:99</a></div></div>
788
788
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a37f2e076713a9aeb0e4313fb05dfb92e"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">SVF::ThreadCallGraph::forksitesBegin</a></div><div class="ttdeci">CallSiteSet::const_iterator forksitesBegin() const</div><div class="ttdoc">Fork sites iterators. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00273">ThreadCallGraph.h:273</a></div></div>
789
789
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00094">SVFType.h:94</a></div></div>
790
790
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a98ecfe14be2d38d292b5919716cdd29d"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a98ecfe14be2d38d292b5919716cdd29d">SVF::ThreadCallGraph::joinsitesBegin</a></div><div class="ttdeci">CallSiteSet::const_iterator joinsitesBegin() const</div><div class="ttdoc">Join sites iterators. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00285">ThreadCallGraph.h:285</a></div></div>
791
- <div class="ttc" id="classSVF_1_1SVFInstruction_html_aef7ad257ea809101df33779463907f3e"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">SVF::SVFInstruction::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00628">SVFValue.h:628</a></div></div>
791
+ <div class="ttc" id="classSVF_1_1SVFInstruction_html_aef7ad257ea809101df33779463907f3e"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">SVF::SVFInstruction::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00619">SVFValue.h:619</a></div></div>
792
792
  <div class="ttc" id="classSVF_1_1TCT_html_a1602d02773578bca73dcbd29b95c67d0"><div class="ttname"><a href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">SVF::TCT::getThreadCallGraph</a></div><div class="ttdeci">ThreadCallGraph * getThreadCallGraph() const</div><div class="ttdoc">Get TCG. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00182">TCT.h:182</a></div></div>
793
793
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a50502f398e5eac9c6da3e26ea6052057"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a50502f398e5eac9c6da3e26ea6052057">SVF::ThreadCallGraph::joinsitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator joinsitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00289">ThreadCallGraph.h:289</a></div></div>
794
794
  </div><!-- fragment -->
@@ -966,8 +966,8 @@ Private Attributes</h2></td></tr>
966
966
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00555">MHP.h:555</a></div></div>
967
967
  <div class="ttc" id="classSVF_1_1TCT_html_a7b4ad0b052e1f8b6869733eef15f4e4d"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">SVF::TCT::getTCTNode</a></div><div class="ttdeci">TCTNode * getTCTNode(NodeID id) const</div><div class="ttdoc">Get TCT node. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00192">TCT.h:192</a></div></div>
968
968
  <div class="ttc" id="classSVF_1_1TCTNode_html_a21591b19f6a9267151c31178f9543ee6"><div class="ttname"><a href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">SVF::TCTNode::getCxtThread</a></div><div class="ttdeci">const CxtThread &amp; getCxtThread() const</div><div class="ttdoc">Get CxtThread. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00101">TCT.h:101</a></div></div>
969
- <div class="ttc" id="classSVF_1_1SVFFunction_html_a8ca4fa87f4c26b71c6e03c8f32db1071"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a8ca4fa87f4c26b71c6e03c8f32db1071">SVF::SVFFunction::getExitBB</a></div><div class="ttdeci">const SVFBasicBlock * getExitBB() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00382">SVFValue.h:382</a></div></div>
970
- <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ad05f85ce931d4479f71d1947a25599dc"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">SVF::SVFBasicBlock::back</a></div><div class="ttdeci">const SVFInstruction * back() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00551">SVFValue.h:551</a></div></div>
969
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_a8ca4fa87f4c26b71c6e03c8f32db1071"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a8ca4fa87f4c26b71c6e03c8f32db1071">SVF::SVFFunction::getExitBB</a></div><div class="ttdeci">const SVFBasicBlock * getExitBB() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00373">SVFValue.h:373</a></div></div>
970
+ <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ad05f85ce931d4479f71d1947a25599dc"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">SVF::SVFBasicBlock::back</a></div><div class="ttdeci">const SVFInstruction * back() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00542">SVFValue.h:542</a></div></div>
971
971
  <div class="ttc" id="classSVF_1_1TCT_html_a516578af1f8666ff672e6611e61d7152"><div class="ttname"><a href="classSVF_1_1TCT.html#a516578af1f8666ff672e6611e61d7152">SVF::TCT::getParentThread</a></div><div class="ttdeci">NodeID getParentThread(NodeID tid) const</div><div class="ttdoc">Get parent thread. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00293">TCT.h:293</a></div></div>
972
972
  <div class="ttc" id="classSVF_1_1TCT_html_ae25bbfc9c8616186f03c1555d5009ce3"><div class="ttname"><a href="classSVF_1_1TCT.html#ae25bbfc9c8616186f03c1555d5009ce3">SVF::TCT::getStartRoutineOfCxtThread</a></div><div class="ttdeci">const SVFFunction * getStartRoutineOfCxtThread(const CxtThread &amp;ct) const</div><div class="ttdoc">get the start routine function of a thread </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00350">TCT.h:350</a></div></div>
973
973
  </div><!-- fragment -->
@@ -1203,16 +1203,16 @@ Private Attributes</h2></td></tr>
1203
1203
  <p>Handle call. </p>
1204
1204
 
1205
1205
  <p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00879">879</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
1206
- <div class="fragment"><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;{</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* call = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a46bd73ec73cc17087f21e8c5b234d0bd">getCBN</a>(call);</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;hasCallGraphEdge(cbn))</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; {</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;getCallEdgeBegin(cbn),</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; ecgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;getCallEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = (*cgIt)-&gt;getDstNode()-&gt;getFunction();</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(svfcallee))</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a028734f4520172aa5abed48628b44dc3">pushCxt</a>(newCxt,call,svfcallee);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfEntryInst = svfcallee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a793f485e92d12cf407f2ffa41861eb3d">getEntryBlock</a>()-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">front</a>();</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,svfEntryInst);</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; }</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;}</div><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>
1207
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00266">SVFValue.h:266</a></div></div>
1206
+ <div class="fragment"><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;{</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* call = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a46bd73ec73cc17087f21e8c5b234d0bd">getCBN</a>(call);</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;hasCallGraphEdge(cbn))</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; {</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::CallGraphEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;getCallEdgeBegin(cbn),</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; ecgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;getCallEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfcallee = (*cgIt)-&gt;getDstNode()-&gt;getFunction();</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(svfcallee))</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a028734f4520172aa5abed48628b44dc3">pushCxt</a>(newCxt,call,svfcallee);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfEntryInst = svfcallee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a793f485e92d12cf407f2ffa41861eb3d">getEntryBlock</a>()-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">front</a>();</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,svfEntryInst);</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; }</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;}</div><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#l00570">SVFValue.h:570</a></div></div>
1207
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
1208
1208
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a46bd73ec73cc17087f21e8c5b234d0bd"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a46bd73ec73cc17087f21e8c5b234d0bd">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00407">MHP.h:407</a></div></div>
1209
- <div class="ttc" id="classSVF_1_1SVFFunction_html_a793f485e92d12cf407f2ffa41861eb3d"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a793f485e92d12cf407f2ffa41861eb3d">SVF::SVFFunction::getEntryBlock</a></div><div class="ttdeci">const SVFBasicBlock * getEntryBlock() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00376">SVFValue.h:376</a></div></div>
1209
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_a793f485e92d12cf407f2ffa41861eb3d"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a793f485e92d12cf407f2ffa41861eb3d">SVF::SVFFunction::getEntryBlock</a></div><div class="ttdeci">const SVFBasicBlock * getEntryBlock() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00367">SVFValue.h:367</a></div></div>
1210
1210
  <div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector&lt; u32_t &gt; CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00119">SVFType.h:119</a></div></div>
1211
1211
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a028734f4520172aa5abed48628b44dc3"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a028734f4520172aa5abed48628b44dc3">SVF::ForkJoinAnalysis::pushCxt</a></div><div class="ttdeci">void pushCxt(CallStrCxt &amp;cxt, const SVFInstruction *call, const SVFFunction *callee)</div><div class="ttdoc">Push calling context. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00478">MHP.h:478</a></div></div>
1212
1212
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a0b593c4ba425937212e2889e64ce4791"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const SVFInstruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
1213
1213
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &amp;tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00426">MHP.h:426</a></div></div>
1214
1214
  <div class="ttc" id="classSVF_1_1CxtStmt_html"><div class="ttname"><a href="classSVF_1_1CxtStmt.html">SVF::CxtStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00041">CxtStmt.h:41</a></div></div>
1215
- <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a7bde256bc906af7f7204929019f4a33e"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">SVF::SVFBasicBlock::front</a></div><div class="ttdeci">const SVFInstruction * front() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00546">SVFValue.h:546</a></div></div>
1215
+ <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a7bde256bc906af7f7204929019f4a33e"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">SVF::SVFBasicBlock::front</a></div><div class="ttdeci">const SVFInstruction * front() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00537">SVFValue.h:537</a></div></div>
1216
1216
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt &amp; getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
1217
1217
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
1218
1218
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00514">MHP.h:514</a></div></div>
@@ -1257,12 +1257,12 @@ Private Attributes</h2></td></tr>
1257
1257
  <p>Handle fork. </p>
1258
1258
 
1259
1259
  <p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00788">788</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
1260
- <div class="fragment"><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;{</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* call = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; assert(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a66965759d876309c64faf4b755afc2a7">isTDFork</a>(call));</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a46bd73ec73cc17087f21e8c5b234d0bd">getCBN</a>(call);</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;hasThreadForkEdge(cbn))</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">for</span> (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;getForkEdgeBegin(cbn),</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; ecgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;getForkEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; {</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = (*cgIt)-&gt;getDstNode()-&gt;getFunction();</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a028734f4520172aa5abed48628b44dc3">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="classSVF_1_1CxtThread.html">CxtThread</a> ct(newCxt,call);</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(cts)!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>)</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a647ae6866bb37be850f0bdd5a7341188">addToHBPair</a>(rootTid,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(ct)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a1505ba82206169f76ea239067797d6c2">addToHPPair</a>(rootTid,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(ct)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; }</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;}</div><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>
1260
+ <div class="fragment"><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;{</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* call = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; assert(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a66965759d876309c64faf4b755afc2a7">isTDFork</a>(call));</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a46bd73ec73cc17087f21e8c5b234d0bd">getCBN</a>(call);</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;hasThreadForkEdge(cbn))</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">for</span> (ThreadCallGraph::ForkEdgeSet::const_iterator cgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;getForkEdgeBegin(cbn),</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; ecgIt = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;getForkEdgeEnd(cbn); cgIt != ecgIt; ++cgIt)</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; {</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = (*cgIt)-&gt;getDstNode()-&gt;getFunction();</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a028734f4520172aa5abed48628b44dc3">pushCxt</a>(newCxt,call,callee);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <a class="code" href="classSVF_1_1CxtThread.html">CxtThread</a> ct(newCxt,call);</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">getMarkedFlag</a>(cts)!=<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>)</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a647ae6866bb37be850f0bdd5a7341188">addToHBPair</a>(rootTid,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(ct)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a1505ba82206169f76ea239067797d6c2">addToHPPair</a>(rootTid,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(ct)-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; }</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;}</div><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#l00570">SVFValue.h:570</a></div></div>
1261
1261
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a1505ba82206169f76ea239067797d6c2"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a1505ba82206169f76ea239067797d6c2">SVF::ForkJoinAnalysis::addToHPPair</a></div><div class="ttdeci">void addToHPPair(NodeID tid1, NodeID tid2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00527">MHP.h:527</a></div></div>
1262
1262
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a149114898b13e1430c8fbb60978ca4f5"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a149114898b13e1430c8fbb60978ca4f5">SVF::ForkJoinAnalysis::getMarkedFlag</a></div><div class="ttdeci">ValDomain getMarkedFlag(const CxtStmt &amp;cs)</div><div class="ttdoc">Mark thread flags for cxtStmt. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00414">MHP.h:414</a></div></div>
1263
1263
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00555">MHP.h:555</a></div></div>
1264
1264
  <div class="ttc" id="classSVF_1_1CxtThread_html"><div class="ttname"><a href="classSVF_1_1CxtThread.html">SVF::CxtThread</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00188">CxtStmt.h:188</a></div></div>
1265
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00266">SVFValue.h:266</a></div></div>
1265
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
1266
1266
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a46bd73ec73cc17087f21e8c5b234d0bd"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a46bd73ec73cc17087f21e8c5b234d0bd">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00407">MHP.h:407</a></div></div>
1267
1267
  <div class="ttc" id="classSVF_1_1TCT_html_a7b4ad0b052e1f8b6869733eef15f4e4d"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">SVF::TCT::getTCTNode</a></div><div class="ttdeci">TCTNode * getTCTNode(NodeID id) const</div><div class="ttdoc">Get TCT node. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00192">TCT.h:192</a></div></div>
1268
1268
  <div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector&lt; u32_t &gt; CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00119">SVFType.h:119</a></div></div>
@@ -1271,7 +1271,7 @@ Private Attributes</h2></td></tr>
1271
1271
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a66965759d876309c64faf4b755afc2a7"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a66965759d876309c64faf4b755afc2a7">SVF::ForkJoinAnalysis::isTDFork</a></div><div class="ttdeci">bool isTDFork(const SVFInstruction *call)</div><div class="ttdoc">Whether it is a fork site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00489">MHP.h:489</a></div></div>
1272
1272
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt &amp; getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
1273
1273
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
1274
- <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>
1274
+ <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
1275
1275
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a647ae6866bb37be850f0bdd5a7341188"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a647ae6866bb37be850f0bdd5a7341188">SVF::ForkJoinAnalysis::addToHBPair</a></div><div class="ttdeci">void addToHBPair(NodeID tid1, NodeID tid2)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00532">MHP.h:532</a></div></div>
1276
1276
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00296">MHP.h:296</a></div></div>
1277
1277
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00514">MHP.h:514</a></div></div>
@@ -1306,9 +1306,9 @@ Private Attributes</h2></td></tr>
1306
1306
  <p>Handle intra. </p>
1307
1307
 
1308
1308
  <p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00947">947</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
1309
- <div class="fragment"><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;{</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a>&amp; nextInsts = curInst-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#a281d6b024afeeb96bac281eb23ce3f1f">getSuccInstructions</a>();</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,*nit);</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;}</div><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>
1309
+ <div class="fragment"><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;{</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a>&amp; nextInsts = curInst-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#a281d6b024afeeb96bac281eb23ce3f1f">getSuccInstructions</a>();</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,*nit);</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;}</div><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#l00570">SVFValue.h:570</a></div></div>
1310
1310
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a613d763731058899e6819acdb2d7315f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">SVF::ForkJoinAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00301">MHP.h:301</a></div></div>
1311
- <div class="ttc" id="classSVF_1_1SVFInstruction_html_a281d6b024afeeb96bac281eb23ce3f1f"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#a281d6b024afeeb96bac281eb23ce3f1f">SVF::SVFInstruction::getSuccInstructions</a></div><div class="ttdeci">InstVec &amp; getSuccInstructions()</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00608">SVFValue.h:608</a></div></div>
1311
+ <div class="ttc" id="classSVF_1_1SVFInstruction_html_a281d6b024afeeb96bac281eb23ce3f1f"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#a281d6b024afeeb96bac281eb23ce3f1f">SVF::SVFInstruction::getSuccInstructions</a></div><div class="ttdeci">InstVec &amp; getSuccInstructions()</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00599">SVFValue.h:599</a></div></div>
1312
1312
  <div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector&lt; u32_t &gt; CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00119">SVFType.h:119</a></div></div>
1313
1313
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a0b593c4ba425937212e2889e64ce4791"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const SVFInstruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
1314
1314
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &amp;tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00426">MHP.h:426</a></div></div>
@@ -1355,12 +1355,12 @@ Private Attributes</h2></td></tr>
1355
1355
  <p>for the join site in a loop loop which does not join the current thread we process the loop exit </p>
1356
1356
 
1357
1357
  <p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00814">814</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
1358
- <div class="fragment"><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;{</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* call = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; assert(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a97151d74790b2853249d0cc94bb0904f">isTDJoin</a>(call));</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a46bd73ec73cc17087f21e8c5b234d0bd">getCBN</a>(call);</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;hasCallGraphEdge(cbn))</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* forkSite = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(rootTid)-&gt;<a class="code" href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">getCxtThread</a>().<a class="code" href="classSVF_1_1CxtThread.html#addee4e560a470eec9fbbf17efee906a9">getThread</a>();</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* joinSite = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a209ab13297e61f980cdf350e8fe2a9b4">isAliasedForkJoin</a>(forkSite, joinSite))</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; {</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a197ab02e8320affc4ba2c67fae5bf020">hasJoinLoop</a>(joinSite))</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; {</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a159bbd4352fcffa93c97281ab9d229b1">LoopBBs</a>&amp; joinLoop = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac5713ddcfd040a1f1f4fb40f24e4814c">getJoinLoop</a>(joinSite);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; std::vector&lt;const SVFBasicBlock*&gt; exitbbs;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; joinSite-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>()-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a61505b528343c7d728eba3a705930a16">getExitBlocksOfLoop</a>(joinSite-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#ae009f41cbf48d949d4325e08fe8d7198">getParent</a>(),exitbbs);</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">while</span>(!exitbbs.empty())</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* eb = exitbbs.<a class="code" href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">back</a>();</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; exitbbs.pop_back();</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfEntryInst = eb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">front</a>();</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,svfEntryInst);</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8aa2d4c83981007108b152d05e9c51fe">addDirectlyJoinTID</a>(cts,rootTid);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#abbff6ea064e7241315932db77dccaad9">isSameSCEV</a>(forkSite,joinSite))</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; {</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">TDDead</a>);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2be89ac78712da78c215a33b3157ecd1">addSymmetricLoopJoin</a>(cts,joinLoop);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(cts,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; }</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; {</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(cts,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">TDDead</a>);</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8aa2d4c83981007108b152d05e9c51fe">addDirectlyJoinTID</a>(cts,rootTid);</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n\t match join site &quot;</span> &lt;&lt; call-&gt;<a class="code" href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">toString</a>() &lt;&lt; <span class="stringliteral">&quot;for thread &quot;</span> &lt;&lt; rootTid &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; }</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; {</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a197ab02e8320affc4ba2c67fae5bf020">hasJoinLoop</a>(joinSite))</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; {</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; std::vector&lt;const SVFBasicBlock*&gt; exitbbs;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; joinSite-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>()-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a61505b528343c7d728eba3a705930a16">getExitBlocksOfLoop</a>(joinSite-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#ae009f41cbf48d949d4325e08fe8d7198">getParent</a>(),exitbbs);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordflow">while</span>(!exitbbs.empty())</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; {</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* eb = exitbbs.<a class="code" href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">back</a>();</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; exitbbs.pop_back();</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfEntryInst = eb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">front</a>();</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,svfEntryInst);</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; }</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; }</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; }</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;}</div><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>
1358
+ <div class="fragment"><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;{</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* call = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; assert(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a97151d74790b2853249d0cc94bb0904f">isTDJoin</a>(call));</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a46bd73ec73cc17087f21e8c5b234d0bd">getCBN</a>(call);</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;hasCallGraphEdge(cbn))</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* forkSite = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">tct</a>-&gt;<a class="code" href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">getTCTNode</a>(rootTid)-&gt;<a class="code" href="classSVF_1_1TCTNode.html#a21591b19f6a9267151c31178f9543ee6">getCxtThread</a>().<a class="code" href="classSVF_1_1CxtThread.html#addee4e560a470eec9fbbf17efee906a9">getThread</a>();</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* joinSite = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a209ab13297e61f980cdf350e8fe2a9b4">isAliasedForkJoin</a>(forkSite, joinSite))</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; {</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a197ab02e8320affc4ba2c67fae5bf020">hasJoinLoop</a>(joinSite))</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; {</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a159bbd4352fcffa93c97281ab9d229b1">LoopBBs</a>&amp; joinLoop = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac5713ddcfd040a1f1f4fb40f24e4814c">getJoinLoop</a>(joinSite);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; std::vector&lt;const SVFBasicBlock*&gt; exitbbs;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; joinSite-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>()-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a61505b528343c7d728eba3a705930a16">getExitBlocksOfLoop</a>(joinSite-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#ae009f41cbf48d949d4325e08fe8d7198">getParent</a>(),exitbbs);</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">while</span>(!exitbbs.empty())</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* eb = exitbbs.<a class="code" href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">back</a>();</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; exitbbs.pop_back();</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfEntryInst = eb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">front</a>();</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,svfEntryInst);</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8aa2d4c83981007108b152d05e9c51fe">addDirectlyJoinTID</a>(cts,rootTid);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#abbff6ea064e7241315932db77dccaad9">isSameSCEV</a>(forkSite,joinSite))</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; {</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">TDDead</a>);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a2be89ac78712da78c215a33b3157ecd1">addSymmetricLoopJoin</a>(cts,joinLoop);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(cts,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">TDAlive</a>);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; }</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; {</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(cts,<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">TDDead</a>);</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8aa2d4c83981007108b152d05e9c51fe">addDirectlyJoinTID</a>(cts,rootTid);</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n\t match join site &quot;</span> &lt;&lt; call-&gt;<a class="code" href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">toString</a>() &lt;&lt; <span class="stringliteral">&quot;for thread &quot;</span> &lt;&lt; rootTid &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; }</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; {</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a197ab02e8320affc4ba2c67fae5bf020">hasJoinLoop</a>(joinSite))</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; {</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; std::vector&lt;const SVFBasicBlock*&gt; exitbbs;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; joinSite-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>()-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a61505b528343c7d728eba3a705930a16">getExitBlocksOfLoop</a>(joinSite-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#ae009f41cbf48d949d4325e08fe8d7198">getParent</a>(),exitbbs);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordflow">while</span>(!exitbbs.empty())</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; {</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* eb = exitbbs.<a class="code" href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">back</a>();</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; exitbbs.pop_back();</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfEntryInst = eb-&gt;<a class="code" href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">front</a>();</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(curCxt,svfEntryInst);</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; }</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; }</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; }</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#add09218cce8d8bd8dd9e73b2d26a5797">handleIntra</a>(cts);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;}</div><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#l00570">SVFValue.h:570</a></div></div>
1359
1359
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2c6ce7aa04c399746d89230be0e0f1ce"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2c6ce7aa04c399746d89230be0e0f1ce">SVF::ForkJoinAnalysis::tct</a></div><div class="ttdeci">TCT * tct</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00555">MHP.h:555</a></div></div>
1360
1360
  <div class="ttc" id="classSVF_1_1CxtThread_html_addee4e560a470eec9fbbf17efee906a9"><div class="ttname"><a href="classSVF_1_1CxtThread.html#addee4e560a470eec9fbbf17efee906a9">SVF::CxtThread::getThread</a></div><div class="ttdeci">const SVFInstruction * getThread() const</div><div class="ttdoc">Return forksite. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00210">CxtStmt.h:210</a></div></div>
1361
- <div class="ttc" id="classSVF_1_1SVFInstruction_html_ae009f41cbf48d949d4325e08fe8d7198"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#ae009f41cbf48d949d4325e08fe8d7198">SVF::SVFInstruction::getParent</a></div><div class="ttdeci">const SVFBasicBlock * getParent() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00603">SVFValue.h:603</a></div></div>
1361
+ <div class="ttc" id="classSVF_1_1SVFInstruction_html_ae009f41cbf48d949d4325e08fe8d7198"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#ae009f41cbf48d949d4325e08fe8d7198">SVF::SVFInstruction::getParent</a></div><div class="ttdeci">const SVFBasicBlock * getParent() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00594">SVFValue.h:594</a></div></div>
1362
1362
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a197ab02e8320affc4ba2c67fae5bf020"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a197ab02e8320affc4ba2c67fae5bf020">SVF::ForkJoinAnalysis::hasJoinLoop</a></div><div class="ttdeci">bool hasJoinLoop(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00374">MHP.h:374</a></div></div>
1363
- <div class="ttc" id="classSVF_1_1SVFFunction_html_a61505b528343c7d728eba3a705930a16"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a61505b528343c7d728eba3a705930a16">SVF::SVFFunction::getExitBlocksOfLoop</a></div><div class="ttdeci">void getExitBlocksOfLoop(const SVFBasicBlock *bb, BBList &amp;exitbbs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00428">SVFValue.h:428</a></div></div>
1363
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_a61505b528343c7d728eba3a705930a16"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a61505b528343c7d728eba3a705930a16">SVF::SVFFunction::getExitBlocksOfLoop</a></div><div class="ttdeci">void getExitBlocksOfLoop(const SVFBasicBlock *bb, BBList &amp;exitbbs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00419">SVFValue.h:419</a></div></div>
1364
1364
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac5713ddcfd040a1f1f4fb40f24e4814c"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac5713ddcfd040a1f1f4fb40f24e4814c">SVF::ForkJoinAnalysis::getJoinLoop</a></div><div class="ttdeci">LoopBBs &amp; getJoinLoop(const SVFInstruction *inst)</div><div class="ttdoc">Get loop for join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00370">MHP.h:370</a></div></div>
1365
1365
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a46bd73ec73cc17087f21e8c5b234d0bd"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a46bd73ec73cc17087f21e8c5b234d0bd">SVF::ForkJoinAnalysis::getCBN</a></div><div class="ttdeci">CallICFGNode * getCBN(const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00407">MHP.h:407</a></div></div>
1366
1366
  <div class="ttc" id="classSVF_1_1TCT_html_a7b4ad0b052e1f8b6869733eef15f4e4d"><div class="ttname"><a href="classSVF_1_1TCT.html#a7b4ad0b052e1f8b6869733eef15f4e4d">SVF::TCT::getTCTNode</a></div><div class="ttdeci">TCTNode * getTCTNode(NodeID id) const</div><div class="ttdoc">Get TCT node. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00192">TCT.h:192</a></div></div>
@@ -1368,23 +1368,23 @@ Private Attributes</h2></td></tr>
1368
1368
  <div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector&lt; u32_t &gt; CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00119">SVFType.h:119</a></div></div>
1369
1369
  <div class="ttc" id="SVFType_8h_html_a217a1ccdaec1abb103cf6b0373631234"><div class="ttname"><a href="SVFType_8h.html#a217a1ccdaec1abb103cf6b0373631234">DMTA</a></div><div class="ttdeci">#define DMTA</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00439">SVFType.h:439</a></div></div>
1370
1370
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a159bbd4352fcffa93c97281ab9d229b1"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a159bbd4352fcffa93c97281ab9d229b1">SVF::ForkJoinAnalysis::LoopBBs</a></div><div class="ttdeci">SVFLoopAndDomInfo::LoopBBs LoopBBs</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00300">MHP.h:300</a></div></div>
1371
- <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00641">LLVMUtil.cpp:641</a></div></div>
1371
+ <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00681">LLVMUtil.cpp:681</a></div></div>
1372
1372
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a0b593c4ba425937212e2889e64ce4791"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const SVFInstruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
1373
1373
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8aa2d4c83981007108b152d05e9c51fe"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8aa2d4c83981007108b152d05e9c51fe">SVF::ForkJoinAnalysis::addDirectlyJoinTID</a></div><div class="ttdeci">void addDirectlyJoinTID(const CxtStmt &amp;cs, NodeID tid)</div><div class="ttdoc">maps a context-sensitive join site to a thread id </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00519">MHP.h:519</a></div></div>
1374
1374
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac483d3b0e9084c2033e177eda9ac9215"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">SVF::ForkJoinAnalysis::markCxtStmtFlag</a></div><div class="ttdeci">void markCxtStmtFlag(const CxtStmt &amp;tgr, ValDomain flag)</div><div class="ttdoc">Initialize TDAlive and TDDead flags. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00426">MHP.h:426</a></div></div>
1375
1375
  <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>
1376
- <div class="ttc" id="classSVF_1_1SVFInstruction_html_aef7ad257ea809101df33779463907f3e"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">SVF::SVFInstruction::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00628">SVFValue.h:628</a></div></div>
1376
+ <div class="ttc" id="classSVF_1_1SVFInstruction_html_aef7ad257ea809101df33779463907f3e"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">SVF::SVFInstruction::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00619">SVFValue.h:619</a></div></div>
1377
1377
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_abbff6ea064e7241315932db77dccaad9"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#abbff6ea064e7241315932db77dccaad9">SVF::ForkJoinAnalysis::isSameSCEV</a></div><div class="ttdeci">bool isSameSCEV(const SVFInstruction *forkSite, const SVFInstruction *joinSite)</div><div class="ttdoc">Return true if the fork and join have the same SCEV. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8cpp_source.html#l01041">MHP.cpp:1041</a></div></div>
1378
1378
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a97151d74790b2853249d0cc94bb0904f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a97151d74790b2853249d0cc94bb0904f">SVF::ForkJoinAnalysis::isTDJoin</a></div><div class="ttdeci">bool isTDJoin(const SVFInstruction *call)</div><div class="ttdoc">Whether it is a join site. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00494">MHP.h:494</a></div></div>
1379
1379
  <div class="ttc" id="classSVF_1_1CxtStmt_html"><div class="ttname"><a href="classSVF_1_1CxtStmt.html">SVF::CxtStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00041">CxtStmt.h:41</a></div></div>
1380
- <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ad05f85ce931d4479f71d1947a25599dc"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">SVF::SVFBasicBlock::back</a></div><div class="ttdeci">const SVFInstruction * back() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00551">SVFValue.h:551</a></div></div>
1381
- <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a7bde256bc906af7f7204929019f4a33e"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">SVF::SVFBasicBlock::front</a></div><div class="ttdeci">const SVFInstruction * front() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00546">SVFValue.h:546</a></div></div>
1380
+ <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_ad05f85ce931d4479f71d1947a25599dc"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ad05f85ce931d4479f71d1947a25599dc">SVF::SVFBasicBlock::back</a></div><div class="ttdeci">const SVFInstruction * back() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00542">SVFValue.h:542</a></div></div>
1381
+ <div class="ttc" id="classSVF_1_1SVFBasicBlock_html_a7bde256bc906af7f7204929019f4a33e"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a7bde256bc906af7f7204929019f4a33e">SVF::SVFBasicBlock::front</a></div><div class="ttdeci">const SVFInstruction * front() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00537">SVFValue.h:537</a></div></div>
1382
1382
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a2be89ac78712da78c215a33b3157ecd1"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a2be89ac78712da78c215a33b3157ecd1">SVF::ForkJoinAnalysis::addSymmetricLoopJoin</a></div><div class="ttdeci">void addSymmetricLoopJoin(const CxtStmt &amp;cs, LoopBBs &amp;lp)</div><div class="ttdoc">Add inloop join. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00551">MHP.h:551</a></div></div>
1383
1383
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt &amp; getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
1384
1384
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
1385
1385
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">SVF::ForkJoinAnalysis::TDDead</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00297">MHP.h:297</a></div></div>
1386
1386
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a209ab13297e61f980cdf350e8fe2a9b4"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a209ab13297e61f980cdf350e8fe2a9b4">SVF::ForkJoinAnalysis::isAliasedForkJoin</a></div><div class="ttdeci">bool isAliasedForkJoin(const SVFInstruction *forkSite, const SVFInstruction *joinSite)</div><div class="ttdoc">Whether it is a matched fork join pair. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00402">MHP.h:402</a></div></div>
1387
- <div class="ttc" id="classSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00480">SVFValue.h:480</a></div></div>
1387
+ <div class="ttc" id="classSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00471">SVFValue.h:471</a></div></div>
1388
1388
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631a2abecc56b7d5c644f7e14c98d33d0a0a">SVF::ForkJoinAnalysis::TDAlive</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00296">MHP.h:296</a></div></div>
1389
1389
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a8ad9b8cb0e6300b2ffc55244e53cece6"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">SVF::ForkJoinAnalysis::getTCG</a></div><div class="ttdeci">ThreadCallGraph * getTCG() const</div><div class="ttdoc">ThreadCallGraph. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00514">MHP.h:514</a></div></div>
1390
1390
  <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>
@@ -1419,9 +1419,9 @@ Private Attributes</h2></td></tr>
1419
1419
  <p>Handle return. </p>
1420
1420
 
1421
1421
  <p class="definition">Definition at line <a class="el" href="MHP_8cpp_source.html#l00903">903</a> of file <a class="el" href="MHP_8cpp_source.html">MHP.cpp</a>.</p>
1422
- <div class="fragment"><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;{</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* curFunNode = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(curInst-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>());</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> it = curFunNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().begin(), eit = curFunNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; {</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a>* edge = *it;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;ThreadForkEdge&gt;(edge) || SVFUtil::isa&lt;ThreadJoinEdge&gt;(edge))</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)-&gt;directCallsBegin(),</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; ecit = (edge)-&gt;directCallsEnd(); cit!=ecit; ++cit)</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac95b1600aa524c3e607eebcf9d50df0e">matchCxt</a>(newCxt,(*cit)-&gt;getCallSite(),curFunNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>()))</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; {</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a>&amp; nextInsts = (*cit)-&gt;getCallSite()-&gt;getSuccInstructions();</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; {</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,*nit);</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; }</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; }</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; }</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)-&gt;indirectCallsBegin(),</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; ecit = (edge)-&gt;indirectCallsEnd(); cit!=ecit; ++cit)</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac95b1600aa524c3e607eebcf9d50df0e">matchCxt</a>(newCxt,(*cit)-&gt;getCallSite(),curFunNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>()))</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a>&amp; nextInsts = (*cit)-&gt;getCallSite()-&gt;getSuccInstructions();</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; {</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,*nit);</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; }</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; }</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; }</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;}</div><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>
1422
+ <div class="fragment"><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;{</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* curInst = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">getStmt</a>();</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>&amp; curCxt = cts.<a class="code" href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">getContext</a>();</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* curFunNode = <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a8ad9b8cb0e6300b2ffc55244e53cece6">getTCG</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(curInst-&gt;<a class="code" href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">getFunction</a>());</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">PTACallGraphNode::const_iterator</a> it = curFunNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().begin(), eit = curFunNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; {</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphEdge.html">PTACallGraphEdge</a>* edge = *it;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;ThreadForkEdge&gt;(edge) || SVFUtil::isa&lt;ThreadJoinEdge&gt;(edge))</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)-&gt;directCallsBegin(),</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; ecit = (edge)-&gt;directCallsEnd(); cit!=ecit; ++cit)</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac95b1600aa524c3e607eebcf9d50df0e">matchCxt</a>(newCxt,(*cit)-&gt;getCallSite(),curFunNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>()))</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; {</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a>&amp; nextInsts = (*cit)-&gt;getCallSite()-&gt;getSuccInstructions();</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; {</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,*nit);</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; }</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; }</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; }</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keywordflow">for</span>(PTACallGraphEdge::CallInstSet::const_iterator cit = (edge)-&gt;indirectCallsBegin(),</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; ecit = (edge)-&gt;indirectCallsEnd(); cit!=ecit; ++cit)</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> newCxt = curCxt;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac95b1600aa524c3e607eebcf9d50df0e">matchCxt</a>(newCxt,(*cit)-&gt;getCallSite(),curFunNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>()))</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">InstVec</a>&amp; nextInsts = (*cit)-&gt;getCallSite()-&gt;getSuccInstructions();</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">for</span>(InstVec::const_iterator nit = nextInsts.begin(), enit = nextInsts.end(); nit!=enit; ++nit)</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; {</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <a class="code" href="classSVF_1_1CxtStmt.html">CxtStmt</a> newCts(newCxt,*nit);</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="classSVF_1_1ForkJoinAnalysis.html#ac483d3b0e9084c2033e177eda9ac9215">markCxtStmtFlag</a>(newCts,cts);</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; }</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; }</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; }</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;}</div><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#l00570">SVFValue.h:570</a></div></div>
1423
1423
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_aaab54c670518d9d6790707f76ea76aa1"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">SVF::PTACallGraph::getCallGraphNode</a></div><div class="ttdeci">PTACallGraphNode * getCallGraphNode(NodeID id) const</div><div class="ttdoc">Get call graph node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00315">PTACallGraph.h:315</a></div></div>
1424
- <div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00187">GenericGraph.h:187</a></div></div>
1424
+ <div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00188">GenericGraph.h:188</a></div></div>
1425
1425
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_a613d763731058899e6819acdb2d7315f"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#a613d763731058899e6819acdb2d7315f">SVF::ForkJoinAnalysis::InstVec</a></div><div class="ttdeci">TCT::InstVec InstVec</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00301">MHP.h:301</a></div></div>
1426
1426
  <div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector&lt; u32_t &gt; CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00119">SVFType.h:119</a></div></div>
1427
1427
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a0b593c4ba425937212e2889e64ce4791"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a0b593c4ba425937212e2889e64ce4791">SVF::CxtStmt::getStmt</a></div><div class="ttdeci">const SVFInstruction * getStmt() const</div><div class="ttdoc">Return current statement. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00062">CxtStmt.h:62</a></div></div>
@@ -1430,7 +1430,7 @@ Private Attributes</h2></td></tr>
1430
1430
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_adf17f5699c9f40ffc8837e813e3af3ec"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#adf17f5699c9f40ffc8837e813e3af3ec">SVF::PTACallGraphNode::const_iterator</a></div><div class="ttdeci">PTACallGraphEdge::CallGraphEdgeSet::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00180">PTACallGraph.h:180</a></div></div>
1431
1431
  <div class="ttc" id="classSVF_1_1ForkJoinAnalysis_html_ac95b1600aa524c3e607eebcf9d50df0e"><div class="ttname"><a href="classSVF_1_1ForkJoinAnalysis.html#ac95b1600aa524c3e607eebcf9d50df0e">SVF::ForkJoinAnalysis::matchCxt</a></div><div class="ttdeci">bool matchCxt(CallStrCxt &amp;cxt, const SVFInstruction *call, const SVFFunction *callee)</div><div class="ttdoc">Match context. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00483">MHP.h:483</a></div></div>
1432
1432
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
1433
- <div class="ttc" id="classSVF_1_1SVFInstruction_html_aef7ad257ea809101df33779463907f3e"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">SVF::SVFInstruction::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00628">SVFValue.h:628</a></div></div>
1433
+ <div class="ttc" id="classSVF_1_1SVFInstruction_html_aef7ad257ea809101df33779463907f3e"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html#aef7ad257ea809101df33779463907f3e">SVF::SVFInstruction::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00619">SVFValue.h:619</a></div></div>
1434
1434
  <div class="ttc" id="classSVF_1_1CxtStmt_html"><div class="ttname"><a href="classSVF_1_1CxtStmt.html">SVF::CxtStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00041">CxtStmt.h:41</a></div></div>
1435
1435
  <div class="ttc" id="classSVF_1_1CxtStmt_html_a3ce19b8f2de2e199ed4165dbe9d21f28"><div class="ttname"><a href="classSVF_1_1CxtStmt.html#a3ce19b8f2de2e199ed4165dbe9d21f28">SVF::CxtStmt::getContext</a></div><div class="ttdeci">const CallStrCxt &amp; getContext() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00057">CxtStmt.h:57</a></div></div>
1436
1436
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>