svf-tools 1.0.510 → 1.0.511

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 (45) hide show
  1. package/.gitignore +1 -0
  2. package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +2 -2
  5. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +4 -13
  6. package/SVF-doxygen/html/html/Andersen_8h_source.html +34 -35
  7. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -3
  9. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +29 -29
  10. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +19 -19
  11. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +28 -28
  12. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +74 -75
  13. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +14 -138
  14. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
  15. package/SVF-doxygen/html/html/functions_func_h.html +3 -4
  16. package/SVF-doxygen/html/html/functions_func_p.html +1 -5
  17. package/SVF-doxygen/html/html/functions_h.html +4 -5
  18. package/SVF-doxygen/html/html/functions_o.html +3 -3
  19. package/SVF-doxygen/html/html/functions_p.html +11 -19
  20. package/SVF-doxygen/html/html/functions_r.html +9 -5
  21. package/SVF-doxygen/html/html/functions_s.html +18 -16
  22. package/SVF-doxygen/html/html/functions_t.html +5 -7
  23. package/SVF-doxygen/html/html/functions_v.html +3 -3
  24. package/SVF-doxygen/html/html/functions_w.html +11 -11
  25. package/SVF-doxygen/html/html/search/all_10.js +6 -7
  26. package/SVF-doxygen/html/html/search/all_11.js +2 -2
  27. package/SVF-doxygen/html/html/search/all_12.js +9 -9
  28. package/SVF-doxygen/html/html/search/all_13.js +3 -3
  29. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  30. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  31. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  32. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  33. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  34. package/SVF-doxygen/html/html/search/all_c.js +1 -1
  35. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  36. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  37. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  38. package/SVF-doxygen/html/html/search/functions_f.js +2 -3
  39. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  40. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  41. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  42. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  43. package/include/WPA/Andersen.h +0 -8
  44. package/lib/WPA/AndersenWaveDiff.cpp +0 -40
  45. package/package.json +1 -1
@@ -98,14 +98,10 @@ Public Member Functions</h2></td></tr>
98
98
  <tr class="separator:afa1055cda6c910b24480505efd205895"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
99
  <tr class="memitem:aa0659a2787c1f9b1b6ec62900313475e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenWaveDiff.html#aa0659a2787c1f9b1b6ec62900313475e">postProcessNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</td></tr>
100
100
  <tr class="separator:aa0659a2787c1f9b1b6ec62900313475e"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
- <tr class="memitem:ad5c85a28967cc3f62e663dc00a8aa8c9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenWaveDiff.html#ad5c85a28967cc3f62e663dc00a8aa8c9">handleCopyGep</a> (<a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *node)</td></tr>
102
- <tr class="separator:ad5c85a28967cc3f62e663dc00a8aa8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
103
101
  <tr class="memitem:a7f2af504c4fb96e64371a8533c0525fe"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenWaveDiff.html#a7f2af504c4fb96e64371a8533c0525fe">handleLoad</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id, const <a class="el" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a> *load)</td></tr>
104
102
  <tr class="separator:a7f2af504c4fb96e64371a8533c0525fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
103
  <tr class="memitem:a775a74d57842b85301daeafe64c8a5c4"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenWaveDiff.html#a775a74d57842b85301daeafe64c8a5c4">handleStore</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id, const <a class="el" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a> *store)</td></tr>
106
104
  <tr class="separator:a775a74d57842b85301daeafe64c8a5c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
107
- <tr class="memitem:a3a5b952c0c2fe2be1b9a6fcfeeba2c37"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenWaveDiff.html#a3a5b952c0c2fe2be1b9a6fcfeeba2c37">processCopy</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node, const <a class="el" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a> *edge)</td></tr>
108
- <tr class="separator:a3a5b952c0c2fe2be1b9a6fcfeeba2c37"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
105
  <tr class="inherit_header pub_methods_classSVF_1_1Andersen"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1Andersen')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1Andersen.html">SVF::Andersen</a></td></tr>
110
106
  <tr class="memitem:a680dc709c0263fc1a13aa5c81d95fc72 inherit pub_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a680dc709c0263fc1a13aa5c81d95fc72">Andersen</a> (<a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> *_pag, <a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PTATY</a> <a class="el" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>=<a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6">Andersen_WPA</a>, bool alias_check=<a class="el" href="cJSON_8cpp.html#a930920b2bc42824a5c03be681830f4b2">true</a>)</td></tr>
111
107
  <tr class="memdesc:a680dc709c0263fc1a13aa5c81d95fc72 inherit pub_methods_classSVF_1_1Andersen"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1Andersen.html#a680dc709c0263fc1a13aa5c81d95fc72">More...</a><br /></td></tr>
@@ -378,9 +374,6 @@ Protected Member Functions</h2></td></tr>
378
374
  <tr class="memitem:acdc82c72b14e012551a460fa91a634db"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenWaveDiff.html#acdc82c72b14e012551a460fa91a634db">mergeNodeToRep</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newRepId)</td></tr>
379
375
  <tr class="memdesc:acdc82c72b14e012551a460fa91a634db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Merge sub node to its rep. <a href="#acdc82c72b14e012551a460fa91a634db">More...</a><br /></td></tr>
380
376
  <tr class="separator:acdc82c72b14e012551a460fa91a634db"><td class="memSeparator" colspan="2">&#160;</td></tr>
381
- <tr class="memitem:a57c7c12ebcf06f2912e93c802c6cdd02"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenWaveDiff.html#a57c7c12ebcf06f2912e93c802c6cdd02">processCast</a> (const <a class="el" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a> *)</td></tr>
382
- <tr class="memdesc:a57c7c12ebcf06f2912e93c802c6cdd02"><td class="mdescLeft">&#160;</td><td class="mdescRight">process "bitcast" <a class="el" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a> <a href="#a57c7c12ebcf06f2912e93c802c6cdd02">More...</a><br /></td></tr>
383
- <tr class="separator:a57c7c12ebcf06f2912e93c802c6cdd02"><td class="memSeparator" colspan="2">&#160;</td></tr>
384
377
  <tr class="inherit_header pro_methods_classSVF_1_1Andersen"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1Andersen')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1Andersen.html">SVF::Andersen</a></td></tr>
385
378
  <tr class="memitem:a7b1b9e9b25b5643440aca77e23a8de07 inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a7b1b9e9b25b5643440aca77e23a8de07">heapAllocatorViaIndCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, <a class="el" href="namespaceSVF.html#ac82022f3f81965c3ce9b26c299f537a7">NodePairSet</a> &amp;cpySrcNodes)</td></tr>
