svf-tools 1.0.458 → 1.0.461

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 (410) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
  5. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  6. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  7. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +3 -4
  9. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +14 -14
  10. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  12. package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
  13. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  14. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +16 -16
  15. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  16. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +4 -4
  17. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
  19. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
  20. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
  22. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +19 -19
  23. package/SVF-doxygen/html/html/DCHG_8h_source.html +8 -8
  24. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  25. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/DDAPass_8h_source.html +2 -3
  27. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  29. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +4 -4
  30. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +6 -6
  31. package/SVF-doxygen/html/html/ExeState_8cpp.html +1 -0
  32. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +26 -25
  33. package/SVF-doxygen/html/html/ExeState_8h_source.html +13 -13
  34. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  35. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
  36. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -4
  39. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  40. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  41. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  42. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  43. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  44. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  45. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +7 -7
  47. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  48. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
  49. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  50. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  51. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +6 -6
  52. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +7 -7
  53. package/SVF-doxygen/html/html/IRGraph_8h_source.html +21 -21
  54. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +3 -3
  56. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +13 -13
  57. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +10 -10
  58. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  59. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  60. package/SVF-doxygen/html/html/LocationSet_8cpp.html +1 -0
  61. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +15 -14
  62. package/SVF-doxygen/html/html/LocationSet_8h_source.html +10 -10
  63. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +6 -6
  64. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  65. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
  67. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  68. package/SVF-doxygen/html/html/MHP_8cpp_source.html +46 -46
  69. package/SVF-doxygen/html/html/MHP_8h.html +1 -0
  70. package/SVF-doxygen/html/html/MHP_8h_source.html +102 -101
  71. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
  73. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +4 -4
  74. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +14 -14
  75. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +10 -10
  76. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +9 -9
  77. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -5
  79. package/SVF-doxygen/html/html/MTA_8h_source.html +4 -5
  80. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  81. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
  83. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  84. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
  85. package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
  86. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
  87. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  88. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  89. package/SVF-doxygen/html/html/PCG_8cpp_source.html +4 -4
  90. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  91. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  92. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  93. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +21 -21
  94. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +5 -5
  95. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
  96. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
  97. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
  98. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  99. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +23 -23
  100. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +6 -6
  101. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +68 -50
  102. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +51 -50
  103. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +3 -4
  104. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
  105. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  106. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +35 -41
  107. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  108. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +3 -3
  109. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  110. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +9 -9
  111. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  112. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +52 -52
  113. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +37 -37
  114. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +19 -19
  115. package/SVF-doxygen/html/html/SVFIR_8h_source.html +19 -19
  116. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  117. package/SVF-doxygen/html/html/SVFModule_8h_source.html +2 -2
  118. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
  119. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  120. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +6 -7
  121. package/SVF-doxygen/html/html/SVFUtil_8h.html +6 -3
  122. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +12 -12
  123. package/SVF-doxygen/html/html/SVFVariables_8cpp.html +1 -0
  124. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +35 -32
  125. package/SVF-doxygen/html/html/SVFVariables_8h.html +0 -1
  126. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +141 -143
  127. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
  128. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  129. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  130. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  131. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  132. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +54 -54
  133. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
  134. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp.html +1 -0
  135. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +99 -95
  136. package/SVF-doxygen/html/html/SymbolTableInfo_8h.html +0 -1
  137. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +144 -146
  138. package/SVF-doxygen/html/html/TCT_8cpp.html +1 -0
  139. package/SVF-doxygen/html/html/TCT_8cpp_source.html +41 -40
  140. package/SVF-doxygen/html/html/TCT_8h_source.html +7 -7
  141. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  142. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  143. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +6 -6
  144. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  145. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  146. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +22 -22
  147. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +4 -4
  148. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -4
  149. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +67 -69
  150. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  151. package/SVF-doxygen/html/html/VFG_8cpp_source.html +10 -10
  152. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
  153. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
  154. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  155. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
  156. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -4
  157. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +4 -4
  161. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +11 -11
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
  165. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +5 -5
  166. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +4 -4
  168. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
  169. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  170. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +4 -4
  171. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs-members.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +6 -6
  173. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +20 -20
  174. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  175. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
  176. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge-members.html +20 -22
  178. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +16 -20
  179. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  180. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +15 -15
  182. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +16 -16
  184. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
  185. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +16 -16
  186. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  187. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +11 -11
  188. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +53 -53
  189. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +9 -9
  192. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  193. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +2 -2
  194. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +20 -20
  197. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +18 -18
  199. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +40 -40
  200. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +1 -1
  201. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +22 -22
  202. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +4 -4
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +9 -9
  206. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +10 -10
  207. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +183 -183
  208. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  211. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +45 -45
  214. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  215. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +29 -29
  217. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +10 -10
  219. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +10 -10
  220. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +21 -21
  221. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge-members.html +31 -34
  222. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +12 -100
  223. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge-members.html +17 -19
  227. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +11 -15
  228. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
  229. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
  230. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  231. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +7 -7
  232. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +29 -29
  233. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +20 -20
  234. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +10 -11
  235. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +177 -177
  236. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +16 -16
  237. package/SVF-doxygen/html/html/classSVF_1_1MTA-members.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +13 -13
  239. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
  240. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +25 -26
  241. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +5 -5
  242. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +8 -8
  243. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +91 -91
  244. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +9 -9
  245. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets-members.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +5 -5
  248. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
  249. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +99 -99
  251. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +35 -35
  253. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +9 -9
  255. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +4 -4
  256. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +3 -3
  257. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  258. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  259. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +24 -24
  260. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +9 -9
  261. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
  262. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +2 -2
  263. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +38 -38
  264. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +4 -4
  265. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge-members.html +19 -21
  266. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +17 -21
  267. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +1 -1
  268. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +19 -19
  269. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +6 -6
  271. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +32 -32
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +12 -12
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  275. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
  276. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal-members.html +1 -1
  277. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +6 -6
  278. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +62 -62
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +74 -74
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +7 -7
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +1 -1
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +99 -107
  285. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +3 -3
  286. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
  287. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +7 -7
  288. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  289. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +38 -38
  290. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +84 -84
  291. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +2 -2
  292. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +231 -247
  293. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +88 -88
  294. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  295. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  296. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge-members.html +17 -19
  298. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +12 -16
  299. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  300. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +36 -36
  301. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  302. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +13 -13
  303. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  304. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +24 -24
  306. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +1 -1
  307. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +19 -19
  308. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
  309. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
  310. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1WPAPass-members.html +1 -1
  312. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +8 -8
  313. package/SVF-doxygen/html/html/cuddInt_8c.html +4 -2
  314. package/SVF-doxygen/html/html/cuddInt_8c_source.html +2 -1
  315. package/SVF-doxygen/html/html/cuddInt_8h.html +4 -2
  316. package/SVF-doxygen/html/html/functions_a.html +5 -8
  317. package/SVF-doxygen/html/html/functions_c.html +9 -5
  318. package/SVF-doxygen/html/html/functions_f.html +6 -4
  319. package/SVF-doxygen/html/html/functions_func.html +10 -13
  320. package/SVF-doxygen/html/html/functions_func_g.html +11 -12
  321. package/SVF-doxygen/html/html/functions_func_h.html +1 -1
  322. package/SVF-doxygen/html/html/functions_func_i.html +1 -1
  323. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  324. package/SVF-doxygen/html/html/functions_g.html +11 -12
  325. package/SVF-doxygen/html/html/functions_h.html +1 -1
  326. package/SVF-doxygen/html/html/functions_i.html +1 -1
  327. package/SVF-doxygen/html/html/functions_l.html +3 -3
  328. package/SVF-doxygen/html/html/functions_m.html +1 -4
  329. package/SVF-doxygen/html/html/functions_n.html +3 -3
  330. package/SVF-doxygen/html/html/functions_o.html +14 -14
  331. package/SVF-doxygen/html/html/functions_p.html +11 -11
  332. package/SVF-doxygen/html/html/functions_r.html +7 -5
  333. package/SVF-doxygen/html/html/functions_s.html +7 -7
  334. package/SVF-doxygen/html/html/functions_t.html +6 -4
  335. package/SVF-doxygen/html/html/functions_v.html +3 -3
  336. package/SVF-doxygen/html/html/functions_vars_m.html +0 -3
  337. package/SVF-doxygen/html/html/globals_c.html +103 -100
  338. package/SVF-doxygen/html/html/globals_s.html +6 -10
  339. package/SVF-doxygen/html/html/globals_type.html +3 -0
  340. package/SVF-doxygen/html/html/namespaceSVF.html +31 -67
  341. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +105 -63
  342. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +27 -27
  343. package/SVF-doxygen/html/html/namespacemembers_c.html +0 -3
  344. package/SVF-doxygen/html/html/namespacemembers_func.html +4 -1
  345. package/SVF-doxygen/html/html/namespacemembers_g.html +1 -1
  346. package/SVF-doxygen/html/html/namespacemembers_s.html +3 -3
  347. package/SVF-doxygen/html/html/namespacemembers_type.html +0 -6
  348. package/SVF-doxygen/html/html/search/all_1.js +0 -1
  349. package/SVF-doxygen/html/html/search/all_10.js +8 -8
  350. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  351. package/SVF-doxygen/html/html/search/all_13.js +10 -11
  352. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  353. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  354. package/SVF-doxygen/html/html/search/all_3.js +2 -2
  355. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  356. package/SVF-doxygen/html/html/search/all_7.js +4 -4
  357. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  358. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  359. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  360. package/SVF-doxygen/html/html/search/all_d.js +0 -1
  361. package/SVF-doxygen/html/html/search/all_e.js +6 -6
  362. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  363. package/SVF-doxygen/html/html/search/functions_0.js +0 -1
  364. package/SVF-doxygen/html/html/search/functions_10.js +3 -3
  365. package/SVF-doxygen/html/html/search/functions_6.js +4 -4
  366. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  367. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  368. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  369. package/SVF-doxygen/html/html/search/typedefs_11.js +0 -1
  370. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  371. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  372. package/SVF-doxygen/html/html/search/variables_d.js +0 -1
  373. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  374. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +3 -3
  375. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
  376. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +3 -3
  377. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  378. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
  379. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +14 -14
  380. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  381. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  382. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
  383. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  384. package/include/DDA/DDAPass.h +1 -1
  385. package/include/Graphs/SVFGEdge.h +0 -12
  386. package/include/MTA/LockResultValidator.h +1 -1
  387. package/include/MTA/MHP.h +1 -0
  388. package/include/MTA/MTA.h +1 -1
  389. package/include/MTA/MTAAnnotator.h +1 -1
  390. package/include/MTA/MTAResultValidator.h +1 -1
  391. package/include/MemoryModel/SVFVariables.h +1 -8
  392. package/include/MemoryModel/SymbolTableInfo.h +2 -22
  393. package/include/SVF-FE/BasicTypes.h +1 -0
  394. package/include/SVF-FE/BreakConstantExpr.h +2 -2
  395. package/include/Util/BasicTypes.h +1 -3
  396. package/include/Util/SVFBasicTypes.h +1 -1
  397. package/include/Util/SVFUtil.h +16 -1
  398. package/include/WPA/WPAPass.h +1 -1
  399. package/lib/MTA/LockResultValidator.cpp +2 -2
  400. package/lib/MTA/MTAResultValidator.cpp +2 -2
  401. package/lib/MTA/TCT.cpp +1 -0
  402. package/lib/MemoryModel/LocationSet.cpp +1 -0
  403. package/lib/MemoryModel/SVFVariables.cpp +10 -1
  404. package/lib/MemoryModel/SymbolTableInfo.cpp +26 -0
  405. package/lib/SVF-FE/DCHG.cpp +8 -8
  406. package/lib/Util/ExeState.cpp +1 -0
  407. package/lib/Util/PTAStat.cpp +11 -3
  408. package/lib/Util/SVFUtil.cpp +3 -3
  409. package/lib/Util/ThreadAPI.cpp +12 -4
  410. package/package.json +1 -1
