svf-tools 1.0.533 → 1.0.536

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 (198) hide show
  1. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -3
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +5 -6
  5. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +10 -10
  7. package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -5
  8. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +2 -2
  10. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +43 -36
  11. package/SVF-doxygen/html/html/ExtAPI_8h.html +2 -0
  12. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +80 -69
  13. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  18. package/SVF-doxygen/html/html/MHP_8cpp_source.html +4 -4
  19. package/SVF-doxygen/html/html/MHP_8h_source.html +1 -1
  20. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
  23. package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +80 -0
  26. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +62 -22
  27. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -10
  28. package/SVF-doxygen/html/html/SVFIRBuilder_8h.html +0 -1
  29. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +60 -62
  30. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +3 -1
  32. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
  33. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  38. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +6 -6
  39. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  40. package/SVF-doxygen/html/html/WPASolver_8h_source.html +17 -18
  41. package/SVF-doxygen/html/html/annotated.html +2 -1
  42. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  43. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +12 -13
  45. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +175 -176
  46. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +5 -7
  47. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +11 -10
  48. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +5 -4
  49. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
  50. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +9 -9
  51. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +160 -208
  52. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +1 -1
  53. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +43 -43
  54. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +1 -1
  55. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +19 -17
  56. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +230 -141
  57. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation-members.html +88 -0
  58. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI_1_1Operation.html +344 -0
  59. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +240 -241
  60. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -3
  61. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +230 -231
  62. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +5 -7
  63. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  64. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +2 -2
  65. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
  66. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  68. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -3
  69. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
  70. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +63 -64
  73. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +306 -348
  74. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +187 -188
  76. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +5 -7
  77. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +179 -180
  80. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -3
  81. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +281 -282
  82. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -8
  83. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  84. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +31 -32
  85. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +1 -3
  86. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver-members.html +42 -43
  87. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +6 -8
  88. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver-members.html +38 -39
  90. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +8 -10
  91. package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +29 -30
  92. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +51 -86
  93. package/SVF-doxygen/html/html/classes.html +90 -90
  94. package/SVF-doxygen/html/html/functions_a.html +8 -5
  95. package/SVF-doxygen/html/html/functions_c.html +19 -20
  96. package/SVF-doxygen/html/html/functions_e.html +4 -7
  97. package/SVF-doxygen/html/html/functions_eval_e.html +2 -5
  98. package/SVF-doxygen/html/html/functions_func_c.html +12 -13
  99. package/SVF-doxygen/html/html/functions_func_g.html +23 -11
  100. package/SVF-doxygen/html/html/functions_func_m.html +0 -1
  101. package/SVF-doxygen/html/html/functions_func_o.html +7 -4
  102. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  103. package/SVF-doxygen/html/html/functions_func_s.html +11 -5
  104. package/SVF-doxygen/html/html/functions_g.html +21 -9
  105. package/SVF-doxygen/html/html/functions_i.html +3 -3
  106. package/SVF-doxygen/html/html/functions_l.html +3 -3
  107. package/SVF-doxygen/html/html/functions_m.html +0 -1
  108. package/SVF-doxygen/html/html/functions_n.html +4 -4
  109. package/SVF-doxygen/html/html/functions_o.html +21 -19
  110. package/SVF-doxygen/html/html/functions_p.html +7 -9
  111. package/SVF-doxygen/html/html/functions_r.html +4 -2
  112. package/SVF-doxygen/html/html/functions_s.html +22 -18
  113. package/SVF-doxygen/html/html/functions_v.html +3 -3
  114. package/SVF-doxygen/html/html/functions_vars_a.html +3 -0
  115. package/SVF-doxygen/html/html/functions_vars_o.html +3 -0
  116. package/SVF-doxygen/html/html/functions_w.html +11 -11
  117. package/SVF-doxygen/html/html/hierarchy.html +99 -98
  118. package/SVF-doxygen/html/html/namespaceSVF.html +741 -21
  119. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +3 -3
  120. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +3 -1
  121. package/SVF-doxygen/html/html/namespacemembers.html +33 -0
  122. package/SVF-doxygen/html/html/namespacemembers_b.html +5 -2
  123. package/SVF-doxygen/html/html/namespacemembers_c.html +6 -0
  124. package/SVF-doxygen/html/html/namespacemembers_d.html +19 -1
  125. package/SVF-doxygen/html/html/namespacemembers_g.html +15 -3
  126. package/SVF-doxygen/html/html/namespacemembers_i.html +16 -4
  127. package/SVF-doxygen/html/html/namespacemembers_m.html +21 -0
  128. package/SVF-doxygen/html/html/namespacemembers_n.html +3 -0
  129. package/SVF-doxygen/html/html/namespacemembers_p.html +3 -0
  130. package/SVF-doxygen/html/html/namespacemembers_s.html +3 -0
  131. package/SVF-doxygen/html/html/namespacemembers_type.html +33 -0
  132. package/SVF-doxygen/html/html/namespacemembers_type_b.html +3 -0
  133. package/SVF-doxygen/html/html/namespacemembers_type_c.html +6 -0
  134. package/SVF-doxygen/html/html/namespacemembers_type_d.html +18 -0
  135. package/SVF-doxygen/html/html/namespacemembers_type_g.html +12 -0
  136. package/SVF-doxygen/html/html/namespacemembers_type_i.html +12 -0
  137. package/SVF-doxygen/html/html/namespacemembers_type_m.html +21 -0
  138. package/SVF-doxygen/html/html/namespacemembers_type_n.html +3 -0
  139. package/SVF-doxygen/html/html/namespacemembers_type_p.html +3 -0
  140. package/SVF-doxygen/html/html/namespacemembers_type_s.html +3 -0
  141. package/SVF-doxygen/html/html/namespacemembers_type_v.html +3 -0
  142. package/SVF-doxygen/html/html/namespacemembers_type_w.html +3 -0
  143. package/SVF-doxygen/html/html/namespacemembers_v.html +3 -0
  144. package/SVF-doxygen/html/html/namespacemembers_w.html +3 -0
  145. package/SVF-doxygen/html/html/search/all_1.js +12 -0
  146. package/SVF-doxygen/html/html/search/all_10.js +8 -7
  147. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  148. package/SVF-doxygen/html/html/search/all_12.js +12 -9
  149. package/SVF-doxygen/html/html/search/all_13.js +3 -3
  150. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  151. package/SVF-doxygen/html/html/search/all_15.js +4 -3
  152. package/SVF-doxygen/html/html/search/all_16.js +2 -1
  153. package/SVF-doxygen/html/html/search/all_2.js +1 -0
  154. package/SVF-doxygen/html/html/search/all_3.js +4 -2
  155. package/SVF-doxygen/html/html/search/all_4.js +6 -0
  156. package/SVF-doxygen/html/html/search/all_5.js +1 -2
  157. package/SVF-doxygen/html/html/search/all_7.js +9 -1
  158. package/SVF-doxygen/html/html/search/all_9.js +5 -1
  159. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  160. package/SVF-doxygen/html/html/search/all_d.js +8 -1
  161. package/SVF-doxygen/html/html/search/all_e.js +2 -1
  162. package/SVF-doxygen/html/html/search/all_f.js +3 -2
  163. package/SVF-doxygen/html/html/search/classes_c.js +1 -0
  164. package/SVF-doxygen/html/html/search/enumvalues_4.js +1 -2
  165. package/SVF-doxygen/html/html/search/functions_11.js +2 -0
  166. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  167. package/SVF-doxygen/html/html/search/functions_6.js +5 -1
  168. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  169. package/SVF-doxygen/html/html/search/functions_e.js +1 -0
  170. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  171. package/SVF-doxygen/html/html/search/typedefs_0.js +11 -0
  172. package/SVF-doxygen/html/html/search/typedefs_1.js +1 -0
  173. package/SVF-doxygen/html/html/search/typedefs_10.js +1 -0
  174. package/SVF-doxygen/html/html/search/typedefs_13.js +1 -0
  175. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -0
  176. package/SVF-doxygen/html/html/search/typedefs_2.js +2 -0
  177. package/SVF-doxygen/html/html/search/typedefs_3.js +6 -0
  178. package/SVF-doxygen/html/html/search/typedefs_6.js +4 -0
  179. package/SVF-doxygen/html/html/search/typedefs_7.js +4 -0
  180. package/SVF-doxygen/html/html/search/typedefs_b.js +7 -0
  181. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -0
  182. package/SVF-doxygen/html/html/search/typedefs_e.js +1 -0
  183. package/SVF-doxygen/html/html/search/variables_1.js +1 -0
  184. package/SVF-doxygen/html/html/search/variables_13.js +1 -1
  185. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  186. package/SVF-doxygen/html/html/search/variables_f.js +1 -0
  187. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  188. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  189. package/include/SVF-FE/BasicTypes.h +43 -0
  190. package/include/SVF-FE/SVFIRBuilder.h +0 -2
  191. package/include/Util/ExtAPI.h +49 -5
  192. package/include/Util/ExtAPI.json +1312 -320
  193. package/include/WPA/Andersen.h +1 -4
  194. package/include/WPA/WPASolver.h +1 -3
  195. package/lib/SVF-FE/SVFIRBuilder.cpp +219 -238
  196. package/lib/Util/ExtAPI.cpp +109 -0
  197. package/lib/WPA/AndersenWaveDiff.cpp +0 -14
  198. package/package.json +1 -1