386
379
  <tr class="separator:a7b1b9e9b25b5643440aca77e23a8de07 inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -436,8 +429,12 @@ Protected Member Functions</h2></td></tr>
436
429
  <tr class="separator:abc20264231658b99998bc4af1f03a4de inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
437
430
  <tr class="memitem:ac262d42d45dc6130cb031d5b0ed1f024 inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#ac262d42d45dc6130cb031d5b0ed1f024">processStore</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node, const <a class="el" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a> *load)</td></tr>
438
431
  <tr class="separator:ac262d42d45dc6130cb031d5b0ed1f024 inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
432
+ <tr class="memitem:ac4afe532655c3f311143ebbe15175ca2 inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#ac4afe532655c3f311143ebbe15175ca2">processCopy</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node, const <a class="el" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a> *edge)</td></tr>
433
+ <tr class="separator:ac4afe532655c3f311143ebbe15175ca2 inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
439
434
  <tr class="memitem:aa697d4a6fe09dd6e50abb09228b3567f inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#aa697d4a6fe09dd6e50abb09228b3567f">processGep</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node, const <a class="el" href="classSVF_1_1GepCGEdge.html">GepCGEdge</a> *edge)</td></tr>
440
435
  <tr class="separator:aa697d4a6fe09dd6e50abb09228b3567f inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
436
+ <tr class="memitem:ab069683dd6ca563113efbde2813ab35e inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#ab069683dd6ca563113efbde2813ab35e">handleCopyGep</a> (<a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *node)</td></tr>
437
+ <tr class="separator:ab069683dd6ca563113efbde2813ab35e inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
441
438
  <tr class="memitem:a0f32ba8cb1109c257552fa775a007ffd inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a0f32ba8cb1109c257552fa775a007ffd">handleLoadStore</a> (<a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *node)</td></tr>
442
439
  <tr class="separator:a0f32ba8cb1109c257552fa775a007ffd inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2">&#160;</td></tr>
443
440
  <tr class="memitem:aca095e135edb5d27efe76bb7ee71184c inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#aca095e135edb5d27efe76bb7ee71184c">processAddr</a> (const <a class="el" href="classSVF_1_1AddrCGEdge.html">AddrCGEdge</a> *addr)</td></tr>
@@ -875,48 +872,6 @@ Additional Inherited Members</h2></td></tr>
875
872
  </div><!-- fragment -->
876
873
  </div>
877
874
  </div>
878
- <a id="ad5c85a28967cc3f62e663dc00a8aa8c9"></a>
879
- <h2 class="memtitle"><span class="permalink"><a href="#ad5c85a28967cc3f62e663dc00a8aa8c9">&#9670;&nbsp;</a></span>handleCopyGep()</h2>
880
-
881
- <div class="memitem">
882
- <div class="memproto">
883
- <table class="mlabels">
884
- <tr>
885
- <td class="mlabels-left">
886
- <table class="memname">
887
- <tr>
888
- <td class="memname">void AndersenWaveDiff::handleCopyGep </td>
889
- <td>(</td>
890
- <td class="paramtype"><a class="el" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a> *&#160;</td>
891
- <td class="paramname"><em>node</em></td><td>)</td>
892
- <td></td>
893
- </tr>
894
- </table>
895
- </td>
896
- <td class="mlabels-right">
897
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
898
- </tr>
899
- </table>
900
- </div><div class="memdoc">
901
- <p>Handle copy gep </p>
902
-
903
- <p>Reimplemented from <a class="el" href="classSVF_1_1Andersen.html#ab069683dd6ca563113efbde2813ab35e">SVF::Andersen</a>.</p>
904
-
905
- <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00136">136</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
906
- <div class="fragment"><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="classSVF_1_1Andersen.html#a7e26ac6fb40684694f7ff2aadfde8bc7">computeDiffPts</a>(nodeId);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1Andersen.html#a106691684d8e7a69157d423393d83d66">getDiffPts</a>(nodeId).empty())</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge : node-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#ab77173aa8af6155b569f20ff0cdcec72">getCopyOutEdges</a>())</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a>* copyEdge = SVFUtil::dyn_cast&lt;CopyCGEdge&gt;(edge))</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a3a5b952c0c2fe2be1b9a6fcfeeba2c37">processCopy</a>(nodeId, copyEdge);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge : node-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a19d3d2c996ba821227a836717e5443c8">getGepOutEdges</a>())</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepCGEdge.html">GepCGEdge</a>* gepEdge = SVFUtil::dyn_cast&lt;GepCGEdge&gt;(edge))</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="classSVF_1_1Andersen.html#aa697d4a6fe09dd6e50abb09228b3567f">processGep</a>(nodeId, gepEdge);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="ttc" id="classSVF_1_1Andersen_html_a106691684d8e7a69157d423393d83d66"><div class="ttname"><a href="classSVF_1_1Andersen.html#a106691684d8e7a69157d423393d83d66">SVF::Andersen::getDiffPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getDiffPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00276">Andersen.h:276</a></div></div>
907
- <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>
908
- <div class="ttc" id="classSVF_1_1GepCGEdge_html"><div class="ttname"><a href="classSVF_1_1GepCGEdge.html">SVF::GepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00225">ConsGEdge.h:225</a></div></div>
909
- <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a3a5b952c0c2fe2be1b9a6fcfeeba2c37"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a3a5b952c0c2fe2be1b9a6fcfeeba2c37">SVF::AndersenWaveDiff::processCopy</a></div><div class="ttdeci">virtual bool processCopy(NodeID node, const ConstraintEdge *edge)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenWaveDiff_8cpp_source.html#l00189">AndersenWaveDiff.cpp:189</a></div></div>
910
- <div class="ttc" id="classSVF_1_1CopyCGEdge_html"><div class="ttname"><a href="classSVF_1_1CopyCGEdge.html">SVF::CopyCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00124">ConsGEdge.h:124</a></div></div>
911
- <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>
912
- <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>
913
- <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
914
- <div class="ttc" id="classSVF_1_1Andersen_html_a7e26ac6fb40684694f7ff2aadfde8bc7"><div class="ttname"><a href="classSVF_1_1Andersen.html#a7e26ac6fb40684694f7ff2aadfde8bc7">SVF::Andersen::computeDiffPts</a></div><div class="ttdeci">virtual void computeDiffPts(NodeID id)</div><div class="ttdoc">Handle diff points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00268">Andersen.h:268</a></div></div>
915
- <div class="ttc" id="classSVF_1_1ConstraintEdge_html"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html">SVF::ConstraintEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00048">ConsGEdge.h:48</a></div></div>
916
- <div class="ttc" id="classSVF_1_1Andersen_html_aa697d4a6fe09dd6e50abb09228b3567f"><div class="ttname"><a href="classSVF_1_1Andersen.html#aa697d4a6fe09dd6e50abb09228b3567f">SVF::Andersen::processGep</a></div><div class="ttdeci">virtual bool processGep(NodeID node, const GepCGEdge *edge)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00383">Andersen.cpp:383</a></div></div>
917
- </div><!-- fragment -->
918
- </div>
919
- </div>
920
875
  <a id="a7f2af504c4fb96e64371a8533c0525fe"></a>