@@ -475,7 +475,7 @@ Static Private Attributes</h2></td></tr>
475
475
  <p>Return the callee/callsite/func. </p>
476
476
 
477
477
  <p class="definition">Definition at line <a class="el" href="ThreadAPI_8cpp_source.html#l00134">134</a> of file <a class="el" href="ThreadAPI_8cpp_source.html">ThreadAPI.cpp</a>.</p>
478
- <div class="fragment"><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(inst);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00266">SVFUtil.h:266</a></div></div>
478
+ <div class="fragment"><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(inst);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00281">SVFUtil.h:281</a></div></div>
479
479
  </div><!-- fragment -->
480
480
  </div>
481
481
  </div>
@@ -496,7 +496,7 @@ Static Private Attributes</h2></td></tr>
496
496
  </div><div class="memdoc">
497
497
 
498
498
  <p class="definition">Definition at line <a class="el" href="ThreadAPI_8cpp_source.html#l00142">142</a> of file <a class="el" href="ThreadAPI_8cpp_source.html">ThreadAPI.cpp</a>.</p>
499
- <div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(cs);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00266">SVFUtil.h:266</a></div></div>
499
+ <div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(cs);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00281">SVFUtil.h:281</a></div></div>
500
500
  </div><!-- fragment -->
501
501
  </div>