@@ -590,10 +590,8 @@ Additional Inherited Members</h2></td></tr>
590
590
  <tr class="memitem:abd7fd785e70f66d394088101d78598ca inherit pro_methods_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#abd7fd785e70f66d394088101d78598ca">processNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>)</td></tr>
591
591
  <tr class="memdesc:abd7fd785e70f66d394088101d78598ca inherit pro_methods_classSVF_1_1WPASolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Following methods are to be implemented in child class, in order to achieve a fully worked PTA. <a href="classSVF_1_1WPASolver.html#abd7fd785e70f66d394088101d78598ca">More...</a><br /></td></tr>
592
592
  <tr class="separator:abd7fd785e70f66d394088101d78598ca inherit pro_methods_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
593
- <tr class="memitem:a138b403af0370ad6fdf8cc6af0530392 inherit pro_methods_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#a138b403af0370ad6fdf8cc6af0530392">collapsePWCNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>)</td></tr>
594
- <tr class="memdesc:a138b403af0370ad6fdf8cc6af0530392 inherit pro_methods_classSVF_1_1WPASolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">collapse positive weight cycles of a graph <a href="classSVF_1_1WPASolver.html#a138b403af0370ad6fdf8cc6af0530392">More...</a><br /></td></tr>
595
- <tr class="separator:a138b403af0370ad6fdf8cc6af0530392 inherit pro_methods_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
596
593
  <tr class="memitem:a79c2b3f10f3f813396d8caaa1f7bc62a inherit pro_methods_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#a79c2b3f10f3f813396d8caaa1f7bc62a">collapseFields</a> ()</td></tr>