921
876
  <h2 class="memtitle"><span class="permalink"><a href="#a7f2af504c4fb96e64371a8533c0525fe">&#9670;&nbsp;</a></span>handleLoad()</h2>
922
877
 
@@ -952,8 +907,8 @@ Additional Inherited Members</h2></td></tr>
952
907
  </div><div class="memdoc">
953
908
  <p>Handle load </p>
954
909
 
955
- <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00155">155</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
956
- <div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).begin(), epiter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).end();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; piter != epiter; ++piter)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#abc20264231658b99998bc4af1f03a4de">processLoad</a>(*piter, edge))</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; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div><div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00216">Andersen.h:216</a></div></div>
910
+ <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00136">136</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
911
+ <div class="fragment"><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).begin(), epiter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).end();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; piter != epiter; ++piter)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#abc20264231658b99998bc4af1f03a4de">processLoad</a>(*piter, edge))</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div><div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00216">Andersen.h:216</a></div></div>
957
912
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
958
913
  <div class="ttc" id="classSVF_1_1Andersen_html_abc20264231658b99998bc4af1f03a4de"><div class="ttname"><a href="classSVF_1_1Andersen.html#abc20264231658b99998bc4af1f03a4de">SVF::Andersen::processLoad</a></div><div class="ttdeci">virtual bool processLoad(NodeID node, const ConstraintEdge *load)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00323">Andersen.cpp:323</a></div></div>
959
914
  </div><!-- fragment -->
@@ -994,8 +949,8 @@ Additional Inherited Members</h2></td></tr>
994
949
  </div><div class="memdoc">
995
950
  <p>Handle store </p>
996
951
 
997
- <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00172">172</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
998
- <div class="fragment"><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).begin(), epiter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).end();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; piter != epiter; ++piter)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#ac262d42d45dc6130cb031d5b0ed1f024">processStore</a>(*piter, edge))</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;}</div><div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00216">Andersen.h:216</a></div></div>
952
+ <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00153">153</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
953
+ <div class="fragment"><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> piter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).begin(), epiter = <a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(nodeId).end();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; piter != epiter; ++piter)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#ac262d42d45dc6130cb031d5b0ed1f024">processStore</a>(*piter, edge))</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; changed = <span class="keyword">true</span>;</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; }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> changed;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00216">Andersen.h:216</a></div></div>
999
954
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
1000
955
  <div class="ttc" id="classSVF_1_1Andersen_html_ac262d42d45dc6130cb031d5b0ed1f024"><div class="ttname"><a href="classSVF_1_1Andersen.html#ac262d42d45dc6130cb031d5b0ed1f024">SVF::Andersen::processStore</a></div><div class="ttdeci">virtual bool processStore(NodeID node, const ConstraintEdge *load)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00343">Andersen.cpp:343</a></div></div>
1001
956
  </div><!-- fragment -->
@@ -1040,8 +995,8 @@ Additional Inherited Members</h2></td></tr>
1040
995
 
1041
996
  <p>Reimplemented from <a class="el" href="classSVF_1_1Andersen.html#a36729160041bc3a3e2b0a92b29062848">SVF::Andersen</a>.</p>
1042
997
 
1043
- <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00210">210</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
1044
- <div class="fragment"><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; <span class="keywordflow">if</span>(nodeId==newRepId)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1Andersen.html#a4baa6fc95d52afa370fc0fabffd42018">updatePropaPts</a>(newRepId, nodeId);</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; <a class="code" href="classSVF_1_1Andersen.html#a36729160041bc3a3e2b0a92b29062848">Andersen::mergeNodeToRep</a>(nodeId, newRepId);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;}</div><div class="ttc" id="classSVF_1_1Andersen_html_a4baa6fc95d52afa370fc0fabffd42018"><div class="ttname"><a href="classSVF_1_1Andersen.html#a4baa6fc95d52afa370fc0fabffd42018">SVF::Andersen::updatePropaPts</a></div><div class="ttdeci">void updatePropaPts(NodeID dstId, NodeID srcId)</div><div class="ttdoc">Handle propagated points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00286">Andersen.h:286</a></div></div>
998
+ <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00170">170</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
999
+ <div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;{</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(nodeId==newRepId)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1Andersen.html#a4baa6fc95d52afa370fc0fabffd42018">updatePropaPts</a>(newRepId, nodeId);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="classSVF_1_1Andersen.html#a36729160041bc3a3e2b0a92b29062848">Andersen::mergeNodeToRep</a>(nodeId, newRepId);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div><div class="ttc" id="classSVF_1_1Andersen_html_a4baa6fc95d52afa370fc0fabffd42018"><div class="ttname"><a href="classSVF_1_1Andersen.html#a4baa6fc95d52afa370fc0fabffd42018">SVF::Andersen::updatePropaPts</a></div><div class="ttdeci">void updatePropaPts(NodeID dstId, NodeID srcId)</div><div class="ttdoc">Handle propagated points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00286">Andersen.h:286</a></div></div>
1045
1000
  <div class="ttc" id="classSVF_1_1Andersen_html_a36729160041bc3a3e2b0a92b29062848"><div class="ttname"><a href="classSVF_1_1Andersen.html#a36729160041bc3a3e2b0a92b29062848">SVF::Andersen::mergeNodeToRep</a></div><div class="ttdeci">virtual void mergeNodeToRep(NodeID nodeId, NodeID newRepId)</div><div class="ttdoc">Merge sub node to its rep. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00814">Andersen.cpp:814</a></div></div>
1046
1001
  </div><!-- fragment -->
1047
1002
  </div>
@@ -1073,12 +1028,12 @@ Additional Inherited Members</h2></td></tr>
1073
1028
 
1074
1029
  <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00108">108</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
1075
1030
  <div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">double</span> insertStart = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(nodeId);</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; <span class="comment">// handle load</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#af69c7e623ab5a36644b6aeabaa1a1e28">outgoingLoadsBegin</a>(), eit = node-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a134e8ed040d7749c2b9a02662115f746">outgoingLoadsEnd</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenWaveDiff.html#a7f2af504c4fb96e64371a8533c0525fe">handleLoad</a>(nodeId, *it))</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#ac460772d9236a2fefe17b2557023b883">reanalyze</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// handle store</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">ConstraintNode::const_iterator</a> it = node-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a5a90b39f9e5769bde44a673806270714">incomingStoresBegin</a>(), eit = node-&gt;<a class="code" href="classSVF_1_1ConstraintNode.html#a8d58f5224728bb6811f12c94826167f6">incomingStoresEnd</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; it != eit; ++it)</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="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenWaveDiff.html#a775a74d57842b85301daeafe64c8a5c4">handleStore</a>(nodeId, *it))</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#ac460772d9236a2fefe17b2557023b883">reanalyze</a> = <span class="keyword">true</span>;</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; <span class="keywordtype">double</span> insertEnd = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf">timeOfProcessLoadStore</a> += (insertEnd - insertStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><div class="ttc" id="classSVF_1_1WPASolver_html_ac460772d9236a2fefe17b2557023b883"><div class="ttname"><a href="classSVF_1_1WPASolver.html#ac460772d9236a2fefe17b2557023b883">SVF::WPASolver::reanalyze</a></div><div class="ttdeci">bool reanalyze</div><div class="ttdoc">Reanalyze if any constraint value changed. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00177">WPASolver.h:177</a></div></div>