502
502
  </div>
@@ -1516,13 +1516,13 @@ Static Private Attributes</h2></td></tr>
1516
1516
  </div><div class="memdoc">
1517
1517
 
1518
1518
  <p class="definition">Definition at line <a class="el" href="ThreadAPI_8cpp_source.html#l00198">198</a> of file <a class="el" href="ThreadAPI_8cpp_source.html">ThreadAPI.cpp</a>.</p>
1519
- <div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;std::string, u32_t&gt;</a> tdAPIStatMap;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1ThreadAPI.html#a8a4ab0b1dcb2e3897b7740868e0d955d">statInit</a>(tdAPIStatMap);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#aa5a0780c5c69a1e9a0ba902b4ad49714">SVFModule::llvm_iterator</a> it = module-&gt;llvmFunBegin(), eit = module-&gt;llvmFunEnd(); it != eit;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; ++it)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">for</span> (Function::iterator bit = (*it)-&gt;begin(), ebit = (*it)-&gt;end(); bit != ebit; ++bit)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb = *bit;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">for</span> (BasicBlock::iterator ii = bb.begin(), eii = bb.end(); ii != eii; ++ii)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = &amp;*ii;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> (!SVFUtil::isa&lt;CallInst&gt;(inst))</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1ThreadAPI.html#a08c83946d87ab935bd8bf6fea20792ba">getCallee</a>(inst);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3">TD_TYPE</a> type = <a class="code" href="classSVF_1_1ThreadAPI.html#a768a655dffc5fcf1d63e2a0b3f2930f4">getType</a>(fun);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">switch</span> (type)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a9a40948eeab9b022957ae33715ee83da">TD_FORK</a>:</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_create&quot;</span>]++;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a9efe9b72a2520e1fae3cae1e747e3134">TD_JOIN</a>:</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_join&quot;</span>]++;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a5bda6aca46dfc712f3781b4732a373a3">TD_ACQUIRE</a>:</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_lock&quot;</span>]++;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3ab7ea623d48ae64aa09ab49deebbb7113">TD_TRY_ACQUIRE</a>:</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_trylock&quot;</span>]++;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3ac826e1e1c43305a3abcfdc9a2169b8dd">TD_RELEASE</a>:</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_unlock&quot;</span>]++;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3afad2e548ab59646972d8c66e593845cc">TD_CANCEL</a>:</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cancel&quot;</span>]++;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3af3a3036705ecca40cf170d12d0ccf4dc">TD_EXIT</a>:</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_exit&quot;</span>]++;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a0b558cf037397818414cac2f7c87ab08">TD_DETACH</a>:</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_detach&quot;</span>]++;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3aa8a39bd1bb13292a55dd6168909c872e">TD_COND_WAIT</a>:</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_wait&quot;</span>]++;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a01a3b1723176504482b606d8e097949f">TD_COND_SIGNAL</a>:</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_signal&quot;</span>]++;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3aa6ee2952d7757b0919f56bd39fd5a93e">TD_COND_BROADCAST</a>:</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_broadcast&quot;</span>]++;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a1f921d7369e3a00a77394640f887c7ff">TD_CONDVAR_INI</a>:</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_init&quot;</span>]++;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a9c3f04e71ed64ce8d2862d7a6f39a95b">TD_CONDVAR_DESTROY</a>:</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_destroy&quot;</span>]++;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3abb17ca545bd259f16a36a2d2af43948b">TD_MUTEX_INI</a>:</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_init&quot;</span>]++;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a91db238366fcdcd65bd7710882c8716f">TD_MUTEX_DESTROY</a>:</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_destroy&quot;</span>]++;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a4fb99e17bf56ae018448f5f97aa8cda6">TD_BAR_INIT</a>:</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_barrier_init&quot;</span>]++;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3aa2b2704ecc4c11ec0dbeaf1b22532431">TD_BAR_WAIT</a>:</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_barrier_wait&quot;</span>]++;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a4690967fd6d32fb82c5de637846a3476">HARE_PAR_FOR</a>:</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;hare_parallel_for&quot;</span>]++;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a5953e882e253807e49aa229e64e001b8">TD_DUMMY</a>:</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> n(module-&gt;getModuleIdentifier());</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> name = n.split(<span class="charliteral">&#39;/&#39;</span>).second;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; name = name.split(<span class="charliteral">&#39;.&#39;</span>).first;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;################ (program : &quot;</span> &lt;&lt; name.str()</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; &lt;&lt; <span class="stringliteral">&quot;)###############\n&quot;</span>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>().flags(std::ios::left);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">unsigned</span> field_width = 20;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;std::string, u32_t&gt;::iterator</a> it = tdAPIStatMap.begin(), eit =</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; tdAPIStatMap.end(); it != eit; ++it)</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; std::string apiName = it-&gt;first;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; std::setw(field_width) &lt;&lt; apiName &lt;&lt; <span class="stringliteral">&quot; : &quot;</span> &lt;&lt; it-&gt;second</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;#######################################################&quot;</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; &lt;&lt; std::endl;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;}</div><div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3afad2e548ab59646972d8c66e593845cc"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3afad2e548ab59646972d8c66e593845cc">SVF::ThreadAPI::TD_CANCEL</a></div><div class="ttdoc">exit/kill a thread </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00057">ThreadAPI.h:57</a></div></div>
1519
+ <div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;std::string, u32_t&gt;</a> tdAPIStatMap;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1ThreadAPI.html#a8a4ab0b1dcb2e3897b7740868e0d955d">statInit</a>(tdAPIStatMap);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#aa5a0780c5c69a1e9a0ba902b4ad49714">SVFModule::llvm_iterator</a> it = module-&gt;llvmFunBegin(), eit = module-&gt;llvmFunEnd(); it != eit;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; ++it)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">for</span> (Function::iterator bit = (*it)-&gt;begin(), ebit = (*it)-&gt;end(); bit != ebit; ++bit)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>&amp; bb = *bit;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">for</span> (BasicBlock::iterator ii = bb.begin(), eii = bb.end(); ii != eii; ++ii)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = &amp;*ii;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> (!SVFUtil::isa&lt;CallInst&gt;(inst))</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1ThreadAPI.html#a08c83946d87ab935bd8bf6fea20792ba">getCallee</a>(inst);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3">TD_TYPE</a> type = <a class="code" href="classSVF_1_1ThreadAPI.html#a768a655dffc5fcf1d63e2a0b3f2930f4">getType</a>(fun);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">switch</span> (type)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a9a40948eeab9b022957ae33715ee83da">TD_FORK</a>:</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_create&quot;</span>]++;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a9efe9b72a2520e1fae3cae1e747e3134">TD_JOIN</a>:</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_join&quot;</span>]++;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a5bda6aca46dfc712f3781b4732a373a3">TD_ACQUIRE</a>:</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_lock&quot;</span>]++;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3ab7ea623d48ae64aa09ab49deebbb7113">TD_TRY_ACQUIRE</a>:</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_trylock&quot;</span>]++;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3ac826e1e1c43305a3abcfdc9a2169b8dd">TD_RELEASE</a>:</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_unlock&quot;</span>]++;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3afad2e548ab59646972d8c66e593845cc">TD_CANCEL</a>:</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cancel&quot;</span>]++;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3af3a3036705ecca40cf170d12d0ccf4dc">TD_EXIT</a>:</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_exit&quot;</span>]++;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a0b558cf037397818414cac2f7c87ab08">TD_DETACH</a>:</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_detach&quot;</span>]++;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3aa8a39bd1bb13292a55dd6168909c872e">TD_COND_WAIT</a>:</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_wait&quot;</span>]++;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a01a3b1723176504482b606d8e097949f">TD_COND_SIGNAL</a>:</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_signal&quot;</span>]++;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3aa6ee2952d7757b0919f56bd39fd5a93e">TD_COND_BROADCAST</a>:</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_broadcast&quot;</span>]++;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a1f921d7369e3a00a77394640f887c7ff">TD_CONDVAR_INI</a>:</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_init&quot;</span>]++;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a9c3f04e71ed64ce8d2862d7a6f39a95b">TD_CONDVAR_DESTROY</a>:</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_cond_destroy&quot;</span>]++;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3abb17ca545bd259f16a36a2d2af43948b">TD_MUTEX_INI</a>:</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_init&quot;</span>]++;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a91db238366fcdcd65bd7710882c8716f">TD_MUTEX_DESTROY</a>:</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_mutex_destroy&quot;</span>]++;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a4fb99e17bf56ae018448f5f97aa8cda6">TD_BAR_INIT</a>:</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_barrier_init&quot;</span>]++;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3aa2b2704ecc4c11ec0dbeaf1b22532431">TD_BAR_WAIT</a>:</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;pthread_barrier_wait&quot;</span>]++;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a4690967fd6d32fb82c5de637846a3476">HARE_PAR_FOR</a>:</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; tdAPIStatMap[<span class="stringliteral">&quot;hare_parallel_for&quot;</span>]++;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a5953e882e253807e49aa229e64e001b8">TD_DUMMY</a>:</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; std::string name(module-&gt;getModuleIdentifier());</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; std::vector&lt;std::string&gt; fullNames = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af54e70082388bbd70868250aaa0bc86b">SVFUtil::split</a>(name,<span class="charliteral">&#39;/&#39;</span>);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span> (fullNames.size() &gt; 1)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; name = fullNames[1];</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; fullNames = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af54e70082388bbd70868250aaa0bc86b">SVFUtil::split</a>(name,<span class="charliteral">&#39;.&#39;</span>);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span> (fullNames.size() &gt; 0 )</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; name = fullNames[0];</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;################ (program : &quot;</span> &lt;&lt; name</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; &lt;&lt; <span class="stringliteral">&quot;)###############\n&quot;</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>().flags(std::ios::left);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordtype">unsigned</span> field_width = 20;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;std::string, u32_t&gt;::iterator</a> it = tdAPIStatMap.begin(), eit =</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; tdAPIStatMap.end(); it != eit; ++it)</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; std::string apiName = it-&gt;first;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; std::setw(field_width) &lt;&lt; apiName &lt;&lt; <span class="stringliteral">&quot; : &quot;</span> &lt;&lt; it-&gt;second</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <span class="stringliteral">&quot;#######################################################&quot;</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; &lt;&lt; std::endl;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;}</div><div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3afad2e548ab59646972d8c66e593845cc"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3afad2e548ab59646972d8c66e593845cc">SVF::ThreadAPI::TD_CANCEL</a></div><div class="ttdoc">exit/kill a thread </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00057">ThreadAPI.h:57</a></div></div>
1520
1520
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3a0b558cf037397818414cac2f7c87ab08"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a0b558cf037397818414cac2f7c87ab08">SVF::ThreadAPI::TD_DETACH</a></div><div class="ttdoc">wait for a thread to join </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00052">ThreadAPI.h:52</a></div></div>
1521
1521
  <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