594
+ <tr class="memdesc:a79c2b3f10f3f813396d8caaa1f7bc62a inherit pro_methods_classSVF_1_1WPASolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">collapse positive weight cycles of a graph <a href="classSVF_1_1WPASolver.html#a79c2b3f10f3f813396d8caaa1f7bc62a">More...</a><br /></td></tr>
597
595
  <tr class="separator:a79c2b3f10f3f813396d8caaa1f7bc62a inherit pro_methods_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
598
596
  <tr class="memitem:a541ef7fda44ce79086c30b07a5f6126c inherit pro_methods_classSVF_1_1WPASolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1WPASolver.html#a541ef7fda44ce79086c30b07a5f6126c">propagate</a> (<a class="el" href="classSVF_1_1WPASolver.html#a2b0c0c4d1f172e8eeae0230fa09f365e">GNODE</a> *v)</td></tr>
599
597
  <tr class="separator:a541ef7fda44ce79086c30b07a5f6126c inherit pro_methods_classSVF_1_1WPASolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -962,7 +960,7 @@ Additional Inherited Members</h2></td></tr>
962
960
  <p>merge node into equiv class and merge node's pts into ec's pts </p>
963
961
 
964
962
  <p class="definition">Definition at line <a class="el" href="Steensgaard_8cpp_source.html#l00074">74</a> of file <a class="el" href="Steensgaard_8cpp_source.html">Steensgaard.cpp</a>.</p>
