svf-tools 1.0.292 → 1.0.296

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 (157) hide show
  1. package/CMakeLists.txt +1 -1
  2. package/Dockerfile +1 -1
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +2 -44
  6. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +3 -5
  7. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +1 -1
  8. package/SVF-doxygen/html/html/CHG_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  11. package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
  12. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  16. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/GraphPrinter_8h.html +1 -0
  20. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +5 -5
  21. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +1 -1
  25. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/html/PAG_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  30. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -12
  32. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +33 -35
  33. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +32 -37
  35. package/SVF-doxygen/html/html/SVFG_8h_source.html +19 -19
  36. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
  37. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -11
  40. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
  43. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +3 -3
  44. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  45. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -1
  46. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -3
  47. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
  48. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -3
  49. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +3 -3
  50. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +1 -1
  51. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +1 -1
  52. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -3
  53. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
  54. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +1 -1
  55. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  56. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
  57. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +3 -3
  58. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  59. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +1 -1
  60. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  61. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +2 -2
  62. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  63. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
  64. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +1 -1
  65. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  66. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +3 -3
  68. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  69. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
  70. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
  72. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +3 -3
  74. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
  75. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  76. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  77. package/SVF-doxygen/html/html/classSVF_1_1PAG.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -3
  79. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
  81. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +36 -37
  82. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +121 -153
  83. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +50 -50
  84. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  85. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
  86. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +2 -2
  87. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  88. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +8 -9
  90. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +3 -3
  92. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +1 -1
  94. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +2 -2
  97. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  98. package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +7 -7
  99. package/SVF-doxygen/html/html/functions_f.html +3 -3
  100. package/SVF-doxygen/html/html/functions_func_g.html +9 -12
  101. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  102. package/SVF-doxygen/html/html/functions_g.html +10 -13
  103. package/SVF-doxygen/html/html/functions_n.html +3 -3
  104. package/SVF-doxygen/html/html/functions_o.html +11 -11
  105. package/SVF-doxygen/html/html/functions_p.html +9 -5
  106. package/SVF-doxygen/html/html/functions_r.html +3 -5
  107. package/SVF-doxygen/html/html/functions_s.html +6 -6
  108. package/SVF-doxygen/html/html/functions_t.html +6 -6
  109. package/SVF-doxygen/html/html/functions_u.html +3 -3
  110. package/SVF-doxygen/html/html/functions_v.html +3 -3
  111. package/SVF-doxygen/html/html/functions_w.html +8 -6
  112. package/SVF-doxygen/html/html/globals_c.html +100 -103
  113. package/SVF-doxygen/html/html/globals_func_c.html +88 -91
  114. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  115. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  116. package/SVF-doxygen/html/html/search/all_13.js +2 -2
  117. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  118. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  119. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  120. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  121. package/SVF-doxygen/html/html/search/all_3.js +0 -1
  122. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  123. package/SVF-doxygen/html/html/search/all_7.js +1 -2
  124. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  125. package/SVF-doxygen/html/html/search/all_e.js +4 -4
  126. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  127. package/SVF-doxygen/html/html/search/functions_2.js +0 -1
  128. package/SVF-doxygen/html/html/search/functions_6.js +1 -2
  129. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  130. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  131. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  132. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  133. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
  134. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
  135. package/build.sh +6 -3
  136. package/include/Graphs/GraphPrinter.h +2 -1
  137. package/include/MemoryModel/MutablePointsToDS.h +1 -1
  138. package/include/MemoryModel/PointerAnalysisImpl.h +4 -4
  139. package/include/SABER/ProgSlice.h +0 -3
  140. package/include/Util/BasicTypes.h +1 -1
  141. package/lib/DDA/DDAPass.cpp +1 -1
  142. package/lib/Graphs/SVFG.cpp +0 -20
  143. package/lib/Graphs/VFG.cpp +18 -0
  144. package/lib/MemoryModel/PointerAnalysis.cpp +7 -7
  145. package/lib/MemoryModel/PointerAnalysisImpl.cpp +3 -3
  146. package/lib/SABER/ProgSlice.cpp +0 -37
  147. package/lib/SABER/SaberAnnotator.cpp +1 -1
  148. package/lib/SVF-FE/BreakConstantExpr.cpp +5 -143
  149. package/lib/SVF-FE/Graph2Json.cpp +1 -1
  150. package/lib/SVF-FE/LLVMModule.cpp +1 -1
  151. package/lib/Util/TypeBasedHeapCloning.cpp +6 -6
  152. package/lib/WPA/Andersen.cpp +4 -4
  153. package/lib/WPA/FlowSensitive.cpp +2 -2
  154. package/lib/WPA/FlowSensitiveTBHC.cpp +2 -2
  155. package/lib/WPA/WPAPass.cpp +7 -7
  156. package/package.json +1 -1
  157. package/setup.sh +1 -1
@@ -333,7 +333,7 @@ Protected Attributes</h2></td></tr>
333
333
  <p>Update call graph using pre-analysis results </p>
334
334
 
335
335
  <p class="definition">Definition at line <a class="el" href="SVFGBuilder_8cpp_source.html#l00077">77</a> of file <a class="el" href="SVFGBuilder_8cpp_source.html">SVFGBuilder.cpp</a>.</p>