1522
1522
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3a5bda6aca46dfc712f3781b4732a373a3"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a5bda6aca46dfc712f3781b4732a373a3">SVF::ThreadAPI::TD_ACQUIRE</a></div><div class="ttdoc">detach a thread directly instead wait for it to join </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00053">ThreadAPI.h:53</a></div></div>
1523
1523
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3a9a40948eeab9b022957ae33715ee83da"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a9a40948eeab9b022957ae33715ee83da">SVF::ThreadAPI::TD_FORK</a></div><div class="ttdoc">dummy type </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00050">ThreadAPI.h:50</a></div></div>
1524
1524
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3a9c3f04e71ed64ce8d2862d7a6f39a95b"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a9c3f04e71ed64ce8d2862d7a6f39a95b">SVF::ThreadAPI::TD_CONDVAR_DESTROY</a></div><div class="ttdoc">initial a mutex variable </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00064">ThreadAPI.h:64</a></div></div>
1525
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
1525
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
1526
1526
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a768a655dffc5fcf1d63e2a0b3f2930f4"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a768a655dffc5fcf1d63e2a0b3f2930f4">SVF::ThreadAPI::getType</a></div><div class="ttdeci">TD_TYPE getType(const SVFFunction *F) const</div><div class="ttdoc">Get the function type if it is a threadAPI function. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00089">ThreadAPI.h:89</a></div></div>
1527
1527
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00109">SVFBasicTypes.h:109</a></div></div>
1528
1528
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3a4fb99e17bf56ae018448f5f97aa8cda6"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a4fb99e17bf56ae018448f5f97aa8cda6">SVF::ThreadAPI::TD_BAR_INIT</a></div><div class="ttdoc">initial a mutex variable </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00065">ThreadAPI.h:65</a></div></div>
@@ -1531,9 +1531,9 @@ Static Private Attributes</h2></td></tr>
1531
1531
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3a01a3b1723176504482b606d8e097949f"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a01a3b1723176504482b606d8e097949f">SVF::ThreadAPI::TD_COND_SIGNAL</a></div><div class="ttdoc">wait a condition </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00059">ThreadAPI.h:59</a></div></div>
1532
1532
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
1533
1533
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3aa8a39bd1bb13292a55dd6168909c872e"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3aa8a39bd1bb13292a55dd6168909c872e">SVF::ThreadAPI::TD_COND_WAIT</a></div><div class="ttdoc">cancel a thread by another </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00058">ThreadAPI.h:58</a></div></div>
1534
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af54e70082388bbd70868250aaa0bc86b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af54e70082388bbd70868250aaa0bc86b">SVF::SVFUtil::split</a></div><div class="ttdeci">std::vector&lt; std::string &gt; split(const std::string &amp;s, char seperator)</div><div class="ttdoc">Split into two substrings around the first occurrence of a separator string. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00243">SVFUtil.h:243</a></div></div>
1534
1535
  <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>