965
- <div class="fragment"><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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Steensgaard.html#a61524c5a3521939b1546c78c68730c20">unionPts</a>(ec, node))</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(ec);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1Steensgaard.html#aa283cff49b0d340956649a95465b82b6">setEC</a>(node,ec);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="ttc" id="classSVF_1_1WPASolver_html_a4af1c3e72f5af96c4facff672108da58"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">SVF::WPASolver::pushIntoWorklist</a></div><div class="ttdeci">virtual void pushIntoWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00162">WPASolver.h:162</a></div></div>
963
+ <div class="fragment"><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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Steensgaard.html#a61524c5a3521939b1546c78c68730c20">unionPts</a>(ec, node))</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(ec);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1Steensgaard.html#aa283cff49b0d340956649a95465b82b6">setEC</a>(node,ec);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="ttc" id="classSVF_1_1WPASolver_html_a4af1c3e72f5af96c4facff672108da58"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">SVF::WPASolver::pushIntoWorklist</a></div><div class="ttdeci">virtual void pushIntoWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00160">WPASolver.h:160</a></div></div>
966
964
  <div class="ttc" id="classSVF_1_1Steensgaard_html_aa283cff49b0d340956649a95465b82b6"><div class="ttname"><a href="classSVF_1_1Steensgaard.html#aa283cff49b0d340956649a95465b82b6">SVF::Steensgaard::setEC</a></div><div class="ttdeci">void setEC(NodeID node, NodeID rep)</div><div class="ttdef"><b>Definition:</b> <a href="Steensgaard_8cpp_source.html#l00060">Steensgaard.cpp:60</a></div></div>
967
965
  <div class="ttc" id="classSVF_1_1Steensgaard_html_a61524c5a3521939b1546c78c68730c20"><div class="ttname"><a href="classSVF_1_1Steensgaard.html#a61524c5a3521939b1546c78c68730c20">SVF::Steensgaard::unionPts</a></div><div class="ttdeci">virtual bool unionPts(NodeID id, const PointsTo &amp;target)</div><div class="ttdoc">pts(id) = pts(id) U target </div><div class="ttdef"><b>Definition:</b> <a href="Steensgaard_8h_source.html#l00080">Steensgaard.h:80</a></div></div>
968
966
  </div><!-- fragment -->
@@ -1080,7 +1078,7 @@ Additional Inherited Members</h2></td></tr>
1080
1078
 
1081
1079
  <p class="definition">Definition at line <a class="el" href="Steensgaard_8cpp_source.html#l00084">84</a> of file <a class="el" href="Steensgaard_8cpp_source.html">Steensgaard.cpp</a>.</p>
1082
1080
  <div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">ConstraintGraph::const_iterator</a> nodeIt = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), nodeEit = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); nodeIt != nodeEit; nodeIt++)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> * cgNode = nodeIt-&gt;second;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = cgNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a19c1ed324f65f4cc58dd2fd21ed4a971">incomingAddrsBegin</a>(), eit = cgNode-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#ae8ac9ad8e766b961c7ce06d7219f37af">incomingAddrsEnd</a>();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; it != eit; ++it)</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; <a class="code" href="classSVF_1_1AndersenBase.html#a4acad18a6eb585ba9e3d2276dd591067">numOfProcessedAddr</a>++;</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="keyword">const</span> <a class="code" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a>* addr = cast&lt;AddrCGEdge&gt;(*it);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = addr-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src = addr-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1BVDataPTAImpl.html#af68485a2208553579f9c2e4b2cb20cff">addPts</a>(dst,src))</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dst);</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; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