336
- <div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</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; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <a class="code" href="classSVF_1_1SVFGBuilder.html#a49cee21be46d6a3f65eec638714038ed">buildMSSA</a>(pta, (<a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d">VFG::PTRONLYSVFG</a>==kind || <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>==kind));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;Build Sparse Value-Flow Graph \n&quot;</span>));</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a78ce4bd2e80e7b87ff0ee52edd1db403">Options::SingleVFG</a>)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">globalSvfg</a>==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a> = <a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">globalSvfg</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a>(mssa, kind);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a> = <a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">globalSvfg</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>(mssa, kind);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305">buildSVFG</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; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a>(mssa, kind);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>(mssa,kind);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305">buildSVFG</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a982b4cd71ccafd07d94f10a0a2e953c2">Options::SVFGWithIndirectCall</a> || <a class="code" href="classSVF_1_1SVFGBuilder.html#a70de38086437635d2e44d2a0c9fdded9">SVFGWithIndCall</a>)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1VFG.html#a0c0a7c8f0bd27bc9e88ce54c0809b11b">updateCallGraph</a>(pta);</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="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">&quot;svfg_final&quot;</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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00559">SVFG.cpp:559</a></div></div>
336
+ <div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</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; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <a class="code" href="classSVF_1_1SVFGBuilder.html#a49cee21be46d6a3f65eec638714038ed">buildMSSA</a>(pta, (<a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d">VFG::PTRONLYSVFG</a>==kind || <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>==kind));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;Build Sparse Value-Flow Graph \n&quot;</span>));</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a78ce4bd2e80e7b87ff0ee52edd1db403">Options::SingleVFG</a>)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">globalSvfg</a>==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a> = <a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">globalSvfg</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a>(mssa, kind);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a> = <a class="code" href="classSVF_1_1SVFGBuilder.html#a31b754a303116f33d679dfcd886c4bed">globalSvfg</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>(mssa, kind);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305">buildSVFG</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; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">VFG::FULLSVFG_OPT</a> || kind == <a class="code" href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6a8ed0b9aea88fbbbe91f33301bea0c9dd">VFG::PTRONLYSVFG_OPT</a>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGOPT.html">SVFGOPT</a>(mssa, kind);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>(mssa,kind);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#ae2d84f7527de200a2f269dc1c056a305">buildSVFG</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a982b4cd71ccafd07d94f10a0a2e953c2">Options::SVFGWithIndirectCall</a> || <a class="code" href="classSVF_1_1SVFGBuilder.html#a70de38086437635d2e44d2a0c9fdded9">SVFGWithIndCall</a>)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1VFG.html#a0c0a7c8f0bd27bc9e88ce54c0809b11b">updateCallGraph</a>(pta);</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="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">&quot;svfg_final&quot;</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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00539">SVFG.cpp:539</a></div></div>
337
337
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6aab1abd6be4a29fe8fb03a82f85e568a0">SVF::VFG::FULLSVFG_OPT</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00057">VFG.h:57</a></div></div>
338
338
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00101">SVFUtil.cpp:101</a></div></div>
339
339
  <div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d">SVF::VFG::PTRONLYSVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00057">VFG.h:57</a></div></div>
@@ -534,9 +534,9 @@ Protected Attributes</h2></td></tr>
534
534
  <p>Reimplemented in <a class="el" href="classSVF_1_1MTASVFGBuilder.html#a3b75cd10a314c920669cd0d4790e1a16">SVF::MTASVFGBuilder</a>, and <a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a4d70d1413f42f30437d8eb45ff00b6f6">SVF::SaberSVFGBuilder</a>.</p>
535
535
 
536
536
  <p class="definition">Definition at line <a class="el" href="SVFGBuilder_8cpp_source.html#l00068">68</a> of file <a class="el" href="SVFGBuilder_8cpp_source.html">SVFGBuilder.cpp</a>.</p>
537
- <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">getMSSA</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">buildSVFG</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#adc9fbb4553472b238d6c3bb5062279cb">performStat</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_adc9fbb4553472b238d6c3bb5062279cb"><div class="ttname"><a href="classSVF_1_1SVFG.html#adc9fbb4553472b238d6c3bb5062279cb">SVF::SVFG::performStat</a></div><div class="ttdeci">void performStat()</div><div class="ttdoc">Perform statistics. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00760">SVFG.cpp:760</a></div></div>
537
+ <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">getMSSA</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">buildSVFG</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>()-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#adc9fbb4553472b238d6c3bb5062279cb">performStat</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_adc9fbb4553472b238d6c3bb5062279cb"><div class="ttname"><a href="classSVF_1_1SVFG.html#adc9fbb4553472b238d6c3bb5062279cb">SVF::SVFG::performStat</a></div><div class="ttdeci">void performStat()</div><div class="ttdoc">Perform statistics. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00740">SVFG.cpp:740</a></div></div>
538
538
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4880571f57542afc50da506dfe273183"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">SVF::PointerAnalysis::printStat</a></div><div class="ttdeci">bool printStat()</div><div class="ttdoc">Whether print statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00378">PointerAnalysis.h:378</a></div></div>
539
- <div class="ttc" id="classSVF_1_1SVFG_html_a0920e9f9896531959d74ae61013d96d6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Start building SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00219">SVFG.cpp:219</a></div></div>
539
+ <div class="ttc" id="classSVF_1_1SVFG_html_a0920e9f9896531959d74ae61013d96d6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Start building SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00199">SVFG.cpp:199</a></div></div>
540
540
  <div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00046">MemSSA.h:46</a></div></div>
541
541
  <div class="ttc" id="classSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00315">MemSSA.h:315</a></div></div>
542
542
  <div class="ttc" id="classSVF_1_1SVFG_html_a49a910bc4ea6e98d1584e74a018badc9"><div class="ttname"><a href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">SVF::SVFG::getMSSA</a></div><div class="ttdeci">MemSSA * getMSSA() const</div><div class="ttdoc">Get SVFG memory SSA. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00138">SVFG.h:138</a></div></div>
@@ -947,7 +947,7 @@ Additional Inherited Members</h2></td></tr>
947
947
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00354">SVFGOPT.h:354</a></div></div>
948
948
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_ac68a53c567929ba8b69c00e3e8d9d30f"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#ac68a53c567929ba8b69c00e3e8d9d30f">SVF::SVFGOPT::keepContextSelfCycle</a></div><div class="ttdeci">bool keepContextSelfCycle</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00356">SVFGOPT.h:356</a></div></div>
949
949
  <div class="ttc" id="classSVF_1_1VFG_html_a3867c591a231bad0aa2e6ab7c095a42f"><div class="ttname"><a href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">SVF::VFG::kind</a></div><div class="ttdeci">VFGK kind</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00103">VFG.h:103</a></div></div>
950
- <div class="ttc" id="classSVF_1_1SVFG_html_a68965c5a9cc5136aa0b593851c60ff12"><div class="ttname"><a href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVF::SVFG::SVFG</a></div><div class="ttdeci">SVFG(MemSSA *mssa, VFGK k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00195">SVFG.cpp:195</a></div></div>
950
+ <div class="ttc" id="classSVF_1_1SVFG_html_a68965c5a9cc5136aa0b593851c60ff12"><div class="ttname"><a href="classSVF_1_1SVFG.html#a68965c5a9cc5136aa0b593851c60ff12">SVF::SVFG::SVFG</a></div><div class="ttdeci">SVFG(MemSSA *mssa, VFGK k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00175">SVFG.cpp:175</a></div></div>
951
951
  </div><!-- fragment -->
952
952
  </div>
953
953
  </div>
@@ -1091,9 +1091,9 @@ Additional Inherited Members</h2></td></tr>
1091
1091
  <p>Add indirect call edge from src to dst with one call site ID. </p>
1092
1092
 
1093
1093
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00068">68</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
1094
- <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac3ad7d0cf734e867b91a081aad1faff2">Options::ContextInsensitive</a>)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(srcId, dstId, cpts);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#af8ceb1ebf745e6803c606c41f7a482ac">addCallIndirectVFEdge</a>(srcId, dstId, cpts, csid);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_af8ceb1ebf745e6803c606c41f7a482ac"><div class="ttname"><a href="classSVF_1_1SVFG.html#af8ceb1ebf745e6803c606c41f7a482ac">SVF::SVFG::addCallIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addCallIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00488">SVFG.cpp:488</a></div></div>
1094
+ <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac3ad7d0cf734e867b91a081aad1faff2">Options::ContextInsensitive</a>)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(srcId, dstId, cpts);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#af8ceb1ebf745e6803c606c41f7a482ac">addCallIndirectVFEdge</a>(srcId, dstId, cpts, csid);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_af8ceb1ebf745e6803c606c41f7a482ac"><div class="ttname"><a href="classSVF_1_1SVFG.html#af8ceb1ebf745e6803c606c41f7a482ac">SVF::SVFG::addCallIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addCallIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00468">SVFG.cpp:468</a></div></div>
1095
1095
  <div class="ttc" id="classSVF_1_1Options_html_ac3ad7d0cf734e867b91a081aad1faff2"><div class="ttname"><a href="classSVF_1_1Options.html#ac3ad7d0cf734e867b91a081aad1faff2">SVF::Options::ContextInsensitive</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ContextInsensitive</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00110">Options.h:110</a></div></div>
1096
- <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00446">SVFG.cpp:446</a></div></div>
1096
+ <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00426">SVFG.cpp:426</a></div></div>
1097
1097
  </div><!-- fragment -->
1098
1098
  </div>
1099
1099
  </div>
@@ -1301,7 +1301,7 @@ Additional Inherited Members</h2></td></tr>
1301
1301
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a11dc712bf74ba61160fed7a5c3efaeee"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a11dc712bf74ba61160fed7a5c3efaeee">SVF::SVFGOPT::addCallIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addCallIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &amp;cpts)</div><div class="ttdoc">Add inter-procedural value flow edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00068">SVFGOPT.cpp:68</a></div></div>
1302
1302
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
1303
1303
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_afa99da68ef756d968d39a85f0fac3649"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">SVF::SVFGOPT::addRetIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect ret edge from src to dst with one call site ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00079">SVFGOPT.cpp:79</a></div></div>
1304
- <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00446">SVFG.cpp:446</a></div></div>
1304
+ <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00426">SVFG.cpp:426</a></div></div>
1305
1305
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a6d5cdb3b78e4ed482b0da4c64323b463"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a6d5cdb3b78e4ed482b0da4c64323b463">SVF::SVFGOPT::bothInterEdges</a></div><div class="ttdeci">bool bothInterEdges(const SVFGEdge *edge1, const SVFGEdge *edge2) const</div><div class="ttdoc">Return TRUE if both edges are indirect call/ret edges. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00230">SVFGOPT.h:230</a></div></div>
1306
1306
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
1307
1307
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html_a30aca718d25924f1babdf348bb0ace71"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">SVF::IndirectSVFGEdge::getPointsTo</a></div><div class="ttdeci">const NodeBS &amp; getPointsTo() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00061">SVFGEdge.h:61</a></div></div>
@@ -1357,9 +1357,9 @@ Additional Inherited Members</h2></td></tr>
1357
1357
  <p>Add indirect ret edge from src to dst with one call site ID. </p>
1358
1358
 
1359
1359
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00079">79</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
1360
- <div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac3ad7d0cf734e867b91a081aad1faff2">Options::ContextInsensitive</a>)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(srcId, dstId, cpts);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#a8ebf0e285c69db8332a1f8914d6190f6">addRetIndirectVFEdge</a>(srcId, dstId, cpts, csid);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_a8ebf0e285c69db8332a1f8914d6190f6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8ebf0e285c69db8332a1f8914d6190f6">SVF::SVFG::addRetIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00508">SVFG.cpp:508</a></div></div>
1360
+ <div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ac3ad7d0cf734e867b91a081aad1faff2">Options::ContextInsensitive</a>)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">addIntraIndirectVFEdge</a>(srcId, dstId, cpts);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFG.html#a8ebf0e285c69db8332a1f8914d6190f6">addRetIndirectVFEdge</a>(srcId, dstId, cpts, csid);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_a8ebf0e285c69db8332a1f8914d6190f6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8ebf0e285c69db8332a1f8914d6190f6">SVF::SVFG::addRetIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts, CallSiteID csId)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00488">SVFG.cpp:488</a></div></div>
1361
1361
  <div class="ttc" id="classSVF_1_1Options_html_ac3ad7d0cf734e867b91a081aad1faff2"><div class="ttname"><a href="classSVF_1_1Options.html#ac3ad7d0cf734e867b91a081aad1faff2">SVF::Options::ContextInsensitive</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ContextInsensitive</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00110">Options.h:110</a></div></div>
1362
- <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00446">SVFG.cpp:446</a></div></div>
1362
+ <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00426">SVFG.cpp:426</a></div></div>
1363
1363
  </div><!-- fragment -->
1364
1364
  </div>
1365
1365
  </div>
@@ -1432,11 +1432,11 @@ Additional Inherited Members</h2></td></tr>
1432
1432
  <p>Reimplemented from <a class="el" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG</a>.</p>
1433
1433
 
1434
1434
  <p class="definition">Definition at line <a class="el" href="SVFGOPT_8cpp_source.html#l00047">47</a> of file <a class="el" href="SVFGOPT_8cpp_source.html">SVFGOPT.cpp</a>.</p>
1435
- <div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVFG::buildSVFG</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">&quot;SVFG_before_opt&quot;</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">&quot;\tSVFG Optimisation\n&quot;</span>));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <a class="code" href="classSVF_1_1Options.html#acd687c31bb6662940ab8a1c3d17dc1ef">Options::KeepAOFI</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#acb80953b39ce247679242df4f042ab79">sfvgOptStart</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a4c698184cc23730fb44904d4048958da">handleInterValueFlow</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a21429d8c3fba209d9cdc22e3623c5573">handleIntraValueFlow</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#aaec3a7f29b3ded0c971d57376d2779ff">sfvgOptEnd</a>();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00559">SVFG.cpp:559</a></div></div>
1435
+ <div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVFG::buildSVFG</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">Options::DumpVFG</a>)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">&quot;SVFG_before_opt&quot;</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">&quot;\tSVFG Optimisation\n&quot;</span>));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">keepActualOutFormalIn</a> = <a class="code" href="classSVF_1_1Options.html#acd687c31bb6662940ab8a1c3d17dc1ef">Options::KeepAOFI</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#acb80953b39ce247679242df4f042ab79">sfvgOptStart</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a4c698184cc23730fb44904d4048958da">handleInterValueFlow</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="classSVF_1_1SVFGOPT.html#a21429d8c3fba209d9cdc22e3623c5573">handleIntraValueFlow</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">stat</a>-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#aaec3a7f29b3ded0c971d57376d2779ff">sfvgOptEnd</a>();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00539">SVFG.cpp:539</a></div></div>
1436
1436
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00101">SVFUtil.cpp:101</a></div></div>
1437
1437
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a7e57ca56a587a5b59543b5bab7fe794d"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a7e57ca56a587a5b59543b5bab7fe794d">SVF::SVFGOPT::keepActualOutFormalIn</a></div><div class="ttdeci">bool keepActualOutFormalIn</div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8h_source.html#l00354">SVFGOPT.h:354</a></div></div>
1438
1438
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_a21429d8c3fba209d9cdc22e3623c5573"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#a21429d8c3fba209d9cdc22e3623c5573">SVF::SVFGOPT::handleIntraValueFlow</a></div><div class="ttdeci">void handleIntraValueFlow()</div><div class="ttdoc">Remove MSSAPHI SVFG nodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00393">SVFGOPT.cpp:393</a></div></div>
1439
- <div class="ttc" id="classSVF_1_1SVFG_html_a0920e9f9896531959d74ae61013d96d6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Start building SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00219">SVFG.cpp:219</a></div></div>
1439
+ <div class="ttc" id="classSVF_1_1SVFG_html_a0920e9f9896531959d74ae61013d96d6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Start building SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00199">SVFG.cpp:199</a></div></div>
1440
1440
  <div class="ttc" id="classSVF_1_1Options_html_a3061c75f7491dd737222b1b877721070"><div class="ttname"><a href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">SVF::Options::DumpVFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00115">Options.h:115</a></div></div>