1076
- <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a775a74d57842b85301daeafe64c8a5c4"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a775a74d57842b85301daeafe64c8a5c4">SVF::AndersenWaveDiff::handleStore</a></div><div class="ttdeci">virtual bool handleStore(NodeID id, const ConstraintEdge *store)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenWaveDiff_8cpp_source.html#l00172">AndersenWaveDiff.cpp:172</a></div></div>
1031
+ <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a775a74d57842b85301daeafe64c8a5c4"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a775a74d57842b85301daeafe64c8a5c4">SVF::AndersenWaveDiff::handleStore</a></div><div class="ttdeci">virtual bool handleStore(NodeID id, const ConstraintEdge *store)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenWaveDiff_8cpp_source.html#l00153">AndersenWaveDiff.cpp:153</a></div></div>
1077
1032
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
1078
1033
  <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>
1079
1034
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_a5a90b39f9e5769bde44a673806270714"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a5a90b39f9e5769bde44a673806270714">SVF::ConstraintNode::incomingStoresBegin</a></div><div class="ttdeci">const_iterator incomingStoresBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00283">ConsGNode.h:283</a></div></div>
1080
1035
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_a8d58f5224728bb6811f12c94826167f6"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a8d58f5224728bb6811f12c94826167f6">SVF::ConstraintNode::incomingStoresEnd</a></div><div class="ttdeci">const_iterator incomingStoresEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00287">ConsGNode.h:287</a></div></div>
1081
- <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a7f2af504c4fb96e64371a8533c0525fe"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a7f2af504c4fb96e64371a8533c0525fe">SVF::AndersenWaveDiff::handleLoad</a></div><div class="ttdeci">virtual bool handleLoad(NodeID id, const ConstraintEdge *load)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenWaveDiff_8cpp_source.html#l00155">AndersenWaveDiff.cpp:155</a></div></div>
1036
+ <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a7f2af504c4fb96e64371a8533c0525fe"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a7f2af504c4fb96e64371a8533c0525fe">SVF::AndersenWaveDiff::handleLoad</a></div><div class="ttdeci">virtual bool handleLoad(NodeID id, const ConstraintEdge *load)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenWaveDiff_8cpp_source.html#l00136">AndersenWaveDiff.cpp:136</a></div></div>
1082
1037
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00154">PointerAnalysis.h:154</a></div></div>
1083
1038
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_a134e8ed040d7749c2b9a02662115f746"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a134e8ed040d7749c2b9a02662115f746">SVF::ConstraintNode::outgoingLoadsEnd</a></div><div class="ttdeci">const_iterator outgoingLoadsEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00262">ConsGNode.h:262</a></div></div>
1084
1039
  <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>
@@ -1090,85 +1045,6 @@ Additional Inherited Members</h2></td></tr>
1090
1045
  </div><!-- fragment -->
1091
1046
  </div>
1092
1047
  </div>