1083
- <div class="ttc" id="classSVF_1_1WPASolver_html_a4af1c3e72f5af96c4facff672108da58"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">SVF::WPASolver::pushIntoWorklist</a></div><div class="ttdeci">virtual void pushIntoWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00162">WPASolver.h:162</a></div></div>
1081
+ <div class="ttc" id="classSVF_1_1WPASolver_html_a4af1c3e72f5af96c4facff672108da58"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">SVF::WPASolver::pushIntoWorklist</a></div><div class="ttdeci">virtual void pushIntoWorklist(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00160">WPASolver.h:160</a></div></div>
1084
1082
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
1085
1083
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
1086
1084
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_ab1868f04de44f6fe1e9ac14f3d4ee56b"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">SVF::ConstraintNode::const_iterator</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00045">ConsGNode.h:45</a></div></div>
@@ -1196,10 +1194,10 @@ Additional Inherited Members</h2></td></tr>
1196
1194
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
1197
1195
  <div class="ttc" id="classSVF_1_1Steensgaard_html_a191e77e62916d868b2af730264e26dd8"><div class="ttname"><a href="classSVF_1_1Steensgaard.html#a191e77e62916d868b2af730264e26dd8">SVF::Steensgaard::ecUnion</a></div><div class="ttdeci">void ecUnion(NodeID id, NodeID ec)</div><div class="ttdoc">merge node into equiv class and merge node&amp;#39;s pts into ec&amp;#39;s pts </div><div class="ttdef"><b>Definition:</b> <a href="Steensgaard_8cpp_source.html#l00074">Steensgaard.cpp:74</a></div></div>
1198
1196
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_a59ab1cea514100c63ee179e3e9a5aa0a"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a59ab1cea514100c63ee179e3e9a5aa0a">SVF::ConstraintNode::getLoadOutEdges</a></div><div class="ttdeci">const ConstraintEdge::ConstraintEdgeSetTy &amp; getLoadOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00144">ConsGNode.h:144</a></div></div>
1199
- <div class="ttc" id="classSVF_1_1WPASolver_html_a992b105a0ec126050a123e24db3bd45b"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a992b105a0ec126050a123e24db3bd45b">SVF::WPASolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00166">WPASolver.h:166</a></div></div>
1197
+ <div class="ttc" id="classSVF_1_1WPASolver_html_a992b105a0ec126050a123e24db3bd45b"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a992b105a0ec126050a123e24db3bd45b">SVF::WPASolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00164">WPASolver.h:164</a></div></div>
1200
1198
  <div class="ttc" id="classSVF_1_1Steensgaard_html_ada542b3e393f23938d37e479008e8cc0"><div class="ttname"><a href="classSVF_1_1Steensgaard.html#ada542b3e393f23938d37e479008e8cc0">SVF::Steensgaard::processAllAddr</a></div><div class="ttdeci">void processAllAddr()</div><div class="ttdef"><b>Definition:</b> <a href="Steensgaard_8cpp_source.html#l00084">Steensgaard.cpp:84</a></div></div>
1201
1199
  <div class="ttc" id="classSVF_1_1ConstraintNode_html"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html">SVF::ConstraintNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00040">ConsGNode.h:40</a></div></div>
1202
- <div class="ttc" id="classSVF_1_1WPASolver_html_a20a14ac31fe23d4fe67da15f5cc498df"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a20a14ac31fe23d4fe67da15f5cc498df">SVF::WPASolver::popFromWorklist</a></div><div class="ttdeci">NodeID popFromWorklist()</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00157">WPASolver.h:157</a></div></div>
1200
+ <div class="ttc" id="classSVF_1_1WPASolver_html_a20a14ac31fe23d4fe67da15f5cc498df"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a20a14ac31fe23d4fe67da15f5cc498df">SVF::WPASolver::popFromWorklist</a></div><div class="ttdeci">NodeID popFromWorklist()</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00155">WPASolver.h:155</a></div></div>
1203
1201
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_ab77173aa8af6155b569f20ff0cdcec72"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ab77173aa8af6155b569f20ff0cdcec72">SVF::ConstraintNode::getCopyOutEdges</a></div><div class="ttdeci">const ConstraintEdge::ConstraintEdgeSetTy &amp; getCopyOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00128">ConsGNode.h:128</a></div></div>
1204
1202
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_a19d3d2c996ba821227a836717e5443c8"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a19d3d2c996ba821227a836717e5443c8">SVF::ConstraintNode::getGepOutEdges</a></div><div class="ttdeci">const ConstraintEdge::ConstraintEdgeSetTy &amp; getGepOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00136">ConsGNode.h:136</a></div></div>
1205
1203
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_aed5e1f0345aab58031daecfa0c6aac0b"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#aed5e1f0345aab58031daecfa0c6aac0b">SVF::ConstraintNode::getStoreInEdges</a></div><div class="ttdeci">const ConstraintEdge::ConstraintEdgeSetTy &amp; getStoreInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00148">ConsGNode.h:148</a></div></div>
@@ -363,7 +363,7 @@ Private Attributes</h2></td></tr>
363
363
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ab5c9d593aa68c7150cd382db230eec3e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ab5c9d593aa68c7150cd382db230eec3e">SVF::SymbolTableInfo::createConstantObj</a></div><div class="ttdeci">MemObj * createConstantObj(SymID symId)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00416">SymbolTableInfo.cpp:416</a></div></div>
364
364
  <div class="ttc" id="classSVF_1_1SymbolTableBuilder_html_add1f3d59a4a8234fb398ed52d4b2115e"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html#add1f3d59a4a8234fb398ed52d4b2115e">SVF::SymbolTableBuilder::collectVararg</a></div><div class="ttdeci">void collectVararg(const Function *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8cpp_source.html#l00378">SymbolTableBuilder.cpp:378</a></div></div>