1535
1536
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3aa6ee2952d7757b0919f56bd39fd5a93e"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3aa6ee2952d7757b0919f56bd39fd5a93e">SVF::ThreadAPI::TD_COND_BROADCAST</a></div><div class="ttdoc">signal a condition </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00060">ThreadAPI.h:60</a></div></div>
1536
- <div class="ttc" id="namespaceSVF_html_a88fd7387fcf16caf70abe265cdcf90b9"><div class="ttname"><a href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">SVF::StringRef</a></div><div class="ttdeci">llvm::StringRef StringRef</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
1537
1537
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3a1f921d7369e3a00a77394640f887c7ff"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a1f921d7369e3a00a77394640f887c7ff">SVF::ThreadAPI::TD_CONDVAR_INI</a></div><div class="ttdoc">initial a mutex variable </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00063">ThreadAPI.h:63</a></div></div>
1538
1538
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3a5953e882e253807e49aa229e64e001b8"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a5953e882e253807e49aa229e64e001b8">SVF::ThreadAPI::TD_DUMMY</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00049">ThreadAPI.h:49</a></div></div>
1539
1539
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a38a7516702c55ab418167b7c850516b3a91db238366fcdcd65bd7710882c8716f"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3a91db238366fcdcd65bd7710882c8716f">SVF::ThreadAPI::TD_MUTEX_DESTROY</a></div><div class="ttdoc">initial a mutex variable </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00062">ThreadAPI.h:62</a></div></div>
@@ -705,7 +705,7 @@ Additional Inherited Members</h2></td></tr>
705
705
 
706
706
  <p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00147">147</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