1441
1441
  <div class="ttc" id="classSVF_1_1SVFG_html_ad5c1415f488ec4412d5457262269eff3"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad5c1415f488ec4412d5457262269eff3">SVF::SVFG::stat</a></div><div class="ttdeci">SVFGStat * stat</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00104">SVFG.h:104</a></div></div>
1442
1442
  <div class="ttc" id="classSVF_1_1SVFGStat_html_aaec3a7f29b3ded0c971d57376d2779ff"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#aaec3a7f29b3ded0c971d57376d2779ff">SVF::SVFGStat::sfvgOptEnd</a></div><div class="ttdeci">void sfvgOptEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00154">SVFGStat.h:154</a></div></div>
@@ -2487,7 +2487,7 @@ Additional Inherited Members</h2></td></tr>
2487
2487
  <div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00061">VFGNode.h:61</a></div></div>
2488
2488
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00087">SVFBasicTypes.h:87</a></div></div>
2489
2489
  <div class="ttc" id="classSVF_1_1SVFGOPT_html_afa99da68ef756d968d39a85f0fac3649"><div class="ttname"><a href="classSVF_1_1SVFGOPT.html#afa99da68ef756d968d39a85f0fac3649">SVF::SVFGOPT::addRetIndirectSVFGEdge</a></div><div class="ttdeci">SVFGEdge * addRetIndirectSVFGEdge(NodeID srcId, NodeID dstId, CallSiteID csid, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect ret edge from src to dst with one call site ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGOPT_8cpp_source.html#l00079">SVFGOPT.cpp:79</a></div></div>
2490
- <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00446">SVFG.cpp:446</a></div></div>
2490
+ <div class="ttc" id="classSVF_1_1SVFG_html_ad03f0064d3a1ff397b35a606304a9c80"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad03f0064d3a1ff397b35a606304a9c80">SVF::SVFG::addIntraIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addIntraIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdoc">Add indirect def-use edges of a memory region between two statements,. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00426">SVFG.cpp:426</a></div></div>
2491
2491
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
2492
2492
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00205">GenericGraph.h:205</a></div></div>
2493
2493
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html_a30aca718d25924f1babdf348bb0ace71"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">SVF::IndirectSVFGEdge::getPointsTo</a></div><div class="ttdeci">const NodeBS &amp; getPointsTo() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00061">SVFGEdge.h:61</a></div></div>
@@ -350,10 +350,10 @@ Additional Inherited Members</h2></td></tr>
350
350
  <p>Annotation. </p>
351
351
 
352
352
  <p class="definition">Definition at line <a class="el" href="SaberAnnotator_8cpp_source.html#l00038">38</a> of file <a class="el" href="SaberAnnotator_8cpp_source.html">SaberAnnotator.cpp</a>.</p>
353
- <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; std::string str;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#a01900f5ada5948361cc18857aee26744">SB_SLICESOURCE</a> ; <span class="comment">//&lt;&lt; _curSlice-&gt;getSource()-&gt;getId();</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* sourceinst = SVFUtil::dyn_cast&lt;Instruction&gt;(<a class="code" href="classSVF_1_1SaberAnnotator.html#adceb8a459b44c289413401b57d8aeb4d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ae91ba54faff9f6a2f85a499799419cb5">getLLVMValue</a>(<a class="code" href="classSVF_1_1SaberAnnotator.html#adceb8a459b44c289413401b57d8aeb4d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>())))</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(const_cast&lt;Instruction*&gt;(sourceinst),rawstr.str());</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;instruction of source node not found&quot;</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="ttc" id="classSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00112">ProgSlice.h:112</a></div></div>
353
+ <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; std::string str;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#a01900f5ada5948361cc18857aee26744">SB_SLICESOURCE</a> ; <span class="comment">//&lt;&lt; _curSlice-&gt;getSource()-&gt;getId();</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* sourceinst = SVFUtil::dyn_cast&lt;Instruction&gt;(<a class="code" href="classSVF_1_1SaberAnnotator.html#adceb8a459b44c289413401b57d8aeb4d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>()-&gt;<a class="code" href="classSVF_1_1VFGNode.html#a5ac80149696c243f77e4b4d25ad44898">getValue</a>()))</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(const_cast&lt;Instruction*&gt;(sourceinst),rawstr.str());</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;instruction of source node not found&quot;</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="ttc" id="classSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00112">ProgSlice.h:112</a></div></div>
354
354
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
355
355
  <div class="ttc" id="classSVF_1_1Annotator_html_a01900f5ada5948361cc18857aee26744"><div class="ttname"><a href="classSVF_1_1Annotator.html#a01900f5ada5948361cc18857aee26744">SVF::Annotator::SB_SLICESOURCE</a></div><div class="ttdeci">const char * SB_SLICESOURCE</div><div class="ttdoc">Saber annotations. </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00174">Annotator.h:174</a></div></div>
356
- <div class="ttc" id="classSVF_1_1ProgSlice_html_ae91ba54faff9f6a2f85a499799419cb5"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ae91ba54faff9f6a2f85a499799419cb5">SVF::ProgSlice::getLLVMValue</a></div><div class="ttdeci">const Value * getLLVMValue(const SVFGNode *node) const</div><div class="ttdoc">Get llvm value from a SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00154">ProgSlice.cpp:154</a></div></div>
356
+ <div class="ttc" id="classSVF_1_1VFGNode_html_a5ac80149696c243f77e4b4d25ad44898"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a5ac80149696c243f77e4b4d25ad44898">SVF::VFGNode::getValue</a></div><div class="ttdeci">virtual const Value * getValue() const</div><div class="ttdoc">Return the corresponding LLVM value, if possible, nullptr otherwise. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00091">VFGNode.h:91</a></div></div>
357
357
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
358
358
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
359
359
  <div class="ttc" id="classSVF_1_1SaberAnnotator_html_adceb8a459b44c289413401b57d8aeb4d"><div class="ttname"><a href="classSVF_1_1SaberAnnotator.html#adceb8a459b44c289413401b57d8aeb4d">SVF::SaberAnnotator::_curSlice</a></div><div class="ttdeci">const ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SaberAnnotator_8h_source.html#l00047">SaberAnnotator.h:47</a></div></div>
@@ -488,11 +488,11 @@ Additional Inherited Members</h2></td></tr>
488
488
  <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="classSVF_1_1MemSSA.html">MemSSA</a>* mssa = <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a49a910bc4ea6e98d1584e74a018badc9">getMSSA</a>();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">buildSVFG</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>* pta = mssa-&gt;<a class="code" href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">getPTA</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tCollect Global Variables\n&quot;</span>));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a2d0492c50159a5f97a587874c6877286">collectGlobals</a>(pta);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tRemove Dereference Direct SVFG Edge\n&quot;</span>));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ad8f4f63d2071be4eb5f6fb2fdf29a10a">rmDerefDirSVFGEdges</a>(pta);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ae0a9c42c850bda29aeae2f47ad2b8f4a">rmIncomingEdgeForSUStore</a>(pta);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tAdd Sink SVFG Nodes\n&quot;</span>));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1SaberSVFGBuilder.html#ab6870d6f6f5abc5417dcea771eaa31f7">AddExtActualParmSVFGNodes</a>(pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>());</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html#a26bc3b9c07472e454bc567cd8746caef">svfg</a>-&gt;<a class="code" href="classSVF_1_1SVFG.html#adc9fbb4553472b238d6c3bb5062279cb">performStat</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="ttc" id="classSVF_1_1SaberSVFGBuilder_html_ae0a9c42c850bda29aeae2f47ad2b8f4a"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ae0a9c42c850bda29aeae2f47ad2b8f4a">SVF::SaberSVFGBuilder::rmIncomingEdgeForSUStore</a></div><div class="ttdeci">void rmIncomingEdgeForSUStore(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00221">SaberSVFGBuilder.cpp:221</a></div></div>