365
365
  <div class="ttc" id="classSVF_1_1SVFModule_html_a8a34164634d6ad9a7b76175907c8c44b"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a8a34164634d6ad9a7b76175907c8c44b">SVF::SVFModule::global_end</a></div><div class="ttdeci">global_iterator global_end()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00181">SVFModule.h:181</a></div></div>
366
- <div class="ttc" id="namespaceSVF_html_a255af6ff30782cb9a548feadb0fe7d6b"><div class="ttname"><a href="namespaceSVF.html#a255af6ff30782cb9a548feadb0fe7d6b">SVF::inst_iterator</a></div><div class="ttdeci">llvm::inst_iterator inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
366
+ <div class="ttc" id="namespaceSVF_html_a255af6ff30782cb9a548feadb0fe7d6b"><div class="ttname"><a href="namespaceSVF.html#a255af6ff30782cb9a548feadb0fe7d6b">SVF::inst_iterator</a></div><div class="ttdeci">llvm::inst_iterator inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00157">BasicTypes.h:157</a></div></div>
367
367
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a0d7588578735679773493ff2d5e458e1"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a0d7588578735679773493ff2d5e458e1">SVF::SVFUtil::increaseStackSize</a></div><div class="ttdeci">void increaseStackSize()</div><div class="ttdoc">Increase the stack size limit. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00227">SVFUtil.cpp:227</a></div></div>
368
368
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
369
369
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a4f916c64ca04c4db30bd19fb8505724d"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a4f916c64ca04c4db30bd19fb8505724d">SVF::SymbolTableInfo::setModule</a></div><div class="ttdeci">void setModule(SVFModule *m)</div><div class="ttdoc">Module. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00157">SymbolTableInfo.h:157</a></div></div>
@@ -169,7 +169,7 @@ Additional Inherited Members</h2></td></tr>
169
169
  <div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1CallGraphBuilder.html#aa64a27e99434908a203e566074c66ebc">buildCallGraph</a>(svfModule);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1ThreadCallGraph.html">ThreadCallGraph</a>* cg = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1ThreadCallGraph.html">ThreadCallGraph</a>&gt;(<a class="code" href="classSVF_1_1CallGraphBuilder.html#a77ccca4e81eb1199c89d75e1b2d21af6">callgraph</a>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; assert(cg &amp;&amp; <span class="stringliteral">&quot;not a thread callgraph?&quot;</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1ThreadAPI.html">ThreadAPI</a>* tdAPI = <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#ab86e221a93bec67a2ecb7cb53315f569">SVFModule::llvm_const_iterator</a> fi = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), efi = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); fi != efi; ++fi)</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="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun = *fi;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a032e8478a7b6a8bb0b7755c98a7bce91">const_inst_iterator</a> II = inst_begin(*fun), E = inst_end(*fun); II != E; ++II)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = &amp;*II;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (tdAPI-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">isTDFork</a>(inst))</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</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_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1CallGraphBuilder.html#ab3e0b47be010e25c093953e54602d211">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; cg-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a563ebb1ece0adb4bafe5e14b2a024a91">addForksite</a>(cs);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</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;(tdAPI-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>(inst));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (forkee)</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; cg-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a19e505dbca2d2b5128762b223b9a7114">addDirectForkEdge</a>(cs);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// indirect call to the start routine function</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; cg-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">addThreadForkEdgeSetMap</a>(cs,<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (tdAPI-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a86d75b7e3570337e484397e60f97d88e">isHareParFor</a>(inst))</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1CallGraphBuilder.html#ab3e0b47be010e25c093953e54602d211">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; cg-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a69719915e8c23e3afd6766daea946ffe">addParForSite</a>(cs);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</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;(tdAPI-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>(inst));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (taskFunc)</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; cg-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#ae942f7d46198207219e5ce8287497262">addDirectParForEdge</a>(cs);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// indirect call to the start routine function</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; cg-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#aae1caa7231ab9436db98403d6a175149">addHareParForEdgeSetMap</a>(cs,<span class="keyword">nullptr</span>);</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; <span class="comment">// record join sites</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#ab86e221a93bec67a2ecb7cb53315f569">SVFModule::llvm_const_iterator</a> fi = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), efi = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); fi != efi; ++fi)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun = *fi;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a032e8478a7b6a8bb0b7755c98a7bce91">const_inst_iterator</a> II = inst_begin(*fun), E = inst_end(*fun); II != E; ++II)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = &amp;*II;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (tdAPI-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a8cc5f9ff6039392ce1471cd830973c44">isTDJoin</a>(inst))</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1CallGraphBuilder.html#ab3e0b47be010e25c093953e54602d211">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; cg-&gt;<a class="code" href="classSVF_1_1ThreadCallGraph.html#a795d504a098634b1725af272b37e46e7">addJoinsite</a>(cs);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> cg;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00147">SVFModule.h:147</a></div></div>