707
707
  <div class="fragment"><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>());</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* forkee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(<a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()));</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(forkee &amp;&amp; <span class="stringliteral">&quot;callee does not exist&quot;</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* callee = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">getDefFunForMultipleModule</a>(forkee));</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">addCallSite</a>(cs, callee-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>());</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">hasGraphEdge</a>(caller, callee, <a class="code" href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">PTACallGraphEdge::TDForkEdge</a>, csId))</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>() == caller-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>() &amp;&amp; <span class="stringliteral">&quot;callee instruction not inside caller??&quot;</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classSVF_1_1ThreadForkEdge.html">ThreadForkEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ThreadForkEdge.html">ThreadForkEdge</a>(caller, callee, csId);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; edge-&gt;addDirectCallSite(cs);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">addEdge</a>(edge);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">addThreadForkEdgeSetMap</a>(cs, edge);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="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>
708
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a142e650415cb81011eb59dadd3cb0637"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">SVF::SVFUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00254">SVFUtil.h:254</a></div></div>
708
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a142e650415cb81011eb59dadd3cb0637"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">SVF::SVFUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00269">SVFUtil.h:269</a></div></div>
709
709
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
710
710
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00411">ThreadCallGraph.h:411</a></div></div>
711
711
  <div class="ttc" id="classSVF_1_1ThreadForkEdge_html"><div class="ttname"><a href="classSVF_1_1ThreadForkEdge.html">SVF::ThreadForkEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00044">ThreadCallGraph.h:44</a></div></div>