489
489
  <div class="ttc" id="classSVF_1_1BVDataPTAImpl_html"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00042">PointerAnalysisImpl.h:42</a></div></div>
490
490
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00101">SVFUtil.cpp:101</a></div></div>
491
- <div class="ttc" id="classSVF_1_1SVFG_html_adc9fbb4553472b238d6c3bb5062279cb"><div class="ttname"><a href="classSVF_1_1SVFG.html#adc9fbb4553472b238d6c3bb5062279cb">SVF::SVFG::performStat</a></div><div class="ttdeci">void performStat()</div><div class="ttdoc">Perform statistics. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00760">SVFG.cpp:760</a></div></div>
491
+ <div class="ttc" id="classSVF_1_1SVFG_html_adc9fbb4553472b238d6c3bb5062279cb"><div class="ttname"><a href="classSVF_1_1SVFG.html#adc9fbb4553472b238d6c3bb5062279cb">SVF::SVFG::performStat</a></div><div class="ttdeci">void performStat()</div><div class="ttdoc">Perform statistics. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00740">SVFG.cpp:740</a></div></div>
492
492
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4880571f57542afc50da506dfe273183"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">SVF::PointerAnalysis::printStat</a></div><div class="ttdeci">bool printStat()</div><div class="ttdoc">Whether print statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00378">PointerAnalysis.h:378</a></div></div>
493
493
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00178">PointerAnalysis.h:178</a></div></div>
494
494
  <div class="ttc" id="classSVF_1_1SaberSVFGBuilder_html_a2d0492c50159a5f97a587874c6877286"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a2d0492c50159a5f97a587874c6877286">SVF::SaberSVFGBuilder::collectGlobals</a></div><div class="ttdeci">void collectGlobals(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00066">SaberSVFGBuilder.cpp:66</a></div></div>