1093
- <a id="a57c7c12ebcf06f2912e93c802c6cdd02"></a>
1094
- <h2 class="memtitle"><span class="permalink"><a href="#a57c7c12ebcf06f2912e93c802c6cdd02">&#9670;&nbsp;</a></span>processCast()</h2>
1095
-
1096
- <div class="memitem">
1097
- <div class="memproto">
1098
- <table class="mlabels">
1099
- <tr>
1100
- <td class="mlabels-left">
1101
- <table class="memname">
1102
- <tr>
1103
- <td class="memname">virtual void SVF::AndersenWaveDiff::processCast </td>
1104
- <td>(</td>
1105
- <td class="paramtype">const <a class="el" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a> *&#160;</td>
1106
- <td class="paramname"></td><td>)</td>
1107
- <td></td>
1108
- </tr>
1109
- </table>
1110
- </td>
1111
- <td class="mlabels-right">
1112
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
1113
- </tr>
1114
- </table>
1115
- </div><div class="memdoc">
1116
-
1117
- <p>process "bitcast" <a class="el" href="classSVF_1_1CopyCGEdge.html">CopyCGEdge</a> </p>
1118
-
1119
- <p class="definition">Definition at line <a class="el" href="Andersen_8h_source.html#l00459">459</a> of file <a class="el" href="Andersen_8h_source.html">Andersen.h</a>.</p>
1120
- <div class="fragment"><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div></div><!-- fragment -->
1121
- </div>
1122
- </div>
1123
- <a id="a3a5b952c0c2fe2be1b9a6fcfeeba2c37"></a>
1124
- <h2 class="memtitle"><span class="permalink"><a href="#a3a5b952c0c2fe2be1b9a6fcfeeba2c37">&#9670;&nbsp;</a></span>processCopy()</h2>
1125
-
1126
- <div class="memitem">
1127
- <div class="memproto">
1128
- <table class="mlabels">
1129
- <tr>
1130
- <td class="mlabels-left">
1131
- <table class="memname">
1132
- <tr>
1133
- <td class="memname">bool AndersenWaveDiff::processCopy </td>
1134
- <td>(</td>
1135
- <td class="paramtype"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td>
1136
- <td class="paramname"><em>node</em>, </td>
1137
- </tr>
1138
- <tr>
1139
- <td class="paramkey"></td>
1140
- <td></td>
1141
- <td class="paramtype">const <a class="el" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a> *&#160;</td>
1142
- <td class="paramname"><em>edge</em>&#160;</td>
1143
- </tr>
1144
- <tr>
1145
- <td></td>
1146
- <td>)</td>
1147
- <td></td><td></td>
1148
- </tr>
1149
- </table>
1150
- </td>
1151
- <td class="mlabels-right">
1152
- <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
1153
- </tr>
1154
- </table>
1155
- </div><div class="memdoc">
1156
- <p>Propagate diff points-to set from src to dst </p>
1157
-
1158
- <p>Reimplemented from <a class="el" href="classSVF_1_1Andersen.html#ac4afe532655c3f311143ebbe15175ca2">SVF::Andersen</a>.</p>
1159
-
1160
- <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00189">189</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
1161
- <div class="fragment"><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;{</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#a04acd871bd1b98cd9e83e395334ac130">numOfProcessedCopy</a>++;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordtype">bool</span> changed = <span class="keyword">false</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; assert((SVFUtil::isa&lt;CopyCGEdge&gt;(edge)) &amp;&amp; <span class="stringliteral">&quot;not copy/call/ret ??&quot;</span>);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>();</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; srcDiffPts = <a class="code" href="classSVF_1_1Andersen.html#a106691684d8e7a69157d423393d83d66">getDiffPts</a>(node);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a57c7c12ebcf06f2912e93c802c6cdd02">processCast</a>(edge);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Andersen.html#ab7dadfd4d810be4863f03ed996b3b3c4">unionPts</a>(dst,srcDiffPts))</div><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; changed = <span class="keyword">true</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1WPASolver.html#a4af1c3e72f5af96c4facff672108da58">pushIntoWorklist</a>(dst);</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="keywordflow">return</span> changed;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</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>
1162
- <div class="ttc" id="classSVF_1_1Andersen_html_a106691684d8e7a69157d423393d83d66"><div class="ttname"><a href="classSVF_1_1Andersen.html#a106691684d8e7a69157d423393d83d66">SVF::Andersen::getDiffPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getDiffPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00276">Andersen.h:276</a></div></div>
1163
- <div class="ttc" id="classSVF_1_1Andersen_html_ab7dadfd4d810be4863f03ed996b3b3c4"><div class="ttname"><a href="classSVF_1_1Andersen.html#ab7dadfd4d810be4863f03ed996b3b3c4">SVF::Andersen::unionPts</a></div><div class="ttdeci">virtual bool unionPts(NodeID id, const PointsTo &amp;target)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00220">Andersen.h:220</a></div></div>
1164
- <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>
1165
- <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>
1166
- <div class="ttc" id="classSVF_1_1AndersenBase_html_a04acd871bd1b98cd9e83e395334ac130"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a04acd871bd1b98cd9e83e395334ac130">SVF::AndersenBase::numOfProcessedCopy</a></div><div class="ttdeci">static u32_t numOfProcessedCopy</div><div class="ttdoc">Number of processed Addr edge. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00123">Andersen.h:123</a></div></div>
1167
- <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a57c7c12ebcf06f2912e93c802c6cdd02"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a57c7c12ebcf06f2912e93c802c6cdd02">SVF::AndersenWaveDiff::processCast</a></div><div class="ttdeci">virtual void processCast(const ConstraintEdge *)</div><div class="ttdoc">process &quot;bitcast&quot; CopyCGEdge </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00459">Andersen.h:459</a></div></div>
1168
- <div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
1169
- </div><!-- fragment -->
1170
- </div>
1171
- </div>
1172
1048
  <a id="afa1055cda6c910b24480505efd205895"></a>
1173
1049
  <h2 class="memtitle"><span class="permalink"><a href="#afa1055cda6c910b24480505efd205895">&#9670;&nbsp;</a></span>processNode()</h2>
1174
1050
 
@@ -1197,14 +1073,14 @@ Additional Inherited Members</h2></td></tr>
1197
1073
  <p>Reimplemented from <a class="el" href="classSVF_1_1Andersen.html#a1caa6fa0740f4fa789d960a5a6fcb9c1">SVF::Andersen</a>.</p>
1198
1074
 
1199
1075
  <p class="definition">Definition at line <a class="el" href="AndersenWaveDiff_8cpp_source.html#l00091">91</a> of file <a class="el" href="AndersenWaveDiff_8cpp_source.html">AndersenWaveDiff.cpp</a>.</p>
1200
- <div class="fragment"><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">// This node may be merged during collapseNodePts() which means it is no longer a rep node</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// in the graph. Only rep node needs to be handled.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#aad706e332847e6b0892350a05028ba30">sccRepNode</a>(nodeId) != nodeId)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</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; <span class="keywordtype">double</span> propStart = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(nodeId);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html#ad5c85a28967cc3f62e663dc00a8aa8c9">handleCopyGep</a>(node);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">double</span> propEnd = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0">timeOfProcessCopyGep</a> += (propEnd - propStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="ttc" id="classSVF_1_1AndersenBase_html_aae14de6fbca9280d8d0290326aa493f0"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0">SVF::AndersenBase::timeOfProcessCopyGep</a></div><div class="ttdeci">static double timeOfProcessCopyGep</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00136">Andersen.h:136</a></div></div>
1076
+ <div class="fragment"><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">// This node may be merged during collapseNodePts() which means it is no longer a rep node</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// in the graph. Only rep node needs to be handled.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Andersen.html#aad706e332847e6b0892350a05028ba30">sccRepNode</a>(nodeId) != nodeId)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</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; <span class="keywordtype">double</span> propStart = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node = <a class="code" href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">consCG</a>-&gt;<a class="code" href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">getConstraintNode</a>(nodeId);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1Andersen.html#ab069683dd6ca563113efbde2813ab35e">handleCopyGep</a>(node);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">double</span> propEnd = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">getClk</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0">timeOfProcessCopyGep</a> += (propEnd - propStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="ttc" id="classSVF_1_1AndersenBase_html_aae14de6fbca9280d8d0290326aa493f0"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0">SVF::AndersenBase::timeOfProcessCopyGep</a></div><div class="ttdeci">static double timeOfProcessCopyGep</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00136">Andersen.h:136</a></div></div>
1201
1077
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a26722666cc8f2fce61bed73f086a0e87"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a26722666cc8f2fce61bed73f086a0e87">SVF::ConstraintGraph::getConstraintNode</a></div><div class="ttdeci">ConstraintNode * getConstraintNode(NodeID id) const</div><div class="ttdoc">Get/add/remove constraint node. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00107">ConsG.h:107</a></div></div>
1202
- <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_ad5c85a28967cc3f62e663dc00a8aa8c9"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#ad5c85a28967cc3f62e663dc00a8aa8c9">SVF::AndersenWaveDiff::handleCopyGep</a></div><div class="ttdeci">virtual void handleCopyGep(ConstraintNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenWaveDiff_8cpp_source.html#l00136">AndersenWaveDiff.cpp:136</a></div></div>
1203
1078
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00154">PointerAnalysis.h:154</a></div></div>
1204
1079
  <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>
1205
1080
  <div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00182">SVFBasicTypes.h:182</a></div></div>
1206
1081
  <div class="ttc" id="classSVF_1_1AndersenBase_html_ae21e38a06a4397d11cdd17b0f8f282fd"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#ae21e38a06a4397d11cdd17b0f8f282fd">SVF::AndersenBase::consCG</a></div><div class="ttdeci">ConstraintGraph * consCG</div><div class="ttdoc">Constraint Graph. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00143">Andersen.h:143</a></div></div>
1207
1082
  <div class="ttc" id="classSVF_1_1Andersen_html_aad706e332847e6b0892350a05028ba30"><div class="ttname"><a href="classSVF_1_1Andersen.html#aad706e332847e6b0892350a05028ba30">SVF::Andersen::sccRepNode</a></div><div class="ttdeci">NodeID sccRepNode(NodeID id) const</div><div class="ttdoc">SCC methods. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00205">Andersen.h:205</a></div></div>
1083
+ <div class="ttc" id="classSVF_1_1Andersen_html_ab069683dd6ca563113efbde2813ab35e"><div class="ttname"><a href="classSVF_1_1Andersen.html#ab069683dd6ca563113efbde2813ab35e">SVF::Andersen::handleCopyGep</a></div><div class="ttdeci">virtual void handleCopyGep(ConstraintNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00246">Andersen.cpp:246</a></div></div>
1208
1084
  <div class="ttc" id="classSVF_1_1PTAStat_html_a3c4eaa1695ea13405911ae1621f98edc"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">SVF::PTAStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00114">PTAStat.cpp:114</a></div></div>
1209
1085
  </div><!-- fragment -->
1210
1086
  </div>
@@ -714,16 +714,16 @@ Private Attributes</h2></td></tr>
714
714
  <div class="ttc" id="classSVF_1_1WPAPass_html_a0b57d86a5305aefcd6c8ae4e328d3ab0"><div class="ttname"><a href="classSVF_1_1WPAPass.html#a0b57d86a5305aefcd6c8ae4e328d3ab0">SVF::WPAPass::_pta</a></div><div class="ttdeci">PointerAnalysis * _pta</div><div class="ttdoc">pointer analysis to be executed. </div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8h_source.html#l00116">WPAPass.h:116</a></div></div>
715
715
  <div class="ttc" id="classSVF_1_1Options_html_a1211da4c36f1fcc65235891f31d87038"><div class="ttname"><a href="classSVF_1_1Options.html#a1211da4c36f1fcc65235891f31d87038">SVF::Options::PASelected</a></div><div class="ttdeci">static llvm::cl::bits&lt; PointerAnalysis::PTATY &gt; PASelected</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00244">Options.h:244</a></div></div>
716
716
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
717
- <div class="ttc" id="classSVF_1_1AndersenHCD_html"><div class="ttname"><a href="classSVF_1_1AndersenHCD.html">SVF::AndersenHCD</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00548">Andersen.h:548</a></div></div>
717
+ <div class="ttc" id="classSVF_1_1AndersenHCD_html"><div class="ttname"><a href="classSVF_1_1AndersenHCD.html">SVF::AndersenHCD</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00540">Andersen.h:540</a></div></div>
718
718
  <div class="ttc" id="classSVF_1_1Options_html_a30cbb0b3633c769c92f4625680ec17e3"><div class="ttname"><a href="classSVF_1_1Options.html#a30cbb0b3633c769c92f4625680ec17e3">SVF::Options::AnderSVFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; AnderSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00241">Options.h:241</a></div></div>
719
- <div class="ttc" id="classSVF_1_1AndersenLCD_html"><div class="ttname"><a href="classSVF_1_1AndersenLCD.html">SVF::AndersenLCD</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00469">Andersen.h:469</a></div></div>
719
+ <div class="ttc" id="classSVF_1_1AndersenLCD_html"><div class="ttname"><a href="classSVF_1_1AndersenLCD.html">SVF::AndersenLCD</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00461">Andersen.h:461</a></div></div>
720
720
  <div class="ttc" id="classSVF_1_1AndersenSCD_html"><div class="ttname"><a href="classSVF_1_1AndersenSCD.html">SVF::AndersenSCD</a></div><div class="ttdef"><b>Definition:</b> <a href="AndersenSFR_8h_source.html#l00044">AndersenSFR.h:44</a></div></div>
721
721
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a46f5e74d5f4b0a2d134e68d262079c3f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a46f5e74d5f4b0a2d134e68d262079c3f">SVF::PointerAnalysis::AndersenHCD_WPA</a></div><div class="ttdoc">Hybird cycle detection andersen-style WPA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00068">PointerAnalysis.h:68</a></div></div>
722
722
  <div class="ttc" id="classSVF_1_1Options_html_a1b1d1ad6b3a6c48a9fa07161b582c7fe"><div class="ttname"><a href="classSVF_1_1Options.html#a1b1d1ad6b3a6c48a9fa07161b582c7fe">SVF::Options::PrintAliases</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PrintAliases</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00243">Options.h:243</a></div></div>
723
723
  <div class="ttc" id="classSVF_1_1WPAPass_html_abb6e0c5cc5de312ee0285d1854550752"><div class="ttname"><a href="classSVF_1_1WPAPass.html#abb6e0c5cc5de312ee0285d1854550752">SVF::WPAPass::PrintAliasPairs</a></div><div class="ttdeci">virtual void PrintAliasPairs(PointerAnalysis *pta)</div><div class="ttdoc">Print all alias pairs. </div><div class="ttdef"><b>Definition:</b> <a href="WPAPass_8cpp_source.html#l00155">WPAPass.cpp:155</a></div></div>
724
724
  <div class="ttc" id="classSVF_1_1Steensgaard_html"><div class="ttname"><a href="classSVF_1_1Steensgaard.html">SVF::Steensgaard</a></div><div class="ttdef"><b>Definition:</b> <a href="Steensgaard_8h_source.html#l00020">Steensgaard.h:20</a></div></div>
725
725
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85a99d50c1712075e4c3278fc4fa4c9cd2f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a99d50c1712075e4c3278fc4fa4c9cd2f">SVF::PointerAnalysis::AndersenHLCD_WPA</a></div><div class="ttdoc">Hybird lazy cycle detection andersen-style WPA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00069">PointerAnalysis.h:69</a></div></div>
726
- <div class="ttc" id="classSVF_1_1AndersenHLCD_html"><div class="ttname"><a href="classSVF_1_1AndersenHLCD.html">SVF::AndersenHLCD</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00624">Andersen.h:624</a></div></div>
726
+ <div class="ttc" id="classSVF_1_1AndersenHLCD_html"><div class="ttname"><a href="classSVF_1_1AndersenHLCD.html">SVF::AndersenHLCD</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00616">Andersen.h:616</a></div></div>
727
727
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85abf2f61ee9a5f6228db6587a8182ec9f2"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85abf2f61ee9a5f6228db6587a8182ec9f2">SVF::PointerAnalysis::AndersenWaveDiff_WPA</a></div><div class="ttdoc">Diff wave propagation andersen-style WPA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00072">PointerAnalysis.h:72</a></div></div>
728
728
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85ab68615784a520e39856be5237930e6a6">SVF::PointerAnalysis::Andersen_WPA</a></div><div class="ttdoc">Andersen PTA. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00066">PointerAnalysis.h:66</a></div></div>
729
729
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0b182ac680cce0547dbe7714c870ca85accfa4ed42d3a3ac5e4abc403e738427b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85accfa4ed42d3a3ac5e4abc403e738427b">SVF::PointerAnalysis::AndersenSFR_WPA</a></div><div class="ttdoc">Stride-based field representation. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00071">PointerAnalysis.h:71</a></div></div>
@@ -94,7 +94,6 @@ $(function() {
94
94
  , <a class="el" href="classSVF_1_1AndersenHLCD.html#a9582cde6cbb510f3fb624109f8ea8f63">SVF::AndersenHLCD</a>
95
95
  , <a class="el" href="classSVF_1_1AndersenLCD.html#a139d80e25fe713194f719581915d36d5">SVF::AndersenLCD</a>
96
96
  , <a class="el" href="classSVF_1_1AndersenSCD.html#aa0a496376f7bea2c417ef83c51d19a61">SVF::AndersenSCD</a>
97
- , <a class="el" href="classSVF_1_1AndersenWaveDiff.html#ad5c85a28967cc3f62e663dc00a8aa8c9">SVF::AndersenWaveDiff</a>
98
97
  </li>
99
98
  <li>handleDIBasicType()
100
99
  : <a class="el" href="classSVF_1_1DCHGraph.html#a86bf48776ccf53092f4cb742cf95f8eb">SVF::DCHGraph</a>
@@ -265,7 +264,7 @@ $(function() {
265
264
  <li>hasDFOutSet()
266
265
  : <a class="el" href="classSVF_1_1DFPTData.html#a31592c6086318f889749f55e80310e03">SVF::DFPTData&lt; Key, KeySet, Data, DataSet &gt;</a>
267
266
  , <a class="el" href="classSVF_1_1MutableDFPTData.html#ac6d487a4af529ecb30366be54b29260a">SVF::MutableDFPTData&lt; Key, KeySet, Data, DataSet &gt;</a>
268
- , <a class="el" href="classSVF_1_1PersistentDFPTData.html#ace47d00f778bc4a714fc4f9d0cbd063c">SVF::PersistentDFPTData&lt; Key, KeySet, Data, DataSet &gt;</a>
267
+ , <a class="el" href="classSVF_1_1PersistentDFPTData.html#a67c4dec1150bdd8458046696578e5069">SVF::PersistentDFPTData&lt; Key, KeySet, Data, DataSet &gt;</a>
269
268
  </li>
270
269
  <li>hasDRCheckFlag()
271
270
  : <a class="el" href="classSVF_1_1Annotator.html#a6e958c20d7809545b026eb5246444711">SVF::Annotator</a>
@@ -346,7 +345,7 @@ $(function() {
346
345
  : <a class="el" href="classSVF_1_1VFG.html#ac34c4529229404617c346f81cc6c141f">SVF::VFG</a>
347
346
  </li>
348
347
  <li>hasLabeledEdge()
349
- : <a class="el" href="classSVF_1_1IRGraph.html#a1c999e2fd771e4fda192af096e3ec92c">SVF::IRGraph</a>
348
+ : <a class="el" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">SVF::IRGraph</a>
350
349
  </li>
351
350
  <li>hasLCDCandidate()
352
351
  : <a class="el" href="classSVF_1_1AndersenLCD.html#ad3f4bd35f98c43a0642b91c6b0e7acb3">SVF::AndersenLCD</a>
@@ -358,7 +357,7 @@ $(function() {
358
357
  : <a class="el" href="classSVF_1_1MRGenerator.html#a187d82895b2e1156c6dd5ae28795944f">SVF::MRGenerator</a>
359
358
  </li>
360
359
  <li>hasMU()
361
- : <a class="el" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">SVF::MemSSA</a>
360
+ : <a class="el" href="classSVF_1_1MemSSA.html#a6bd9390c6cd2a3d7a3752fba76acfb46">SVF::MemSSA</a>
362
361
  </li>
363
362
  <li>hasNode()
364
363
  : <a class="el" href="classSVF_1_1DCHGraph.html#a58341e23c1dc2b3e7fce190ed16a8a25">SVF::DCHGraph</a>
@@ -304,9 +304,6 @@ $(function() {
304
304
  <li>processBasicBlockNode()
305
305
  : <a class="el" href="classSVF_1_1IRAnnotator.html#a6da6bf2db9dd582739e621aefc72025f">SVF::IRAnnotator</a>
306
306
  </li>
307
- <li>processCast()
308
- : <a class="el" href="classSVF_1_1AndersenWaveDiff.html#a57c7c12ebcf06f2912e93c802c6cdd02">SVF::AndersenWaveDiff</a>
309
- </li>
310
307
  <li>processCE()
311
308
  : <a class="el" href="classSVF_1_1SVFIRBuilder.html#a5adf8baa546292434ba1fec48db2d0a7">SVF::SVFIRBuilder</a>
312
309
  </li>
@@ -315,7 +312,6 @@ $(function() {
315
312
  </li>
316
313
  <li>processCopy()
317
314
  : <a class="el" href="classSVF_1_1Andersen.html#ac4afe532655c3f311143ebbe15175ca2">SVF::Andersen</a>
318
- , <a class="el" href="classSVF_1_1AndersenWaveDiff.html#a3a5b952c0c2fe2be1b9a6fcfeeba2c37">SVF::AndersenWaveDiff</a>
319
315
  , <a class="el" href="classSVF_1_1FlowSensitive.html#aa401cc90de4e1c6842f08a43a28c5aa1">SVF::FlowSensitive</a>
320
316
  </li>
321
317
  <li>processFunBody()
@@ -482,7 +478,7 @@ $(function() {
482
478
  : <a class="el" href="classSVF_1_1ForkJoinAnalysis.html#aaf70954762aa86f835d799994726790e">SVF::ForkJoinAnalysis</a>
483
479
  , <a class="el" href="classSVF_1_1LockAnalysis.html#a7d9fd3ddcadd84969b57491181983b17">SVF::LockAnalysis</a>
484
480
  , <a class="el" href="classSVF_1_1MHP.html#a67e2d43f0e35cc46eb7680ec66a4fe44">SVF::MHP</a>
485
- , <a class="el" href="classSVF_1_1TCT.html#aa98a5b427a92eca1e043efcdf7945169">SVF::TCT</a>
481
+ , <a class="el" href="classSVF_1_1TCT.html#afc6d7a91cfc98561bcce13425964a39e">SVF::TCT</a>
486
482
  </li>
487
483
  <li>pushIntoWorklist()
488
484
  : <a class="el" href="classSVF_1_1CFLSolver.html#afc745dc72fd0572a145a78fe6a93ae5c">SVF::CFLSolver</a>
@@ -97,7 +97,6 @@ $(function() {
97
97
  , <a class="el" href="classSVF_1_1AndersenHLCD.html#a9582cde6cbb510f3fb624109f8ea8f63">SVF::AndersenHLCD</a>
98
98
  , <a class="el" href="classSVF_1_1AndersenLCD.html#a139d80e25fe713194f719581915d36d5">SVF::AndersenLCD</a>
99
99
  , <a class="el" href="classSVF_1_1AndersenSCD.html#aa0a496376f7bea2c417ef83c51d19a61">SVF::AndersenSCD</a>
100
- , <a class="el" href="classSVF_1_1AndersenWaveDiff.html#ad5c85a28967cc3f62e663dc00a8aa8c9">SVF::AndersenWaveDiff</a>
101
100
  </li>
102
101
  <li>handleDIBasicType()
103
102
  : <a class="el" href="classSVF_1_1DCHGraph.html#a86bf48776ccf53092f4cb742cf95f8eb">SVF::DCHGraph</a>
@@ -325,7 +324,7 @@ $(function() {
325
324
  : <a class="el" href="classSVF_1_1ICFG.html#a16c2ed1f9e28c84669b14dc48fb3c01a">SVF::ICFG</a>
326
325
  </li>
327
326
  <li>hasIncomingEdge()
328
- : <a class="el" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a>
327
+ : <a class="el" href="classSVF_1_1GenericNode.html#add6b6b3bd45a9460335c5db9eda821b8">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a>
329
328
  </li>
330
329
  <li>hasIncomingEdges()
331
330
  : <a class="el" href="classSVF_1_1SVFVar.html#a747b2c92c81d32fcd357e80d2d8fe7cc">SVF::SVFVar</a>
@@ -353,7 +352,7 @@ $(function() {
353
352
  : <a class="el" href="classSVF_1_1VFG.html#ac34c4529229404617c346f81cc6c141f">SVF::VFG</a>
354
353
  </li>
355
354
  <li>hasLabeledEdge()
356
- : <a class="el" href="classSVF_1_1IRGraph.html#a192e584440eb141e0d35d8fed671bbe0">SVF::IRGraph</a>
355
+ : <a class="el" href="classSVF_1_1IRGraph.html#a1c999e2fd771e4fda192af096e3ec92c">SVF::IRGraph</a>
357
356
  </li>
358
357
  <li>hasLCDCandidate()
359
358
  : <a class="el" href="classSVF_1_1AndersenLCD.html#ad3f4bd35f98c43a0642b91c6b0e7acb3">SVF::AndersenLCD</a>
@@ -365,7 +364,7 @@ $(function() {
365
364
  : <a class="el" href="classSVF_1_1MRGenerator.html#a187d82895b2e1156c6dd5ae28795944f">SVF::MRGenerator</a>
366
365
  </li>
367
366
  <li>hasMU()
368
- : <a class="el" href="classSVF_1_1MemSSA.html#a6bd9390c6cd2a3d7a3752fba76acfb46">SVF::MemSSA</a>
367
+ : <a class="el" href="classSVF_1_1MemSSA.html#af5e356e82c3f93b65bd89908e0f465dc">SVF::MemSSA</a>
369
368
  </li>
370
369
  <li>hasNode()
371
370
  : <a class="el" href="classSVF_1_1DCHGraph.html#a58341e23c1dc2b3e7fce190ed16a8a25">SVF::DCHGraph</a>
@@ -463,7 +462,7 @@ $(function() {
463
462
  : <a class="el" href="classSVF_1_1ICFG.html#a29fb70d6638765ce291c5a8a11fbea64">SVF::ICFG</a>
464
463
  </li>
465
464
  <li>hasThreadJoinEdge()
466
- : <a class="el" href="classSVF_1_1ThreadCallGraph.html#a5f7c92af1a4ce33e4746f5b65c9c8421">SVF::ThreadCallGraph</a>
465
+ : <a class="el" href="classSVF_1_1ThreadCallGraph.html#a98214e970762f43d0e9ad719961b4021">SVF::ThreadCallGraph</a>
467
466
  </li>
468
467
  <li>hasThreadStmtSet()
469
468
  : <a class="el" href="classSVF_1_1MHP.html#a6841b147e2a681ea372bdddd53616294">SVF::MHP</a>
@@ -453,12 +453,12 @@ $(function() {
453
453
  <li>opVarBegin()
454
454
  : <a class="el" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">SVF::MultiOpndStmt</a>
455
455
  </li>
456
- <li>opVars
457
- : <a class="el" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">SVF::MultiOpndStmt</a>
458
- </li>
459
456
  <li>OPVars
460
457
  : <a class="el" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">SVF::MultiOpndStmt</a>
461
458
  </li>
459
+ <li>opVars
460
+ : <a class="el" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">SVF::MultiOpndStmt</a>
461
+ </li>
462
462
  <li>opVer
463
463
  : <a class="el" href="classSVF_1_1MSSACHI.html#a86f2f3f6e2215cdbe31caee048510757">SVF::MSSACHI&lt; Cond &gt;</a>
464
464
  </li>