@@ -758,7 +758,7 @@ Additional Inherited Members</h2></td></tr>
758
758
  <div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* joinFunNode = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>());</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = forkset.begin(), eit = forkset.end(); it != eit; ++it)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* threadRoutineFun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(<a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>((*it)-&gt;getCallSite()));</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(threadRoutineFun &amp;&amp; <span class="stringliteral">&quot;thread routine function does not exist&quot;</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfRoutineFun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(threadRoutineFun);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* threadRoutineFunNode = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(svfRoutineFun);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">addCallSite</a>(cs, svfRoutineFun);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1ThreadCallGraph.html#a5f7c92af1a4ce33e4746f5b65c9c8421">hasThreadJoinEdge</a>(cs,joinFunNode,threadRoutineFunNode, csId))</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>() == joinFunNode-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>() &amp;&amp; <span class="stringliteral">&quot;callee instruction not inside caller??&quot;</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="classSVF_1_1ThreadJoinEdge.html">ThreadJoinEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ThreadJoinEdge.html">ThreadJoinEdge</a>(joinFunNode,threadRoutineFunNode,csId);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; edge-&gt;addDirectCallSite(cs);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1ThreadCallGraph.html#a7100a68c27a965927975e26bb06e061c">addThreadJoinEdgeSetMap</a>(cs, edge);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;}</div><div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a7100a68c27a965927975e26bb06e061c"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a7100a68c27a965927975e26bb06e061c">SVF::ThreadCallGraph::addThreadJoinEdgeSetMap</a></div><div class="ttdeci">void addThreadJoinEdgeSetMap(const CallICFGNode *cs, ThreadJoinEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00377">ThreadCallGraph.h:377</a></div></div>
759
759
  <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>
760
760
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
761
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
761
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
762
762
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00411">ThreadCallGraph.h:411</a></div></div>
763
763
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a7ddc0c71aeae315af21972a4905b3456"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">SVF::ThreadAPI::getForkedFun</a></div><div class="ttdeci">const Value * getForkedFun(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00168">ThreadAPI.h:168</a></div></div>
764
764
  <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
@@ -798,7 +798,7 @@ Additional Inherited Members</h2></td></tr>
798
798
  <div class="fragment"><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;{</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* caller = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>());</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* taskFunc = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(<a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(taskFunc &amp;&amp; <span class="stringliteral">&quot;callee does not exist&quot;</span>);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfTaskFun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(taskFunc);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1PTACallGraphNode.html">PTACallGraphNode</a>* callee = <a class="code" href="classSVF_1_1PTACallGraph.html#aaab54c670518d9d6790707f76ea76aa1">getCallGraphNode</a>(svfTaskFun);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">addCallSite</a>(cs, callee-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>());</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1PTACallGraph.html#a6d29a39440d8f6290e2e8b7322b965fb">hasGraphEdge</a>(caller, callee, <a class="code" href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">PTACallGraphEdge::TDForkEdge</a>, csId))</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>() == caller-&gt;<a class="code" href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">getFunction</a>() &amp;&amp; <span class="stringliteral">&quot;callee instruction not inside caller??&quot;</span>);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="classSVF_1_1HareParForEdge.html">HareParForEdge</a>* edge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1HareParForEdge.html">HareParForEdge</a>(caller, callee, csId);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; edge-&gt;addDirectCallSite(cs);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">addEdge</a>(edge);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="classSVF_1_1ThreadCallGraph.html#aae1caa7231ab9436db98403d6a175149">addHareParForEdgeSetMap</a>(cs, edge);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div><div class="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>
799
799
  <div class="ttc" id="classSVF_1_1HareParForEdge_html"><div class="ttname"><a href="classSVF_1_1HareParForEdge.html">SVF::HareParForEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00127">ThreadCallGraph.h:127</a></div></div>
800
800
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
801
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
801
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
802
802
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00411">ThreadCallGraph.h:411</a></div></div>
803
803
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_afeedd6e518af76fa9e7142af8899b2f5"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">SVF::ThreadAPI::getTaskFuncAtHareParForSite</a></div><div class="ttdeci">const Value * getTaskFuncAtHareParForSite(const Instruction *inst) const</div><div class="ttdoc">Get the task function (i.e., the 5th parameter) of the hare_parallel_for call. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00195">ThreadAPI.h:195</a></div></div>
804
804
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a3154bbc421fc85649e786ed67ca03750"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">SVF::PTACallGraph::addEdge</a></div><div class="ttdeci">void addEdge(PTACallGraphEdge *edge)</div><div class="ttdoc">Add call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00417">PTACallGraph.h:417</a></div></div>
@@ -1855,14 +1855,14 @@ Additional Inherited Members</h2></td></tr>
1855
1855
 
1856
1856
  <p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00053">53</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
1857
1857
  <div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; PointerAnalysis::CallEdgeMap::const_iterator iter = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>().begin();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; PointerAnalysis::CallEdgeMap::const_iterator eiter = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>().end();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = iter-&gt;first;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> &amp;functions = iter-&gt;second;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter =</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; this-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">addIndirectCallGraphEdge</a>(cs, cs-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">getCaller</a>(), callee);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// Fork sites</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">forksitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">forksitesEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* forkedval = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>((*it)-&gt;getCallSite());</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(SVFUtil::dyn_cast&lt;Function&gt;(forkedval)==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> targets = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(forkedval)).toNodeBS();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">for</span> (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast&lt;ObjVar&gt;(pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = SVFUtil::cast&lt;Function&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>());</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfCallee = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(callee);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; this-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a579dd874301280f7c9750c2a22f065c7">addIndirectForkEdge</a>(*it, svfCallee);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// parallel_for sites</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">for</span> (CallSiteSet::const_iterator it = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a29c74634b17007e5bef6fb48e1f3839f">parForSitesBegin</a>(), eit = <a class="code" href="classSVF_1_1ThreadCallGraph.html#a506343bcd23ba71d2db915ff7c58e728">parForSitesEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* forkedval = <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>((*it)-&gt;getCallSite());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(SVFUtil::dyn_cast&lt;Function&gt;(forkedval)==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> targets = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">getValueNode</a>(forkedval)).toNodeBS();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span> (NodeBS::iterator ii = targets.begin(), ie = targets.end(); ii != ie; ii++)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast&lt;ObjVar&gt;(pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii)))</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* callee = SVFUtil::cast&lt;Function&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>());</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfCallee = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(callee);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; this-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a579dd874301280f7c9750c2a22f065c7">addIndirectForkEdge</a>(*it, svfCallee);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a506343bcd23ba71d2db915ff7c58e728"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a506343bcd23ba71d2db915ff7c58e728">SVF::ThreadCallGraph::parForSitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator parForSitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00301">ThreadCallGraph.h:301</a></div></div>
1858
- <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00392">SymbolTableInfo.h:392</a></div></div>
1858
+ <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00372">SymbolTableInfo.h:372</a></div></div>
1859
1859
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class. </div></div>
1860
1860
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a46416c668e2f0099394e79f685ede758"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a46416c668e2f0099394e79f685ede758">SVF::PTACallGraph::addIndirectCallGraphEdge</a></div><div class="ttdeci">void addIndirectCallGraphEdge(const CallICFGNode *cs, const SVFFunction *callerFun, const SVFFunction *calleeFun)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00187">PTACallGraph.cpp:187</a></div></div>
1861
- <div class="ttc" id="classSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00704">SymbolTableInfo.cpp:704</a></div></div>
1861
+ <div class="ttc" id="classSVF_1_1MemObj_html_ae1d14e2bf0be36cdadebf119822f607b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">SVF::MemObj::isFunction</a></div><div class="ttdeci">bool isFunction() const</div><div class="ttdoc">object attributes methods </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00705">SymbolTableInfo.cpp:705</a></div></div>
1862
1862
  <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>
1863
1863
  <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>
1864
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
1865
- <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00315">SVFVariables.h:315</a></div></div>
1864
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
1865
+ <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00308">SVFVariables.h:308</a></div></div>
1866
1866
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00411">ThreadCallGraph.h:411</a></div></div>
1867
1867
  <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>
1868
1868
  <div class="ttc" id="classSVF_1_1IRGraph_html_abffddd41cc308b9b3bd5ad4a7f8f1624"><div class="ttname"><a href="classSVF_1_1IRGraph.html#abffddd41cc308b9b3bd5ad4a7f8f1624">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00124">IRGraph.h:124</a></div></div>
@@ -1876,7 +1876,7 @@ Additional Inherited Members</h2></td></tr>
1876
1876
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
1877
1877
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00399">ICFGNode.h:399</a></div></div>
1878
1878
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
1879
- <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00416">SymbolTableInfo.h:416</a></div></div>
1879
+ <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00396">SymbolTableInfo.h:396</a></div></div>
1880
1880
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00391">GenericGraph.h:391</a></div></div>
1881
1881
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a29c74634b17007e5bef6fb48e1f3839f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a29c74634b17007e5bef6fb48e1f3839f">SVF::ThreadCallGraph::parForSitesBegin</a></div><div class="ttdeci">CallSiteSet::const_iterator parForSitesBegin() const</div><div class="ttdoc">hare_parallel_for sites iterators </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00297">ThreadCallGraph.h:297</a></div></div>
1882
1882
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
@@ -187,7 +187,7 @@ Additional Inherited Members</h2></td></tr>
187
187
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html">SVF::ThreadCallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00160">ThreadCallGraph.h:160</a></div></div>
188
188
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a86d75b7e3570337e484397e60f97d88e"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a86d75b7e3570337e484397e60f97d88e">SVF::ThreadAPI::isHareParFor</a></div><div class="ttdeci">bool isHareParFor(const Instruction *inst) const</div><div class="ttdoc">Return true if this call proceeds a hare_parallel_for. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00141">ThreadAPI.h:141</a></div></div>
189
189
  <div class="ttc" id="classSVF_1_1CallGraphBuilder_html_aa64a27e99434908a203e566074c66ebc"><div class="ttname"><a href="classSVF_1_1CallGraphBuilder.html#aa64a27e99434908a203e566074c66ebc">SVF::CallGraphBuilder::buildCallGraph</a></div><div class="ttdeci">PTACallGraph * buildCallGraph(SVFModule *svfModule)</div><div class="ttdoc">Build normal callgraph. </div><div class="ttdef"><b>Definition:</b> <a href="CallGraphBuilder_8cpp_source.html#l00038">CallGraphBuilder.cpp:38</a></div></div>
190
- <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a9a4df49ba7ca3ad32d65e5ecf2dad707"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a9a4df49ba7ca3ad32d65e5ecf2dad707">const_inst_iterator</a></div><div class="ttdeci">llvm::const_inst_iterator const_inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00105">BasicTypes.h:105</a></div></div>
190
+ <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a9a4df49ba7ca3ad32d65e5ecf2dad707"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a9a4df49ba7ca3ad32d65e5ecf2dad707">const_inst_iterator</a></div><div class="ttdeci">llvm::const_inst_iterator const_inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00106">BasicTypes.h:106</a></div></div>
191
191
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a8cc5f9ff6039392ce1471cd830973c44"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a8cc5f9ff6039392ce1471cd830973c44">SVF::ThreadAPI::isTDJoin</a></div><div class="ttdeci">bool isTDJoin(const Instruction *inst) const</div><div class="ttdoc">Return true if this call wait for a worker thread. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00223">ThreadAPI.h:223</a></div></div>
192
192
  <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>
193
193
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
@@ -69,25 +69,23 @@ $(function() {
69
69
 
70
70
  <p>This is the complete list of members for <a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html">SVF::ThreadMHPIndSVFGEdge</a>, including all inherited members.</p>
71
71
  <table class="directory">
72
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html#a7ac57ccfe31b6cd6bbc6f15ed22a6531">addMrVer</a>(const MRVer *mr)</td><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
73
- <tr><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html#a50ac2e33c6a4a41291c0a476ed07de53">addPointsTo</a>(const NodeBS &amp;c)</td><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
74
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8383c27feab3f1acc67cacef9744c04a">CallDirVF</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></td><td class="entry"></td></tr>
75
- <tr><td class="entry"><a class="el" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a978c857fcc06d2f988bc9ce16ce10145">CallIndVF</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></td><td class="entry"></td></tr>
76
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html#a4f7b0802389ce183635d5be2a40128bc">classof</a>(const ThreadMHPIndSVFGEdge *)</td><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html">SVF::ThreadMHPIndSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
77
- <tr><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html#a0db2e69a5182d1c30b44e87711558bd9">classof</a>(const IndirectSVFGEdge *edge)</td><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html">SVF::ThreadMHPIndSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
78
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html#a564a1648b45d3563d69401a7f8e31906">classof</a>(const VFGEdge *edge)</td><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html">SVF::ThreadMHPIndSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
79
- <tr><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html#acb948e40582b6cc8b4360f2205b5c926">classof</a>(const GenericVFGEdgeTy *edge)</td><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html">SVF::ThreadMHPIndSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
80
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a93dec4c27088242a4b1b6aa82cea46b9">EdgeKindMask</a></td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
81
- <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a></td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
82
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a69accb303ee67733e065350e4452cbca">equalGEdge</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"></td></tr>
83
- <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"></td></tr>
84
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"></td></tr>
85
- <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a6764973569c281d483afab17a75cb4dc">GenericEdge</a>(NodeTy *s, NodeTy *d, GEdgeFlag k)</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
86
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
87
- <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
88
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
89
- <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a20d8b844fc4bb0bb776d290b4e477fc5">getEdgeKindWithoutMask</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
90
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html#ac08d8b88c44881d87c1299d18c943ace">getMRVer</a>()</td><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
72
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html#a50ac2e33c6a4a41291c0a476ed07de53">addPointsTo</a>(const NodeBS &amp;c)</td><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
73
+ <tr><td class="entry"><a class="el" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8383c27feab3f1acc67cacef9744c04a">CallDirVF</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></td><td class="entry"></td></tr>
74
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a978c857fcc06d2f988bc9ce16ce10145">CallIndVF</a> enum value</td><td class="entry"><a class="el" href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></td><td class="entry"></td></tr>
75
+ <tr><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html#a4f7b0802389ce183635d5be2a40128bc">classof</a>(const ThreadMHPIndSVFGEdge *)</td><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html">SVF::ThreadMHPIndSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
76
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html#a0db2e69a5182d1c30b44e87711558bd9">classof</a>(const IndirectSVFGEdge *edge)</td><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html">SVF::ThreadMHPIndSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
77
+ <tr><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html#a564a1648b45d3563d69401a7f8e31906">classof</a>(const VFGEdge *edge)</td><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html">SVF::ThreadMHPIndSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
78
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html#acb948e40582b6cc8b4360f2205b5c926">classof</a>(const GenericVFGEdgeTy *edge)</td><td class="entry"><a class="el" href="classSVF_1_1ThreadMHPIndSVFGEdge.html">SVF::ThreadMHPIndSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
79
+ <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a93dec4c27088242a4b1b6aa82cea46b9">EdgeKindMask</a></td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
80
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a></td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
81
+ <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a69accb303ee67733e065350e4452cbca">equalGEdge</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"></td></tr>
82
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"></td></tr>
83
+ <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"></td></tr>
84
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a6764973569c281d483afab17a75cb4dc">GenericEdge</a>(NodeTy *s, NodeTy *d, GEdgeFlag k)</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
85
+ <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
86
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
87
+ <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
88
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#a20d8b844fc4bb0bb776d290b4e477fc5">getEdgeKindWithoutMask</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
91
89
  <tr><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
92
90
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
93
91
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericEdge.html">SVF::GenericEdge&lt; NodeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>