svf-tools 1.0.292 → 1.0.293

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 (84) hide show
  1. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
  4. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  5. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -12
  7. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +33 -35
  8. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +31 -36
  10. package/SVF-doxygen/html/html/SVFG_8h_source.html +19 -19
  11. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/html/VFG_8cpp_source.html +16 -10
  13. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode-members.html +1 -1
  15. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +3 -3
  16. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +2 -3
  17. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -3
  18. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -3
  19. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  20. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode-members.html +1 -1
  21. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +3 -3
  22. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
  23. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +2 -2
  24. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  25. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  26. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  27. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode-members.html +1 -1
  28. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +3 -3
  29. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
  30. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode-members.html +1 -1
  31. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +3 -3
  32. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
  33. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -3
  34. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +36 -37
  35. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +121 -153
  36. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +49 -49
  37. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  38. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
  39. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +2 -2
  40. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  41. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode-members.html +1 -1
  42. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +8 -9
  43. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode-members.html +1 -1
  44. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +3 -3
  45. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  46. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +2 -2
  47. package/SVF-doxygen/html/html/functions_f.html +3 -3
  48. package/SVF-doxygen/html/html/functions_func_g.html +9 -12
  49. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  50. package/SVF-doxygen/html/html/functions_g.html +10 -13
  51. package/SVF-doxygen/html/html/functions_n.html +3 -3
  52. package/SVF-doxygen/html/html/functions_o.html +11 -11
  53. package/SVF-doxygen/html/html/functions_p.html +9 -5
  54. package/SVF-doxygen/html/html/functions_r.html +3 -5
  55. package/SVF-doxygen/html/html/functions_s.html +6 -6
  56. package/SVF-doxygen/html/html/functions_t.html +6 -6
  57. package/SVF-doxygen/html/html/functions_u.html +3 -3
  58. package/SVF-doxygen/html/html/functions_v.html +3 -3
  59. package/SVF-doxygen/html/html/functions_w.html +8 -6
  60. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  61. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  62. package/SVF-doxygen/html/html/search/all_13.js +2 -2
  63. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  64. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  65. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  66. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  67. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  68. package/SVF-doxygen/html/html/search/all_7.js +1 -2
  69. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  70. package/SVF-doxygen/html/html/search/all_e.js +4 -4
  71. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  72. package/SVF-doxygen/html/html/search/functions_6.js +1 -2
  73. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  74. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  75. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  76. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  77. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
  78. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +18 -18
  79. package/include/SABER/ProgSlice.h +0 -3
  80. package/lib/Graphs/SVFG.cpp +0 -20
  81. package/lib/Graphs/VFG.cpp +18 -0
  82. package/lib/SABER/ProgSlice.cpp +0 -37
  83. package/lib/SABER/SaberAnnotator.cpp +1 -1
  84. package/package.json +1 -1