170
170
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a9da276dca5092d18f4f22d32e5ab6cdf"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">SVF::ThreadAPI::isTDFork</a></div><div class="ttdeci">bool isTDFork(const Instruction *inst) const</div><div class="ttdoc">Return true if this call create a new thread. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00129">ThreadAPI.h:129</a></div></div>
171
171
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a795d504a098634b1725af272b37e46e7"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a795d504a098634b1725af272b37e46e7">SVF::ThreadCallGraph::addJoinsite</a></div><div class="ttdeci">bool addJoinsite(const CallICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00336">ThreadCallGraph.h:336</a></div></div>
172
- <div class="ttc" id="namespaceSVF_html_a032e8478a7b6a8bb0b7755c98a7bce91"><div class="ttname"><a href="namespaceSVF.html#a032e8478a7b6a8bb0b7755c98a7bce91">SVF::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#l00117">BasicTypes.h:117</a></div></div>
172
+ <div class="ttc" id="namespaceSVF_html_a032e8478a7b6a8bb0b7755c98a7bce91"><div class="ttname"><a href="namespaceSVF.html#a032e8478a7b6a8bb0b7755c98a7bce91">SVF::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#l00160">BasicTypes.h:160</a></div></div>
173
173
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a563ebb1ece0adb4bafe5e14b2a024a91"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a563ebb1ece0adb4bafe5e14b2a024a91">SVF::ThreadCallGraph::addForksite</a></div><div class="ttdeci">bool addForksite(const CallICFGNode *cs)</div><div class="ttdoc">Add fork sites which directly or indirectly create a thread. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00331">ThreadCallGraph.h:331</a></div></div>
174
174
  <div class="ttc" id="classSVF_1_1SVFModule_html_a648542aa5c4b487ad5aa12a39d15e951"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">SVF::SVFModule::llvmFunBegin</a></div><div class="ttdeci">llvm_iterator llvmFunBegin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00139">SVFModule.h:139</a></div></div>
175
175
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_ab20211a66583387f0da4769bee65e300"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">SVF::ThreadCallGraph::addThreadForkEdgeSetMap</a></div><div class="ttdeci">void addThreadForkEdgeSetMap(const CallICFGNode *cs, ThreadForkEdge *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#l00367">ThreadCallGraph.h:367</a></div></div>