495
- <div class="ttc" id="classSVF_1_1SVFG_html_a0920e9f9896531959d74ae61013d96d6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Start building SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00219">SVFG.cpp:219</a></div></div>
495
+ <div class="ttc" id="classSVF_1_1SVFG_html_a0920e9f9896531959d74ae61013d96d6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0920e9f9896531959d74ae61013d96d6">SVF::SVFG::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Start building SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00199">SVFG.cpp:199</a></div></div>
496
496
  <div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00046">MemSSA.h:46</a></div></div>
497
497
  <div class="ttc" id="classSVF_1_1SaberSVFGBuilder_html_ab6870d6f6f5abc5417dcea771eaa31f7"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#ab6870d6f6f5abc5417dcea771eaa31f7">SVF::SaberSVFGBuilder::AddExtActualParmSVFGNodes</a></div><div class="ttdeci">virtual void AddExtActualParmSVFGNodes(PTACallGraph *callgraph)</div><div class="ttdoc">Add actual parameter SVFGNode for 1st argument of a deallocation like external function. </div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8cpp_source.html#l00252">SaberSVFGBuilder.cpp:252</a></div></div>
498
498
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
@@ -114,7 +114,7 @@ $(function() {
114
114
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
115
115
  <tr><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#a837da5917c31e14aa51c6fa3e2640849">getPAGSrcNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
116
116
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
117
- <tr><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#a8c4b1744d94091193bb8cc882c0f29eb">getValue</a>() const override</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
117
+ <tr><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#ab51f462a26bc03cd5e2379be98a4dd3b">getValue</a>() const override</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
118
118
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#a363b90ab02cce2ebc3ede8e5b7cc141c">GNodeK</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"></td></tr>
119
119
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
120
120
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#add6b6b3bd45a9460335c5db9eda821b8">hasIncomingEdge</a>(EdgeType *edge) const</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -96,9 +96,9 @@ Public Member Functions</h2></td></tr>
96
96
  <tr class="memitem:a88d856dc04d922dc553bc2eae31e88a6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1StmtVFGNode.html#a88d856dc04d922dc553bc2eae31e88a6">isPTANode</a> () const</td></tr>
97
97
  <tr class="memdesc:a88d856dc04d922dc553bc2eae31e88a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether this node is used for pointer analysis. Both src and dst PAGNodes are of ptr type. <a href="#a88d856dc04d922dc553bc2eae31e88a6">More...</a><br /></td></tr>
98
98
  <tr class="separator:a88d856dc04d922dc553bc2eae31e88a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
- <tr class="memitem:a8c4b1744d94091193bb8cc882c0f29eb"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1StmtVFGNode.html#a8c4b1744d94091193bb8cc882c0f29eb">getValue</a> () const override</td></tr>
100
- <tr class="memdesc:a8c4b1744d94091193bb8cc882c0f29eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the corresponding LLVM value, if possible, nullptr otherwise. <a href="#a8c4b1744d94091193bb8cc882c0f29eb">More...</a><br /></td></tr>
101
- <tr class="separator:a8c4b1744d94091193bb8cc882c0f29eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
+ <tr class="memitem:ab51f462a26bc03cd5e2379be98a4dd3b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1StmtVFGNode.html#ab51f462a26bc03cd5e2379be98a4dd3b">getValue</a> () const override</td></tr>
100
+ <tr class="memdesc:ab51f462a26bc03cd5e2379be98a4dd3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the corresponding LLVM value, if possible, nullptr otherwise. <a href="#ab51f462a26bc03cd5e2379be98a4dd3b">More...</a><br /></td></tr>
101
+ <tr class="separator:ab51f462a26bc03cd5e2379be98a4dd3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
102
102
  <tr class="memitem:aa5011ff12de490146ab106e90d0b6ad8"><td class="memItemLeft" align="right" valign="top">const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1StmtVFGNode.html#aa5011ff12de490146ab106e90d0b6ad8">toString</a> () const override</td></tr>
103
103
  <tr class="separator:aa5011ff12de490146ab106e90d0b6ad8"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
104
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
@@ -599,8 +599,8 @@ Additional Inherited Members</h2></td></tr>
599
599
  </div><!-- fragment -->
600
600
  </div>
601
601
  </div>
602
- <a id="a8c4b1744d94091193bb8cc882c0f29eb"></a>
603
- <h2 class="memtitle"><span class="permalink"><a href="#a8c4b1744d94091193bb8cc882c0f29eb">&#9670;&nbsp;</a></span>getValue()</h2>
602
+ <a id="ab51f462a26bc03cd5e2379be98a4dd3b"></a>
603
+ <h2 class="memtitle"><span class="permalink"><a href="#ab51f462a26bc03cd5e2379be98a4dd3b">&#9670;&nbsp;</a></span>getValue()</h2>
604
604
 
605
605
  <div class="memitem">
606
606
  <div class="memproto">
@@ -609,7 +609,7 @@ Additional Inherited Members</h2></td></tr>
609
609
  <td class="mlabels-left">
610
610
  <table class="memname">
611
611
  <tr>
612
- <td class="memname">const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * StmtSVFGNode::getValue </td>
612
+ <td class="memname">const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * StmtVFGNode::getValue </td>
613
613
  <td>(</td>
614
614
  <td class="paramname"></td><td>)</td>
615
615
  <td> const</td>
@@ -626,8 +626,8 @@ Additional Inherited Members</h2></td></tr>
626
626
 
627
627
  <p>Reimplemented from <a class="el" href="classSVF_1_1VFGNode.html#a5ac80149696c243f77e4b4d25ad44898">SVF::VFGNode</a>.</p>
628
628
 
629
- <p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00164">164</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
630
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>()-&gt;<a class="code" href="classSVF_1_1PAGEdge.html#aa0adbe8548303302425bc6b276445f30">getValue</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAGEdge_html_aa0adbe8548303302425bc6b276445f30"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#aa0adbe8548303302425bc6b276445f30">SVF::PAGEdge::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00116">PAGEdge.h:116</a></div></div>
629
+ <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00894">894</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
630
+ <div class="fragment"><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; {</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>()-&gt;<a class="code" href="classSVF_1_1PAGEdge.html#aa0adbe8548303302425bc6b276445f30">getValue</a>();</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;}</div><div class="ttc" id="classSVF_1_1PAGEdge_html_aa0adbe8548303302425bc6b276445f30"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#aa0adbe8548303302425bc6b276445f30">SVF::PAGEdge::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00116">PAGEdge.h:116</a></div></div>
631
631
  <div class="ttc" id="classSVF_1_1StmtVFGNode_html_a4dd7615f42971da9b6ec1dc04f0ec4e6"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">SVF::StmtVFGNode::getPAGEdge</a></div><div class="ttdeci">const PAGEdge * getPAGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00134">VFGNode.h:134</a></div></div>
632
632
  </div><!-- fragment -->
633
633
  </div>
@@ -725,7 +725,6 @@ Additional Inherited Members</h2></td></tr>
725
725
  </div>
726
726
  <hr/>The documentation for this class was generated from the following files:<ul>
727
727
  <li>/home/runner/work/SVF/SVF/include/Graphs/<a class="el" href="VFGNode_8h_source.html">VFGNode.h</a></li>
728
- <li>/home/runner/work/SVF/SVF/lib/Graphs/<a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a></li>
729
728
  <li>/home/runner/work/SVF/SVF/lib/Graphs/<a class="el" href="VFG_8cpp_source.html">VFG.cpp</a></li>
730
729
  </ul>
731
730
  </div><!-- contents -->
@@ -115,7 +115,7 @@ $(function() {
115
115
  <tr><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
116
116
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#a837da5917c31e14aa51c6fa3e2640849">getPAGSrcNode</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
117
117
  <tr><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
118
- <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#a8c4b1744d94091193bb8cc882c0f29eb">getValue</a>() const override</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
118
+ <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html#ab51f462a26bc03cd5e2379be98a4dd3b">getValue</a>() const override</td><td class="entry"><a class="el" href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
119
119
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#a363b90ab02cce2ebc3ede8e5b7cc141c">GNodeK</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"></td></tr>
120
120
  <tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#a06a7373b11143e709784de784fa476fe">hasIncomingEdge</a>() const</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
121
121
  <tr><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html#add6b6b3bd45a9460335c5db9eda821b8">hasIncomingEdge</a>(EdgeType *edge) const</td><td class="entry"><a class="el" href="classSVF_1_1GenericNode.html">SVF::GenericNode&lt; NodeTy, EdgeTy &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -98,9 +98,9 @@ Public Member Functions</h2></td></tr>
98
98
  <tr class="memitem:a88d856dc04d922dc553bc2eae31e88a6 inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1StmtVFGNode.html#a88d856dc04d922dc553bc2eae31e88a6">isPTANode</a> () const</td></tr>
99
99
  <tr class="memdesc:a88d856dc04d922dc553bc2eae31e88a6 inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether this node is used for pointer analysis. Both src and dst PAGNodes are of ptr type. <a href="classSVF_1_1StmtVFGNode.html#a88d856dc04d922dc553bc2eae31e88a6">More...</a><br /></td></tr>
100
100
  <tr class="separator:a88d856dc04d922dc553bc2eae31e88a6 inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
- <tr class="memitem:a8c4b1744d94091193bb8cc882c0f29eb inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1StmtVFGNode.html#a8c4b1744d94091193bb8cc882c0f29eb">getValue</a> () const override</td></tr>
102
- <tr class="memdesc:a8c4b1744d94091193bb8cc882c0f29eb inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the corresponding LLVM value, if possible, nullptr otherwise. <a href="classSVF_1_1StmtVFGNode.html#a8c4b1744d94091193bb8cc882c0f29eb">More...</a><br /></td></tr>
103
- <tr class="separator:a8c4b1744d94091193bb8cc882c0f29eb inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
+ <tr class="memitem:ab51f462a26bc03cd5e2379be98a4dd3b inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1StmtVFGNode.html#ab51f462a26bc03cd5e2379be98a4dd3b">getValue</a> () const override</td></tr>
102
+ <tr class="memdesc:ab51f462a26bc03cd5e2379be98a4dd3b inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the corresponding LLVM value, if possible, nullptr otherwise. <a href="classSVF_1_1StmtVFGNode.html#ab51f462a26bc03cd5e2379be98a4dd3b">More...</a><br /></td></tr>
103
+ <tr class="separator:ab51f462a26bc03cd5e2379be98a4dd3b inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
104
  <tr class="memitem:a4dd7615f42971da9b6ec1dc04f0ec4e6 inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSVF_1_1PAGEdge.html">PAGEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a> () const</td></tr>
105
105
  <tr class="separator:a4dd7615f42971da9b6ec1dc04f0ec4e6 inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
106
  <tr class="memitem:a791a01f5d3528f8a8bf19369b5c61c37 inherit pub_methods_classSVF_1_1StmtVFGNode"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1StmtVFGNode.html#a791a01f5d3528f8a8bf19369b5c61c37">getPAGSrcNodeID</a> () const</td></tr>
@@ -1123,7 +1123,7 @@ Additional Inherited Members</h2></td></tr>
1123
1123
  <p class="definition">Definition at line <a class="el" href="TCT_8cpp_source.html#l00545">545</a> of file <a class="el" href="TCT_8cpp_source.html">TCT.cpp</a>.</p>
1124
1124
  <div class="fragment"><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;{</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a19758db674de8af8a1c80734a1c0fac8">Options::TCTDotGraph</a>)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <a class="code" href="classllvm_1_1GraphPrinter.html#a53b3809728c30389a594076097884b82">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>(), filename, <span class="keyword">this</span>);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
1125
1125
  <div class="ttc" id="classSVF_1_1Options_html_a19758db674de8af8a1c80734a1c0fac8"><div class="ttname"><a href="classSVF_1_1Options.html#a19758db674de8af8a1c80734a1c0fac8">SVF::Options::TCTDotGraph</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; TCTDotGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00186">Options.h:186</a></div></div>
1126
- <div class="ttc" id="classllvm_1_1GraphPrinter_html_a53b3809728c30389a594076097884b82"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#a53b3809728c30389a594076097884b82">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(llvm::raw_ostream &amp;O, const std::string &amp;GraphName, const GraphType &amp;GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00056">GraphPrinter.h:56</a></div></div>
1126
+ <div class="ttc" id="classllvm_1_1GraphPrinter_html_a53b3809728c30389a594076097884b82"><div class="ttname"><a href="classllvm_1_1GraphPrinter.html#a53b3809728c30389a594076097884b82">llvm::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(llvm::raw_ostream &amp;O, const std::string &amp;GraphName, const GraphType &amp;GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00057">GraphPrinter.h:57</a></div></div>
1127
1127
  </div><!-- fragment -->
1128
1128
  </div>
1129
1129
  </div>