@@ -71,7 +71,7 @@ $(function() {
71
71
  <div class="ttc" id="classSVF_1_1SVFG_html_a60df52c14b303562ff5d73c7836e3495"><div class="ttname"><a href="classSVF_1_1SVFG.html#a60df52c14b303562ff5d73c7836e3495">SVF::SVFG::CHI</a></div><div class="ttdeci">MemSSA::CHI CHI</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00090">SVFG.h:90</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1VFG_html_a84cf5facb15e1d598c2527fba0c7634d"><div class="ttname"><a href="classSVF_1_1VFG.html#a84cf5facb15e1d598c2527fba0c7634d">SVF::VFG::addVFGEdge</a></div><div class="ttdeci">bool addVFGEdge(VFGEdge *edge)</div><div class="ttdoc">Add VFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00326">VFG.h:326</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1SVFG_html_a931d8b82e10a54d68c68cf6bd80264be"><div class="ttname"><a href="classSVF_1_1SVFG.html#a931d8b82e10a54d68c68cf6bd80264be">SVF::SVFG::removeSVFGEdge</a></div><div class="ttdeci">void removeSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00237">SVFG.h:237</a></div></div>
74
- <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>
74
+ <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>
75
75
  <div class="ttc" id="classSVF_1_1VFG_html_aeb24b155fe31813b2e6dc0564f55738a"><div class="ttname"><a href="classSVF_1_1VFG.html#aeb24b155fe31813b2e6dc0564f55738a">SVF::VFG::removeVFGEdge</a></div><div class="ttdeci">void removeVFGEdge(VFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00306">VFG.h:306</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1VFG_html"><div class="ttname"><a href="classSVF_1_1VFG.html">SVF::VFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00050">VFG.h:50</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1SVFG_html_a047573d70182da351b9e3bbf66ca0056"><div class="ttname"><a href="classSVF_1_1SVFG.html#a047573d70182da351b9e3bbf66ca0056">SVF::SVFG::RETMU</a></div><div class="ttdeci">MemSSA::RETMU RETMU</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00093">SVFG.h:93</a></div></div>
@@ -91,7 +91,7 @@ $(function() {
91
91
  <div class="ttc" id="classSVF_1_1SVFG_html_acdbe1c510273107b708935061b6c4127"><div class="ttname"><a href="classSVF_1_1SVFG.html#acdbe1c510273107b708935061b6c4127">SVF::SVFG::MUSet</a></div><div class="ttdeci">MemSSA::MUSet MUSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00086">SVFG.h:86</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1SVFG_html_aee7cd64ac52d2ae930ab527325a77a30"><div class="ttname"><a href="classSVF_1_1SVFG.html#aee7cd64ac52d2ae930ab527325a77a30">SVF::SVFG::addFormalINSVFGNode</a></div><div class="ttdeci">void addFormalINSVFGNode(const FunEntryBlockNode *funEntry, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory Function entry chi SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00397">SVFG.h:397</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1SVFG_html_af9313ebec4a52fd887169b7c6373a7d4"><div class="ttname"><a href="classSVF_1_1SVFG.html#af9313ebec4a52fd887169b7c6373a7d4">SVF::SVFG::callSiteToActualINMap</a></div><div class="ttdeci">CallSiteToActualINsMapTy callSiteToActualINMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00100">SVFG.h:100</a></div></div>
94
- <div class="ttc" id="classSVF_1_1SVFG_html_af3bb18f904512cd6f450853666810229"><div class="ttname"><a href="classSVF_1_1SVFG.html#af3bb18f904512cd6f450853666810229">SVF::SVFG::getInterVFEdgesForIndirectCallSite</a></div><div class="ttdeci">void getInterVFEdgesForIndirectCallSite(const CallBlockNode *cs, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Get all inter value flow edges of a indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00586">SVFG.cpp:586</a></div></div>
94
+ <div class="ttc" id="classSVF_1_1SVFG_html_af3bb18f904512cd6f450853666810229"><div class="ttname"><a href="classSVF_1_1SVFG.html#af3bb18f904512cd6f450853666810229">SVF::SVFG::getInterVFEdgesForIndirectCallSite</a></div><div class="ttdeci">void getInterVFEdgesForIndirectCallSite(const CallBlockNode *cs, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Get all inter value flow edges of a indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00566">SVFG.cpp:566</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00201">GenericGraph.h:201</a></div></div>
96
96
  <div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00197">ICFG.cpp:197</a></div></div>
97
97
  <div class="ttc" id="structllvm_1_1GraphTraits_3_01SVF_1_1SVFG_01_5_01_4_html_afc660c371870b04ba6486980a7e4c9aa"><div class="ttname"><a href="structllvm_1_1GraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html#afc660c371870b04ba6486980a7e4c9aa">llvm::GraphTraits&lt; SVF::SVFG * &gt;::NodeRef</a></div><div class="ttdeci">SVF::SVFGNode * NodeRef</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00480">SVFG.h:480</a></div></div>
@@ -102,7 +102,7 @@ $(function() {
102
102
  <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>
103
103
  <div class="ttc" id="classSVF_1_1VFG_html_a122aa5ad874170ef644cee8705f1ef3e"><div class="ttname"><a href="classSVF_1_1VFG.html#a122aa5ad874170ef644cee8705f1ef3e">SVF::VFG::removeVFGNode</a></div><div class="ttdeci">void removeVFGNode(VFGNode *node)</div><div class="ttdoc">Remove a VFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00313">VFG.h:313</a></div></div>
104
104
  <div class="ttc" id="classSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
105
- <div class="ttc" id="classSVF_1_1SVFG_html_a5921483cd5e1bf77b1b2bc8fb3250612"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5921483cd5e1bf77b1b2bc8fb3250612">SVF::SVFG::connectFromGlobalToProgEntry</a></div><div class="ttdeci">void connectFromGlobalToProgEntry()</div><div class="ttdoc">Connect indirect SVFG edges from global initializers (store) to main function entry. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00409">SVFG.cpp:409</a></div></div>
105
+ <div class="ttc" id="classSVF_1_1SVFG_html_a5921483cd5e1bf77b1b2bc8fb3250612"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5921483cd5e1bf77b1b2bc8fb3250612">SVF::SVFG::connectFromGlobalToProgEntry</a></div><div class="ttdeci">void connectFromGlobalToProgEntry()</div><div class="ttdoc">Connect indirect SVFG edges from global initializers (store) to main function entry. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00389">SVFG.cpp:389</a></div></div>
106
106
  <div class="ttc" id="classSVF_1_1SVFG_html_a8859409373454b6b3d1252776e169cf5"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8859409373454b6b3d1252776e169cf5">SVF::SVFG::FormalINSVFGNodeSet</a></div><div class="ttdeci">NodeBS FormalINSVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00080">SVFG.h:80</a></div></div>
107
107
  <div class="ttc" id="classSVF_1_1SVFG_html_a86d4a41a881a3d2e5def103d7ba8bb2f"><div class="ttname"><a href="classSVF_1_1SVFG.html#a86d4a41a881a3d2e5def103d7ba8bb2f">SVF::SVFG::LOADMU</a></div><div class="ttdeci">MemSSA::LOADMU LOADMU</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00091">SVFG.h:91</a></div></div>
108
108
  <div class="ttc" id="classSVF_1_1VFGEdge_html_a156ae6a8b3a033f505c18c6b162e7cf5a8383c27feab3f1acc67cacef9744c04a"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a156ae6a8b3a033f505c18c6b162e7cf5a8383c27feab3f1acc67cacef9744c04a">SVF::VFGEdge::CallDirVF</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00055">VFGEdge.h:55</a></div></div>
@@ -110,7 +110,7 @@ $(function() {
110
110
  <div class="ttc" id="classSVF_1_1FormalOUTSVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalOUTSVFGNode.html">SVF::FormalOUTSVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00135">SVFGNode.h:135</a></div></div>
111
111
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
112
112
  <div class="ttc" id="classSVF_1_1SVFG_html_ab6dfac64a363550ef51df246849a13aa"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab6dfac64a363550ef51df246849a13aa">SVF::SVFG::addActualINSVFGNode</a></div><div class="ttdeci">void addActualINSVFGNode(const CallBlockNode *callsite, const MRVer *ver, const NodeID nodeId)</div><div class="ttdoc">Add memory callsite mu SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00414">SVFG.h:414</a></div></div>
113
- <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>
113
+ <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>
114
114
  <div class="ttc" id="classSVF_1_1CopyVFGNode_html"><div class="ttname"><a href="classSVF_1_1CopyVFGNode.html">SVF::CopyVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00275">VFGNode.h:275</a></div></div>
115
115
  <div class="ttc" id="classSVF_1_1SVFG_html_ab767c329e7fccf9efe16818515199d65"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab767c329e7fccf9efe16818515199d65">SVF::SVFG::getActualINSVFGNodes</a></div><div class="ttdeci">ActualINSVFGNodeSet &amp; getActualINSVFGNodes(const CallBlockNode *cs)</div><div class="ttdoc">Get SVFGNode set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00209">SVFG.h:209</a></div></div>
116
116
  <div class="ttc" id="classSVF_1_1PHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html">SVF::PHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00572">VFGNode.h:572</a></div></div>
@@ -136,7 +136,7 @@ $(function() {
136
136
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
137
137
  <div class="ttc" id="classSVF_1_1SVFG_html_a2b4850c833564916c7fce46d55672038"><div class="ttname"><a href="classSVF_1_1SVFG.html#a2b4850c833564916c7fce46d55672038">SVF::SVFG::FunctionToFormalINsMapTy</a></div><div class="ttdeci">Map&lt; const SVFFunction *, FormalINSVFGNodeSet &gt; FunctionToFormalINsMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00084">SVFG.h:84</a></div></div>
138
138
  <div class="ttc" id="classSVF_1_1SVFG_html_a65f28035e0fa5bebf76d28612b2f8ba8"><div class="ttname"><a href="classSVF_1_1SVFG.html#a65f28035e0fa5bebf76d28612b2f8ba8">SVF::SVFG::hasFormalINSVFGNodes</a></div><div class="ttdeci">bool hasFormalINSVFGNodes(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00196">SVFG.h:196</a></div></div>
139
- <div class="ttc" id="classSVF_1_1SVFG_html_abddfc95cf644d0729ee29eccf95699f1"><div class="ttname"><a href="classSVF_1_1SVFG.html#abddfc95cf644d0729ee29eccf95699f1">SVF::SVFG::addSVFGNodesForAddrTakenVars</a></div><div class="ttdeci">void addSVFGNodesForAddrTakenVars()</div><div class="ttdoc">Create SVFG nodes for address-taken variables. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00242">SVFG.cpp:242</a></div></div>
139
+ <div class="ttc" id="classSVF_1_1SVFG_html_abddfc95cf644d0729ee29eccf95699f1"><div class="ttname"><a href="classSVF_1_1SVFG.html#abddfc95cf644d0729ee29eccf95699f1">SVF::SVFG::addSVFGNodesForAddrTakenVars</a></div><div class="ttdeci">void addSVFGNodesForAddrTakenVars()</div><div class="ttdoc">Create SVFG nodes for address-taken variables. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00222">SVFG.cpp:222</a></div></div>
140
140
  <div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
141
141
  <div class="ttc" id="classSVF_1_1MemSSA_html_af9cf084e3070456d8cca491e1391b0c4"><div class="ttname"><a href="classSVF_1_1MemSSA.html#af9cf084e3070456d8cca491e1391b0c4">SVF::MemSSA::CHISet</a></div><div class="ttdeci">Set&lt; CHI * &gt; CHISet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00065">MemSSA.h:65</a></div></div>
142
142
  <div class="ttc" id="classSVF_1_1RetMU_html"><div class="ttname"><a href="classSVF_1_1RetMU.html">SVF::RetMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00277">MSSAMuChi.h:277</a></div></div>
@@ -146,14 +146,14 @@ $(function() {
146
146
  <div class="ttc" id="classSVF_1_1VFG_html_a30eb9d717ad5bc8a9109a7bdef38f4a1"><div class="ttname"><a href="classSVF_1_1VFG.html#a30eb9d717ad5bc8a9109a7bdef38f4a1">SVF::VFG::hasVFGNode</a></div><div class="ttdeci">bool hasVFGNode(NodeID id) const</div><div class="ttdoc">Whether has the VFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00149">VFG.h:149</a></div></div>
147
147
  <div class="ttc" id="classSVF_1_1LoadMU_html"><div class="ttname"><a href="classSVF_1_1LoadMU.html">SVF::LoadMU</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00165">MSSAMuChi.h:165</a></div></div>
148
148
  <div class="ttc" id="classSVF_1_1SVFG_html_a1f8c60ad57bf473e0186b794d666b5c2"><div class="ttname"><a href="classSVF_1_1SVFG.html#a1f8c60ad57bf473e0186b794d666b5c2">SVF::SVFG::hasFormalOUTSVFGNodes</a></div><div class="ttdeci">bool hasFormalOUTSVFGNodes(const SVFFunction *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00201">SVFG.h:201</a></div></div>
149
- <div class="ttc" id="classSVF_1_1SVFG_html_a164a3df08fc24bacc0b97aee8b6eec38"><div class="ttname"><a href="classSVF_1_1SVFG.html#a164a3df08fc24bacc0b97aee8b6eec38">SVF::SVFG::connectIndirectSVFGEdges</a></div><div class="ttdeci">void connectIndirectSVFGEdges()</div><div class="ttdoc">Connect direct SVFG edges between two SVFG nodes (value-flow of top address-taken variables) ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00311">SVFG.cpp:311</a></div></div>
149
+ <div class="ttc" id="classSVF_1_1SVFG_html_a164a3df08fc24bacc0b97aee8b6eec38"><div class="ttname"><a href="classSVF_1_1SVFG.html#a164a3df08fc24bacc0b97aee8b6eec38">SVF::SVFG::connectIndirectSVFGEdges</a></div><div class="ttdeci">void connectIndirectSVFGEdges()</div><div class="ttdoc">Connect direct SVFG edges between two SVFG nodes (value-flow of top address-taken variables) ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00291">SVFG.cpp:291</a></div></div>
150
150
  <div class="ttc" id="namespaceSVF_html_ad466edced10faeafd48e96daf193b8a9"><div class="ttname"><a href="namespaceSVF.html#ad466edced10faeafd48e96daf193b8a9">SVF::FormalParmSVFGNode</a></div><div class="ttdeci">FormalParmVFGNode FormalParmSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00046">SVFG.h:46</a></div></div>
151
151
  <div class="ttc" id="namespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
152
152
  <div class="ttc" id="namespaceSVF_html_a65a3be463427d1112a8b87f072f3d22f"><div class="ttname"><a href="namespaceSVF.html#a65a3be463427d1112a8b87f072f3d22f">SVF::GepSVFGNode</a></div><div class="ttdeci">GepVFGNode GepSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00055">SVFG.h:55</a></div></div>
153
153
  <div class="ttc" id="classSVF_1_1SVFG_html_af0c86a9e83a1f2427dd8e80287be37ed"><div class="ttname"><a href="classSVF_1_1SVFG.html#af0c86a9e83a1f2427dd8e80287be37ed">SVF::SVFG::getActualOUTSVFGNodes</a></div><div class="ttdeci">ActualOUTSVFGNodeSet &amp; getActualOUTSVFGNodes(const CallBlockNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00214">SVFG.h:214</a></div></div>
154
154
  <div class="ttc" id="namespaceSVF_html_a26bd4f89dc154b9c6d34b6a517777934"><div class="ttname"><a href="namespaceSVF.html#a26bd4f89dc154b9c6d34b6a517777934">SVF::StmtSVFGNode</a></div><div class="ttdeci">StmtVFGNode StmtSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00050">SVFG.h:50</a></div></div>
155
155
  <div class="ttc" id="classSVF_1_1SVFG_html_a9b133773dae3e7c613516ba16cfdfa2c"><div class="ttname"><a href="classSVF_1_1SVFG.html#a9b133773dae3e7c613516ba16cfdfa2c">SVF::SVFG::getInterVFEdgeAtIndCSFromAPToFP</a></div><div class="ttdeci">virtual void getInterVFEdgeAtIndCSFromAPToFP(const PAGNode *cs_arg, const PAGNode *fun_arg, const CallBlockNode *, CallSiteID csId, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Get inter value flow edges between indirect call site and callee. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00304">SVFG.h:304</a></div></div>
156
- <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>
156
+ <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>
157
157
  <div class="ttc" id="classSVF_1_1SVFG_html_a5f3e0fbf83621cc661d2c59800756727"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5f3e0fbf83621cc661d2c59800756727">SVF::SVFG::CALLCHI</a></div><div class="ttdeci">MemSSA::CALLCHI CALLCHI</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00095">SVFG.h:95</a></div></div>
158
158
  <div class="ttc" id="classSVF_1_1SVFG_html_a0554abe7c072b66ab24a900284646572"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0554abe7c072b66ab24a900284646572">SVF::SVFG::addIntraMSSAPHISVFGNode</a></div><div class="ttdeci">void addIntraMSSAPHISVFGNode(ICFGNode *BlockICFGNode, const Map&lt; u32_t, const MRVer *&gt;::const_iterator opVerBegin, const Map&lt; u32_t, const MRVer *&gt;::const_iterator opVerEnd, const MRVer *resVer, const NodeID nodeId)</div><div class="ttdoc">Add memory SSA PHI SVFG node. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00431">SVFG.h:431</a></div></div>
159
159
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
@@ -162,7 +162,7 @@ $(function() {
162
162
  <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>
163
163
  <div class="ttc" id="namespaceSVF_html_aeccd0bd024319173c1cda5ff1a79c5ae"><div class="ttname"><a href="namespaceSVF.html#aeccd0bd024319173c1cda5ff1a79c5ae">SVF::NullPtrSVFGNode</a></div><div class="ttdeci">NullPtrVFGNode NullPtrSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00049">SVFG.h:49</a></div></div>
164
164
  <div class="ttc" id="classSVF_1_1SVFG_html_a67654d252e9e93b74e35ba247048b41a"><div class="ttname"><a href="classSVF_1_1SVFG.html#a67654d252e9e93b74e35ba247048b41a">SVF::SVFG::RcSvfgBuilder</a></div><div class="ttdeci">friend class RcSvfgBuilder</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00072">SVFG.h:72</a></div></div>
165
- <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>
165
+ <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>
166
166
  <div class="ttc" id="namespaceSVF_html_a77b8b8ca831e1eba3e47f2ca29667f67"><div class="ttname"><a href="namespaceSVF.html#a77b8b8ca831e1eba3e47f2ca29667f67">SVF::ActualRetSVFGNode</a></div><div class="ttdeci">ActualRetVFGNode ActualRetSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00045">SVFG.h:45</a></div></div>
167
167
  <div class="ttc" id="classSVF_1_1SVFG_html_a665c93b68f49078c281270a028d04445"><div class="ttname"><a href="classSVF_1_1SVFG.html#a665c93b68f49078c281270a028d04445">SVF::SVFG::TaintSVFGBuilder</a></div><div class="ttdeci">friend class TaintSVFGBuilder</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00069">SVFG.h:69</a></div></div>
168
168
  <div class="ttc" id="classSVF_1_1VFG_html_ac97ef8c479556f9ca2c40cd4d8a18694"><div class="ttname"><a href="classSVF_1_1VFG.html#ac97ef8c479556f9ca2c40cd4d8a18694">SVF::VFG::SVFGEdgeSetTy</a></div><div class="ttdeci">VFGEdge::SVFGEdgeSetTy SVFGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00077">VFG.h:77</a></div></div>
@@ -170,7 +170,7 @@ $(function() {
170
170
  <div class="ttc" id="classSVF_1_1MemSSA_html_a81bba824495a882b49e687683954b112"><div class="ttname"><a href="classSVF_1_1MemSSA.html#a81bba824495a882b49e687683954b112">SVF::MemSSA::MUSet</a></div><div class="ttdeci">Set&lt; MU * &gt; MUSet</div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00064">MemSSA.h:64</a></div></div>
171
171
  <div class="ttc" id="classSVF_1_1SVFG_html_a67750c461e3543f6b75d2dd510d67297"><div class="ttname"><a href="classSVF_1_1SVFG.html#a67750c461e3543f6b75d2dd510d67297">SVF::SVFG::addSVFGEdge</a></div><div class="ttdeci">bool addSVFGEdge(SVFGEdge *edge)</div><div class="ttdoc">Add SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00248">SVFG.h:248</a></div></div>
172
172
  <div class="ttc" id="classSVF_1_1SVFG_html_aa3ebc066d376e7ed508d2bce49fa864d"><div class="ttname"><a href="classSVF_1_1SVFG.html#aa3ebc066d376e7ed508d2bce49fa864d">SVF::SVFG::setDef</a></div><div class="ttdeci">void setDef(const MRVer *mvar, const SVFGNode *node)</div><div class="ttdoc">Given a MSSADef, set/get its def SVFG node (definition of address-taken variables) ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00362">SVFG.h:362</a></div></div>
173
- <div class="ttc" id="classSVF_1_1SVFG_html_a1aba3845bad017f81cd5f938db03a161"><div class="ttname"><a href="classSVF_1_1SVFG.html#a1aba3845bad017f81cd5f938db03a161">SVF::SVFG::addThreadMHPIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addThreadMHPIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00468">SVFG.cpp:468</a></div></div>
173
+ <div class="ttc" id="classSVF_1_1SVFG_html_a1aba3845bad017f81cd5f938db03a161"><div class="ttname"><a href="classSVF_1_1SVFG.html#a1aba3845bad017f81cd5f938db03a161">SVF::SVFG::addThreadMHPIndirectVFEdge</a></div><div class="ttdeci">SVFGEdge * addThreadMHPIndirectVFEdge(NodeID srcId, NodeID dstId, const NodeBS &amp;cpts)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00448">SVFG.cpp:448</a></div></div>
174
174
  <div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00213">GenericGraph.h:213</a></div></div>
175
175
  <div class="ttc" id="classSVF_1_1SVFG_html_a9d0714075d6071c26d26cf16c4dec7c5"><div class="ttname"><a href="classSVF_1_1SVFG.html#a9d0714075d6071c26d26cf16c4dec7c5">SVF::SVFG::getFormalINSVFGNodes</a></div><div class="ttdeci">FormalINSVFGNodeSet &amp; getFormalINSVFGNodes(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00219">SVFG.h:219</a></div></div>
176
176
  <div class="ttc" id="SVFGNode_8h_html"><div class="ttname"><a href="SVFGNode_8h.html">SVFGNode.h</a></div></div>
@@ -179,11 +179,11 @@ $(function() {
179
179
  <div class="ttc" id="classSVF_1_1SVFG_html_a287c337697eed7d92889bca0a0e370d7"><div class="ttname"><a href="classSVF_1_1SVFG.html#a287c337697eed7d92889bca0a0e370d7">SVF::SVFG::getFormalOUTSVFGNodes</a></div><div class="ttdeci">FormalOUTSVFGNodeSet &amp; getFormalOUTSVFGNodes(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00224">SVFG.h:224</a></div></div>
180
180
  <div class="ttc" id="classSVF_1_1ICFG_html_aa33426d57dc150956902945a17a29bcb"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa33426d57dc150956902945a17a29bcb">SVF::ICFG::getFunExitBlockNode</a></div><div class="ttdeci">FunExitBlockNode * getFunExitBlockNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00239">ICFG.cpp:239</a></div></div>
181
181
  <div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
182
- <div class="ttc" id="classSVF_1_1SVFG_html_a57629591037e16e57a0178d102a405f2"><div class="ttname"><a href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">SVF::SVFG::addInterIndirectVFCallEdge</a></div><div class="ttdeci">SVFGEdge * addInterIndirectVFCallEdge(const ActualINSVFGNode *src, const FormalINSVFGNode *dst, CallSiteID csId)</div><div class="ttdoc">Add inter VF edge from callsite mu to function entry chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00528">SVFG.cpp:528</a></div></div>
182
+ <div class="ttc" id="classSVF_1_1SVFG_html_a57629591037e16e57a0178d102a405f2"><div class="ttname"><a href="classSVF_1_1SVFG.html#a57629591037e16e57a0178d102a405f2">SVF::SVFG::addInterIndirectVFCallEdge</a></div><div class="ttdeci">SVFGEdge * addInterIndirectVFCallEdge(const ActualINSVFGNode *src, const FormalINSVFGNode *dst, CallSiteID csId)</div><div class="ttdoc">Add inter VF edge from callsite mu to function entry chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00508">SVFG.cpp:508</a></div></div>
183
183
  <div class="ttc" id="classSVF_1_1SVFG_html_afca91771a622290586bfa941132c322e"><div class="ttname"><a href="classSVF_1_1SVFG.html#afca91771a622290586bfa941132c322e">SVF::SVFG::hasCallSiteMu</a></div><div class="ttdeci">bool hasCallSiteMu(const CallBlockNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00455">SVFG.h:455</a></div></div>
184
184
  <div class="ttc" id="classSVF_1_1MSSAPHISVFGNode_html_a928a57d7f518c5af98a0245d9221e671"><div class="ttname"><a href="classSVF_1_1MSSAPHISVFGNode.html#a928a57d7f518c5af98a0245d9221e671">SVF::MSSAPHISVFGNode::setOpVer</a></div><div class="ttdeci">void setOpVer(u32_t pos, const MRVer *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGNode_8h_source.html#l00302">SVFGNode.h:302</a></div></div>
185
185
  <div class="ttc" id="classSVF_1_1VFG_html_a1e0b8c7df55e05739775e8a1c50cf660"><div class="ttname"><a href="classSVF_1_1VFG.html#a1e0b8c7df55e05739775e8a1c50cf660">SVF::VFG::setDef</a></div><div class="ttdeci">void setDef(const PAGNode *pagNode, const VFGNode *node)</div><div class="ttdoc">Given a PAGNode, set/get its def VFG node (definition of top level pointers) </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00393">VFG.h:393</a></div></div>
186
- <div class="ttc" id="classSVF_1_1SVFG_html_ac9807bb37148459fe928cd67a7517c16"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac9807bb37148459fe928cd67a7517c16">SVF::SVFG::fromValue</a></div><div class="ttdeci">std::set&lt; const SVFGNode * &gt; fromValue(const llvm::Value *value) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00564">SVFG.cpp:564</a></div></div>
186
+ <div class="ttc" id="classSVF_1_1SVFG_html_ac9807bb37148459fe928cd67a7517c16"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac9807bb37148459fe928cd67a7517c16">SVF::SVFG::fromValue</a></div><div class="ttdeci">std::set&lt; const SVFGNode * &gt; fromValue(const llvm::Value *value) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00544">SVFG.cpp:544</a></div></div>
187
187
  <div class="ttc" id="classSVF_1_1FunExitBlockNode_html"><div class="ttname"><a href="classSVF_1_1FunExitBlockNode.html">SVF::FunExitBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00308">ICFGNode.h:308</a></div></div>
188
188
  <div class="ttc" id="classSVF_1_1LoadVFGNode_html"><div class="ttname"><a href="classSVF_1_1LoadVFGNode.html">SVF::LoadVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00197">VFGNode.h:197</a></div></div>
189
189
  <div class="ttc" id="classSVF_1_1SVFGStat_html"><div class="ttname"><a href="classSVF_1_1SVFGStat.html">SVF::SVFGStat</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00092">SVFGStat.h:92</a></div></div>
@@ -192,11 +192,11 @@ $(function() {
192
192
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
193
193
  <div class="ttc" id="namespaceSVF_html_a54c5725186e66ead6faf53c10a288714"><div class="ttname"><a href="namespaceSVF.html#a54c5725186e66ead6faf53c10a288714">SVF::StoreSVFGNode</a></div><div class="ttdeci">StoreVFGNode StoreSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00053">SVFG.h:53</a></div></div>
194
194
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00384">GenericGraph.h:384</a></div></div>
195
- <div class="ttc" id="classSVF_1_1SVFG_html_ac9666ae7266cf1a9c0a5f7d28b39d1e9"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">SVF::SVFG::addInterIndirectVFRetEdge</a></div><div class="ttdeci">SVFGEdge * addInterIndirectVFRetEdge(const FormalOUTSVFGNode *src, const ActualOUTSVFGNode *dst, CallSiteID csId)</div><div class="ttdoc">Add inter VF edge from function exit mu to callsite chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00543">SVFG.cpp:543</a></div></div>
195
+ <div class="ttc" id="classSVF_1_1SVFG_html_ac9666ae7266cf1a9c0a5f7d28b39d1e9"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac9666ae7266cf1a9c0a5f7d28b39d1e9">SVF::SVFG::addInterIndirectVFRetEdge</a></div><div class="ttdeci">SVFGEdge * addInterIndirectVFRetEdge(const FormalOUTSVFGNode *src, const ActualOUTSVFGNode *dst, CallSiteID csId)</div><div class="ttdoc">Add inter VF edge from function exit mu to callsite chi. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00523">SVFG.cpp:523</a></div></div>
196
196
  <div class="ttc" id="classSVF_1_1SVFG_html_accd1cbd26c9b194971f3107a57a0ab2e"><div class="ttname"><a href="classSVF_1_1SVFG.html#accd1cbd26c9b194971f3107a57a0ab2e">SVF::SVFG::setDef</a></div><div class="ttdeci">void setDef(const PAGNode *pagNode, const SVFGNode *node)</div><div class="ttdoc">Given a PAGNode, set/get its def SVFG node (definition of top level pointers) </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00346">SVFG.h:346</a></div></div>
197
197
  <div class="ttc" id="classSVF_1_1EntryCHI_html"><div class="ttname"><a href="classSVF_1_1EntryCHI.html">SVF::EntryCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00578">MSSAMuChi.h:578</a></div></div>
198
198
  <div class="ttc" id="classSVF_1_1ActualRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html">SVF::ActualRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00896">VFGNode.h:896</a></div></div>
199
- <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>
199
+ <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>
200
200
  <div class="ttc" id="classSVF_1_1VFG_html_acb181d4f9faa40578c80e2018e2742b8"><div class="ttname"><a href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">SVF::VFG::totalVFGNode</a></div><div class="ttdeci">NodeID totalVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00087">VFG.h:87</a></div></div>
201
201
  <div class="ttc" id="classSVF_1_1SVFG_html_a32378226c18a0b1e22271a2338a635f6"><div class="ttname"><a href="classSVF_1_1SVFG.html#a32378226c18a0b1e22271a2338a635f6">SVF::SVFG::hasFuncRetMu</a></div><div class="ttdeci">bool hasFuncRetMu(const SVFFunction *func) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00447">SVFG.h:447</a></div></div>
202
202
  <div class="ttc" id="classSVF_1_1SVFG_html_a7f4deffe7e13352b8c13eab110c834cc"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7f4deffe7e13352b8c13eab110c834cc">SVF::SVFG::MU</a></div><div class="ttdeci">MemSSA::MU MU</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00089">SVFG.h:89</a></div></div>
@@ -216,12 +216,12 @@ $(function() {
216
216
  <div class="ttc" id="classSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
217
217
  <div class="ttc" id="classSVF_1_1SVFG_html_ab6c337637ccc9bbf0bcc7153b427f7ca"><div class="ttname"><a href="classSVF_1_1SVFG.html#ab6c337637ccc9bbf0bcc7153b427f7ca">SVF::SVFG::getPTA</a></div><div class="ttdeci">PointerAnalysis * getPTA() const</div><div class="ttdoc">Get Pointer Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00144">SVFG.h:144</a></div></div>
218
218
  <div class="ttc" id="namespaceSVF_html_ae5987da3ffd5681e8ec4ef14ba54588e"><div class="ttname"><a href="namespaceSVF.html#ae5987da3ffd5681e8ec4ef14ba54588e">SVF::FormalRetSVFGNode</a></div><div class="ttdeci">FormalRetVFGNode FormalRetSVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00047">SVFG.h:47</a></div></div>
219
- <div class="ttc" id="classSVF_1_1SVFG_html_a82a93d9b7fcf1938e3090a0826a1ca7e"><div class="ttname"><a href="classSVF_1_1SVFG.html#a82a93d9b7fcf1938e3090a0826a1ca7e">SVF::SVFG::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Clean up memory. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00203">SVFG.cpp:203</a></div></div>
219
+ <div class="ttc" id="classSVF_1_1SVFG_html_a82a93d9b7fcf1938e3090a0826a1ca7e"><div class="ttname"><a href="classSVF_1_1SVFG.html#a82a93d9b7fcf1938e3090a0826a1ca7e">SVF::SVFG::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Clean up memory. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00183">SVFG.cpp:183</a></div></div>
220
220
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_ad3d50024efcfa94b1246c982b43aff2f"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">SVF::CallBlockNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
221
221
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
222
222
  <div class="ttc" id="classSVF_1_1ICFG_html_a6d66c83cb1656d0f8ec8b8b65a9e9c41"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetBlockNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00210">ICFG.cpp:210</a></div></div>
223
223
  <div class="ttc" id="classSVF_1_1FunExitBlockNode_html_a1463cde3f7e218c4bef996b2e1e9aef4"><div class="ttname"><a href="classSVF_1_1FunExitBlockNode.html#a1463cde3f7e218c4bef996b2e1e9aef4">SVF::FunExitBlockNode::getFun</a></div><div class="ttdeci">const SVFFunction * getFun() const</div><div class="ttdoc">Return function. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00318">ICFGNode.h:318</a></div></div>
224
- <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>
224
+ <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>
225
225
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00164">GenericGraph.h:164</a></div></div>
226
226
  <div class="ttc" id="classSVF_1_1ICFG_html_ae1ef14cdda27a2062c4c454750444108"><div class="ttname"><a href="classSVF_1_1ICFG.html#ae1ef14cdda27a2062c4c454750444108">SVF::ICFG::getFunEntryBlockNode</a></div><div class="ttdeci">FunEntryBlockNode * getFunEntryBlockNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00230">ICFG.cpp:230</a></div></div>
227
227
  <div class="ttc" id="classSVF_1_1SVFG_html_ad14cdbb3f1df1f716aa03b4d39f4e52b"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad14cdbb3f1df1f716aa03b4d39f4e52b">SVF::SVFG::STORECHI</a></div><div class="ttdeci">MemSSA::STORECHI STORECHI</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00092">SVFG.h:92</a></div></div>
@@ -232,14 +232,14 @@ $(function() {
232
232
  <div class="ttc" id="classSVF_1_1StmtVFGNode_html"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html">SVF::StmtVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00114">VFGNode.h:114</a></div></div>
233
233
  <div class="ttc" id="classSVF_1_1SVFG_html_a6f07410ee34e4bf1079e3b5902c81d28"><div class="ttname"><a href="classSVF_1_1SVFG.html#a6f07410ee34e4bf1079e3b5902c81d28">SVF::SVFG::mssa</a></div><div class="ttdeci">MemSSA * mssa</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00105">SVFG.h:105</a></div></div>
234
234
  <div class="ttc" id="classSVF_1_1SVFG_html_a8843ab4a4608f7f5f46f68ad31314c07"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8843ab4a4608f7f5f46f68ad31314c07">SVF::SVFG::CHISet</a></div><div class="ttdeci">MemSSA::CHISet CHISet</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00087">SVFG.h:87</a></div></div>
235
- <div class="ttc" id="classSVF_1_1SVFG_html_a0cebc2ba5ae81a6d45b224a4f94fc8b4"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0cebc2ba5ae81a6d45b224a4f94fc8b4">SVF::SVFG::connectCallerAndCallee</a></div><div class="ttdeci">virtual void connectCallerAndCallee(const CallBlockNode *cs, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Connect SVFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00660">SVFG.cpp:660</a></div></div>
236
- <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>
235
+ <div class="ttc" id="classSVF_1_1SVFG_html_a0cebc2ba5ae81a6d45b224a4f94fc8b4"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0cebc2ba5ae81a6d45b224a4f94fc8b4">SVF::SVFG::connectCallerAndCallee</a></div><div class="ttdeci">virtual void connectCallerAndCallee(const CallBlockNode *cs, const SVFFunction *callee, SVFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Connect SVFG nodes between caller and callee for indirect call site. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00640">SVFG.cpp:640</a></div></div>
236
+ <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>
237
237
  <div class="ttc" id="classSVF_1_1CallCHI_html"><div class="ttname"><a href="classSVF_1_1CallCHI.html">SVF::CallCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00521">MSSAMuChi.h:521</a></div></div>
238
238
  <div class="ttc" id="classSVF_1_1SVFG_html_a0d6cfa496e6885fe31b6b7a651fa01a8"><div class="ttname"><a href="classSVF_1_1SVFG.html#a0d6cfa496e6885fe31b6b7a651fa01a8">SVF::SVFG::pta</a></div><div class="ttdeci">PointerAnalysis * pta</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00106">SVFG.h:106</a></div></div>
239
239
  <div class="ttc" id="classSVF_1_1FormalParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1FormalParmVFGNode.html">SVF::FormalParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00829">VFGNode.h:829</a></div></div>
240
240
  <div class="ttc" id="classSVF_1_1VFG_html_a915fa50effaeea10716b86528b15c6dc"><div class="ttname"><a href="classSVF_1_1VFG.html#a915fa50effaeea10716b86528b15c6dc">SVF::VFG::getVFGNode</a></div><div class="ttdeci">VFGNode * getVFGNode(NodeID id) const</div><div class="ttdoc">Get a VFG node. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00143">VFG.h:143</a></div></div>
241
- <div class="ttc" id="classSVF_1_1SVFG_html_ac75b83bdf3bcfecaae579716ab33dd61"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac75b83bdf3bcfecaae579716ab33dd61">SVF::SVFG::isCallSiteRetSVFGNode</a></div><div class="ttdeci">const CallBlockNode * isCallSiteRetSVFGNode(const SVFGNode *node) const</div><div class="ttdoc">Whether a node is callsite return SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00734">SVFG.cpp:734</a></div></div>
242
- <div class="ttc" id="classSVF_1_1SVFG_html_ae2cff3c963136f474fac0a66aa8cff7b"><div class="ttname"><a href="classSVF_1_1SVFG.html#ae2cff3c963136f474fac0a66aa8cff7b">SVF::SVFG::isFunEntrySVFGNode</a></div><div class="ttdeci">const SVFFunction * isFunEntrySVFGNode(const SVFGNode *node) const</div><div class="ttdoc">Whether a node is function entry SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00708">SVFG.cpp:708</a></div></div>
241
+ <div class="ttc" id="classSVF_1_1SVFG_html_ac75b83bdf3bcfecaae579716ab33dd61"><div class="ttname"><a href="classSVF_1_1SVFG.html#ac75b83bdf3bcfecaae579716ab33dd61">SVF::SVFG::isCallSiteRetSVFGNode</a></div><div class="ttdeci">const CallBlockNode * isCallSiteRetSVFGNode(const SVFGNode *node) const</div><div class="ttdoc">Whether a node is callsite return SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00714">SVFG.cpp:714</a></div></div>
242
+ <div class="ttc" id="classSVF_1_1SVFG_html_ae2cff3c963136f474fac0a66aa8cff7b"><div class="ttname"><a href="classSVF_1_1SVFG.html#ae2cff3c963136f474fac0a66aa8cff7b">SVF::SVFG::isFunEntrySVFGNode</a></div><div class="ttdeci">const SVFFunction * isFunEntrySVFGNode(const SVFGNode *node) const</div><div class="ttdoc">Whether a node is function entry SVFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00688">SVFG.cpp:688</a></div></div>
243
243
  <div class="ttc" id="classSVF_1_1SaberSVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html">SVF::SaberSVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00042">SaberSVFGBuilder.h:42</a></div></div>
244
244
  <div class="ttc" id="classSVF_1_1SVFG_html_a7d58f9fe97071ec9936174689cb99301"><div class="ttname"><a href="classSVF_1_1SVFG.html#a7d58f9fe97071ec9936174689cb99301">SVF::SVFG::funToFormalOUTMap</a></div><div class="ttdeci">FunctionToFormalOUTsMapTy funToFormalOUTMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00103">SVFG.h:103</a></div></div>
245
245
  <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>
@@ -66,7 +66,7 @@ $(function() {
66
66
  <div class="title">SaberAnnotator.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="SaberAnnotator_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SaberAnnotator.cpp -- Annotation---------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SaberAnnotator.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: May 4, 2014</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SaberAnnotator_8h.html">SABER/SaberAnnotator.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ProgSlice_8h.html">SABER/ProgSlice.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#aa9446af29edf126ad30bbada51478c13"> 38</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#aa9446af29edf126ad30bbada51478c13">SaberAnnotator::annotateSource</a>()</div><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="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#abec0f249cc64d3588e83a68ed12271bf"> 55</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#abec0f249cc64d3588e83a68ed12271bf">SaberAnnotator::annotateSinks</a>()</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">for</span>(ProgSlice::SVFGNodeSet::const_iterator it = <a class="code" href="classSVF_1_1SaberAnnotator.html#adceb8a459b44c289413401b57d8aeb4d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d">getSinks</a>().begin(),</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; eit = <a class="code" href="classSVF_1_1SaberAnnotator.html#adceb8a459b44c289413401b57d8aeb4d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d">getSinks</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>* ap = SVFUtil::dyn_cast&lt;ActualParmSVFGNode&gt;(*it))</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* sinkinst = ap-&gt;getCallSite()-&gt;getCallSite();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;CallInst&gt;(sinkinst) &amp;&amp; <span class="stringliteral">&quot;not a call instruction?&quot;</span>);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* sink = SVFUtil::cast&lt;CallInst&gt;(sinkinst);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::string str;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#a3edacb8703c74abf42c4a29761a3437f">SB_SLICESINK</a> &lt;&lt; <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_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(const_cast&lt;CallInst*&gt;(sink),sink-&gt;getArgOperand(0),rawstr.str());</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;sink node is not a actual parameter?&quot;</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#ad7f1d6220243793e0eb86689ff8fb35f"> 78</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#ad7f1d6220243793e0eb86689ff8fb35f">SaberAnnotator::annotateFeasibleBranch</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a> *brInst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succPos)</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;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((succPos == 0 || succPos == 1) &amp;&amp; <span class="stringliteral">&quot;branch instruction should only have two successors&quot;</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; std::string str;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#ac58473072d90baa6dc377b45f18d0da5">SB_FESIBLE</a> &lt;&lt; <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_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>* br = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>*<span class="keyword">&gt;</span>(brInst);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(br,br-&gt;getCondition(),rawstr.str());</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#acc480b98ffa75b5c30829611bc451cc8"> 93</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#acc480b98ffa75b5c30829611bc451cc8">SaberAnnotator::annotateInfeasibleBranch</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a> *brInst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succPos)</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;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((succPos == 0 || succPos == 1) &amp;&amp; <span class="stringliteral">&quot;branch instruction should only have two successors&quot;</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; std::string str;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#a556138c152d52921d6f0a709a826a93a">SB_INFESIBLE</a> &lt;&lt; <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_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>* br = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>*<span class="keyword">&gt;</span>(brInst);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(br,br-&gt;getCondition(),rawstr.str());</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#acaabbe6e6a8ad6e8068fcef6d8caef60"> 109</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#acaabbe6e6a8ad6e8068fcef6d8caef60">SaberAnnotator::annotateSwitch</a>(<a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> *switchInst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succPos)</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; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(succPos &lt; switchInst-&gt;getNumSuccessors() &amp;&amp; <span class="stringliteral">&quot;successor position not correct!&quot;</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="ttc" id="SaberAnnotator_8h_html"><div class="ttname"><a href="SaberAnnotator_8h.html">SaberAnnotator.h</a></div></div>
69
+ <a href="SaberAnnotator_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SaberAnnotator.cpp -- Annotation---------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SaberAnnotator.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: May 4, 2014</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SaberAnnotator_8h.html">SABER/SaberAnnotator.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ProgSlice_8h.html">SABER/ProgSlice.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#aa9446af29edf126ad30bbada51478c13"> 38</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#aa9446af29edf126ad30bbada51478c13">SaberAnnotator::annotateSource</a>()</div><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="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#abec0f249cc64d3588e83a68ed12271bf"> 55</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#abec0f249cc64d3588e83a68ed12271bf">SaberAnnotator::annotateSinks</a>()</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">for</span>(ProgSlice::SVFGNodeSet::const_iterator it = <a class="code" href="classSVF_1_1SaberAnnotator.html#adceb8a459b44c289413401b57d8aeb4d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d">getSinks</a>().begin(),</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; eit = <a class="code" href="classSVF_1_1SaberAnnotator.html#adceb8a459b44c289413401b57d8aeb4d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d">getSinks</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ActualParmVFGNode.html">ActualParmSVFGNode</a>* ap = SVFUtil::dyn_cast&lt;ActualParmSVFGNode&gt;(*it))</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* sinkinst = ap-&gt;getCallSite()-&gt;getCallSite();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;CallInst&gt;(sinkinst) &amp;&amp; <span class="stringliteral">&quot;not a call instruction?&quot;</span>);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>* sink = SVFUtil::cast&lt;CallInst&gt;(sinkinst);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::string str;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#a3edacb8703c74abf42c4a29761a3437f">SB_SLICESINK</a> &lt;&lt; <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_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(const_cast&lt;CallInst*&gt;(sink),sink-&gt;getArgOperand(0),rawstr.str());</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;sink node is not a actual parameter?&quot;</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#ad7f1d6220243793e0eb86689ff8fb35f"> 78</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#ad7f1d6220243793e0eb86689ff8fb35f">SaberAnnotator::annotateFeasibleBranch</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a> *brInst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succPos)</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;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((succPos == 0 || succPos == 1) &amp;&amp; <span class="stringliteral">&quot;branch instruction should only have two successors&quot;</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; std::string str;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#ac58473072d90baa6dc377b45f18d0da5">SB_FESIBLE</a> &lt;&lt; <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_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>* br = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>*<span class="keyword">&gt;</span>(brInst);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(br,br-&gt;getCondition(),rawstr.str());</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#acc480b98ffa75b5c30829611bc451cc8"> 93</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#acc480b98ffa75b5c30829611bc451cc8">SaberAnnotator::annotateInfeasibleBranch</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a> *brInst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succPos)</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;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((succPos == 0 || succPos == 1) &amp;&amp; <span class="stringliteral">&quot;branch instruction should only have two successors&quot;</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; std::string str;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1Annotator.html#a556138c152d52921d6f0a709a826a93a">SB_INFESIBLE</a> &lt;&lt; <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_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>* br = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>*<span class="keyword">&gt;</span>(brInst);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">addMDTag</a>(br,br-&gt;getCondition(),rawstr.str());</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberAnnotator.html#acaabbe6e6a8ad6e8068fcef6d8caef60"> 109</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberAnnotator.html#acaabbe6e6a8ad6e8068fcef6d8caef60">SaberAnnotator::annotateSwitch</a>(<a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a> *switchInst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succPos)</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; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(succPos &lt; switchInst-&gt;getNumSuccessors() &amp;&amp; <span class="stringliteral">&quot;successor position not correct!&quot;</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="ttc" id="SaberAnnotator_8h_html"><div class="ttname"><a href="SaberAnnotator_8h.html">SaberAnnotator.h</a></div></div>
70
70
  <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>
71
71
  <div class="ttc" id="classSVF_1_1ActualParmVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualParmVFGNode.html">SVF::ActualParmVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00779">VFGNode.h:779</a></div></div>
72
72
  <div class="ttc" id="namespaceSVF_html_ac9a05dd7ab16e998625037aa242cd30f"><div class="ttname"><a href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">SVF::BranchInst</a></div><div class="ttdeci">llvm::BranchInst BranchInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00161">BasicTypes.h:161</a></div></div>
@@ -76,7 +76,7 @@ $(function() {
76
76
  <div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00148">BasicTypes.h:148</a></div></div>
77
77
  <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>
78
78
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00075">SVFBasicTypes.h:75</a></div></div>
79
- <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>
79
+ <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>
80
80
  <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>
81
81
  <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>
82
82
  <div class="ttc" id="classSVF_1_1Annotator_html_a556138c152d52921d6f0a709a826a93a"><div class="ttname"><a href="classSVF_1_1Annotator.html#a556138c152d52921d6f0a709a826a93a">SVF::Annotator::SB_INFESIBLE</a></div><div class="ttdeci">const char * SB_INFESIBLE</div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00177">Annotator.h:177</a></div></div>