svf-tools 1.0.539 → 1.0.540
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.
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +2 -1
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +5 -4
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +15 -15
- package/SVF-doxygen/html/html/CFLGramGraphChecker_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CFLGrammar_8txt.html +39 -39
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +20 -8
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +16 -15
- package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +2 -1
- package/SVF-doxygen/html/html/CPPUtil_8h.html +4 -4
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAStat_8h.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGStat_8h.html +1 -1
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +2 -1
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAStat_8h.html +1 -1
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp.html +1 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +5 -3
- package/SVF-doxygen/html/html/Options_8h.html +1 -1
- package/SVF-doxygen/html/html/Options_8h_source.html +5 -3
- package/SVF-doxygen/html/html/PEGGrammar_8txt.html +314 -0
- package/SVF-doxygen/html/html/PTAStat_8cpp.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PTAStat_8h.html +2 -2
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGStat_8h.html +1 -1
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/WPAStat_8h.html +1 -1
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder-members.html +12 -11
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +73 -4
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +50 -49
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +10 -7
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -2
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +8 -6
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +54 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +2 -2
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/dir_eef3a4ca6ca2cab0eb5fbea30ec32c1a.html +0 -2
- package/SVF-doxygen/html/html/files.html +15 -15
- package/SVF-doxygen/html/html/functions_b.html +3 -0
- package/SVF-doxygen/html/html/functions_c.html +22 -20
- package/SVF-doxygen/html/html/functions_f.html +10 -12
- package/SVF-doxygen/html/html/functions_func_b.html +3 -0
- package/SVF-doxygen/html/html/functions_func_p.html +2 -2
- package/SVF-doxygen/html/html/functions_i.html +6 -6
- package/SVF-doxygen/html/html/functions_l.html +6 -6
- package/SVF-doxygen/html/html/functions_n.html +3 -0
- package/SVF-doxygen/html/html/functions_p.html +19 -18
- package/SVF-doxygen/html/html/functions_r.html +4 -2
- package/SVF-doxygen/html/html/functions_s.html +13 -11
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_n.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_p.html +3 -0
- package/SVF-doxygen/html/html/globals.html +1 -0
- package/SVF-doxygen/html/html/globals_a.html +3 -1
- package/SVF-doxygen/html/html/globals_c.html +6 -5
- package/SVF-doxygen/html/html/globals_e.html +1 -0
- package/SVF-doxygen/html/html/globals_f.html +7 -5
- package/SVF-doxygen/html/html/globals_g.html +7 -3
- package/SVF-doxygen/html/html/globals_m.html +6 -3
- package/SVF-doxygen/html/html/globals_v.html +2 -1
- package/SVF-doxygen/html/html/globals_vars.html +22 -7
- package/SVF-doxygen/html/html/namespaceSVF.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +4 -4
- package/SVF-doxygen/html/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +2 -2
- package/SVF-doxygen/html/html/search/all_10.js +11 -9
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +8 -8
- package/SVF-doxygen/html/html/search/all_13.js +6 -6
- package/SVF-doxygen/html/html/search/all_14.js +1 -1
- package/SVF-doxygen/html/html/search/all_15.js +2 -2
- package/SVF-doxygen/html/html/search/all_2.js +1 -0
- package/SVF-doxygen/html/html/search/all_3.js +4 -4
- package/SVF-doxygen/html/html/search/all_5.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +6 -6
- package/SVF-doxygen/html/html/search/all_7.js +4 -4
- package/SVF-doxygen/html/html/search/all_9.js +2 -2
- package/SVF-doxygen/html/html/search/all_b.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +5 -5
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +5 -4
- package/SVF-doxygen/html/html/search/files_c.js +1 -0
- package/SVF-doxygen/html/html/search/functions_1.js +1 -0
- package/SVF-doxygen/html/html/search/functions_f.js +2 -2
- package/SVF-doxygen/html/html/search/variables_0.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1.js +2 -2
- package/SVF-doxygen/html/html/search/variables_10.js +2 -1
- package/SVF-doxygen/html/html/search/variables_13.js +3 -3
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +1 -1
- package/SVF-doxygen/html/html/search/variables_5.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +2 -2
- package/SVF-doxygen/html/html/search/variables_7.js +4 -4
- package/SVF-doxygen/html/html/search/variables_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +4 -3
- package/include/CFL/CFGNormalizer.h +3 -3
- package/include/CFL/CFLAlias.h +5 -1
- package/include/CFL/CFLGraphBuilder.h +11 -1
- package/include/CFL/PEGGrammar.txt +28 -0
- package/include/DDA/DDAStat.h +1 -1
- package/include/Graphs/ICFGStat.h +1 -1
- package/include/Graphs/SVFGStat.h +1 -1
- package/include/MTA/MTAStat.h +1 -1
- package/include/SVF-FE/LLVMUtil.h +2 -2
- package/include/Util/ExtAPI.h +2 -2
- package/include/Util/Options.h +3 -1
- package/include/{MemoryModel → Util}/PTAStat.h +0 -0
- package/include/WPA/Andersen.h +3 -3
- package/include/WPA/WPAStat.h +1 -1
- package/lib/CFL/CFLAlias.cpp +12 -7
- package/lib/CFL/CFLGraphBuilder.cpp +135 -0
- package/lib/CFL/GrammarBuilder.cpp +12 -8
- package/lib/MTA/LockAnalysis.cpp +1 -1
- package/lib/MTA/MHP.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
- package/lib/SVF-FE/CHGBuilder.cpp +1 -1
- package/lib/Util/NodeIDAllocator.cpp +1 -1
- package/lib/Util/Options.cpp +16 -4
- package/lib/Util/PTAStat.cpp +4 -3
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/package.json +1 -1
|
@@ -86,6 +86,8 @@ Public Member Functions</h2></td></tr>
|
|
|
86
86
|
<tr class="memitem:ab19243c4aceffce7b257f3d8cb3050fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#ab19243c4aceffce7b257f3d8cb3050fd">buildBigraph</a> (<a class="el" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *graph, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> startKind, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar)</td></tr>
|
|
87
87
|
<tr class="memdesc:ab19243c4aceffce7b257f3d8cb3050fd"><td class="mdescLeft"> </td><td class="mdescRight">Build Bidirectional graph by copying nodes and edges from const graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a>. <a href="#ab19243c4aceffce7b257f3d8cb3050fd">More...</a><br /></td></tr>
|
|
88
88
|
<tr class="separator:ab19243c4aceffce7b257f3d8cb3050fd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
89
|
+
<tr class="memitem:ac74b55198d73acebb9843fd13c1fd880"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AliasCFLGraphBuilder.html#ac74b55198d73acebb9843fd13c1fd880">buildBiPEGgraph</a> (<a class="el" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> *graph, <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> startKind, <a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> *grammar, <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> *pag)</td></tr>
|
|
90
|
+
<tr class="separator:ac74b55198d73acebb9843fd13c1fd880"><td class="memSeparator" colspan="2"> </td></tr>
|
|
89
91
|
<tr class="inherit_header pub_methods_classSVF_1_1CFLGraphBuilder"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1CFLGraphBuilder')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classSVF_1_1CFLGraphBuilder.html">SVF::CFLGraphBuilder</a></td></tr>
|
|
90
92
|
<tr class="memitem:adaa843018284f854ed0ad3bcb1460a01 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a> (<a class="el" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> kind, <a class="el" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> attribute)</td></tr>
|
|
91
93
|
<tr class="memdesc:adaa843018284f854ed0ad3bcb1460a01 inherit pub_methods_classSVF_1_1CFLGraphBuilder"><td class="mdescLeft"> </td><td class="mdescRight">add attribute to kind2Attribute Map <a href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">More...</a><br /></td></tr>
|
|
@@ -132,7 +134,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
132
134
|
</table>
|
|
133
135
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
134
136
|
<div class="textblock">
|
|
135
|
-
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#
|
|
137
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8h_source.html#l00149">149</a> of file <a class="el" href="CFLGraphBuilder_8h_source.html">CFLGraphBuilder.h</a>.</p>
|
|
136
138
|
</div><h2 class="groupheader">Member Function Documentation</h2>
|
|
137
139
|
<a id="ab19243c4aceffce7b257f3d8cb3050fd"></a>
|
|
138
140
|
<h2 class="memtitle"><span class="permalink"><a href="#ab19243c4aceffce7b257f3d8cb3050fd">◆ </a></span>buildBigraph()</h2>
|
|
@@ -174,11 +176,78 @@ Additional Inherited Members</h2></td></tr>
|
|
|
174
176
|
<div class="ttc" id="classSVF_1_1GrammarBase_html_af418e1033618da75e974a04ee1d7e275"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">SVF::GrammarBase::getAttributedKind</a></div><div class="ttdeci">static Kind getAttributedKind(Attribute attribute, Kind kind)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00251">CFLGrammar.h:251</a></div></div>
|
|
175
177
|
<div class="ttc" id="classSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00039">CFLGrammar.h:39</a></div></div>
|
|
176
178
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
177
|
-
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a7117dbeceeef7a9fcaeee0a84a171590"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">SVF::CFLGraphBuilder::label2KindMap</a></div><div class="ttdeci">Map< std::string, Kind > label2KindMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
179
|
+
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a7117dbeceeef7a9fcaeee0a84a171590"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">SVF::CFLGraphBuilder::label2KindMap</a></div><div class="ttdeci">Map< std::string, Kind > label2KindMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00048">CFLGraphBuilder.h:48</a></div></div>
|
|
178
180
|
<div class="ttc" id="classSVF_1_1NormalGepCGEdge_html_a79033645683ead9a7404cd35fd936092"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">SVF::NormalGepCGEdge::classof</a></div><div class="ttdeci">static bool classof(const NormalGepCGEdge *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00277">ConsGEdge.h:277</a></div></div>
|
|
179
|
-
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a461ff21d73f60cf96a3e36672d4c6a6c"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">SVF::CFLGraphBuilder::kind2LabelMap</a></div><div class="ttdeci">Map< Kind, std::string > kind2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
181
|
+
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a461ff21d73f60cf96a3e36672d4c6a6c"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">SVF::CFLGraphBuilder::kind2LabelMap</a></div><div class="ttdeci">Map< Kind, std::string > kind2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00049">CFLGraphBuilder.h:49</a></div></div>
|
|
180
182
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
181
|
-
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a91f1f0e8abc8d781eaf8b1a4f025c18e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">SVF::CFLGraphBuilder::externMap</a></div><div class="ttdeci">bool externMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#
|
|
183
|
+
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a91f1f0e8abc8d781eaf8b1a4f025c18e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">SVF::CFLGraphBuilder::externMap</a></div><div class="ttdeci">bool externMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00051">CFLGraphBuilder.h:51</a></div></div>
|
|
184
|
+
</div><!-- fragment -->
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
<a id="ac74b55198d73acebb9843fd13c1fd880"></a>
|
|
188
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ac74b55198d73acebb9843fd13c1fd880">◆ </a></span>buildBiPEGgraph()</h2>
|
|
189
|
+
|
|
190
|
+
<div class="memitem">
|
|
191
|
+
<div class="memproto">
|
|
192
|
+
<table class="memname">
|
|
193
|
+
<tr>
|
|
194
|
+
<td class="memname"><a class="el" href="classSVF_1_1CFLGraph.html">CFLGraph</a> * SVF::AliasCFLGraphBuilder::buildBiPEGgraph </td>
|
|
195
|
+
<td>(</td>
|
|
196
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a> * </td>
|
|
197
|
+
<td class="paramname"><em>graph</em>, </td>
|
|
198
|
+
</tr>
|
|
199
|
+
<tr>
|
|
200
|
+
<td class="paramkey"></td>
|
|
201
|
+
<td></td>
|
|
202
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1CFLGraphBuilder.html#a20299631d2b85507af6d81861736db5e">Kind</a> </td>
|
|
203
|
+
<td class="paramname"><em>startKind</em>, </td>
|
|
204
|
+
</tr>
|
|
205
|
+
<tr>
|
|
206
|
+
<td class="paramkey"></td>
|
|
207
|
+
<td></td>
|
|
208
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1GrammarBase.html">GrammarBase</a> * </td>
|
|
209
|
+
<td class="paramname"><em>grammar</em>, </td>
|
|
210
|
+
</tr>
|
|
211
|
+
<tr>
|
|
212
|
+
<td class="paramkey"></td>
|
|
213
|
+
<td></td>
|
|
214
|
+
<td class="paramtype"><a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a> * </td>
|
|
215
|
+
<td class="paramname"><em>pag</em> </td>
|
|
216
|
+
</tr>
|
|
217
|
+
<tr>
|
|
218
|
+
<td></td>
|
|
219
|
+
<td>)</td>
|
|
220
|
+
<td></td><td></td>
|
|
221
|
+
</tr>
|
|
222
|
+
</table>
|
|
223
|
+
</div><div class="memdoc">
|
|
224
|
+
<p>Build Bidirectional graph by copying nodes and edges from any graph inherited from <a class="el" href="classSVF_1_1GenericGraph.html">GenericGraph</a> And transfer Load Store to copy edge and address edge to construct PEG style CFG </p>
|
|
225
|
+
<p>Process Store</p>
|
|
226
|
+
<p>Check Dst of Store Dereference Node</p>
|
|
227
|
+
<p>Add Addr Edge</p>
|
|
228
|
+
<p>Add Copy Edge</p>
|
|
229
|
+
<p>Process Load</p>
|
|
230
|
+
<p>Check Src of Load Dereference Node</p>
|
|
231
|
+
<p>Add Addr Edge</p>
|
|
232
|
+
<p>Add Copy Edge </p>
|
|
233
|
+
|
|
234
|
+
<p class="definition">Definition at line <a class="el" href="CFLGraphBuilder_8cpp_source.html#l00225">225</a> of file <a class="el" href="CFLGraphBuilder_8cpp_source.html">CFLGraphBuilder.cpp</a>.</p>
|
|
235
|
+
<div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  CFLGraph *cflGraph = <span class="keyword">new</span> CFLGraph(startKind);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">externMap</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar->getTerminals())</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> pairV : grammar->getNonterminals())</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.find(pairV.first) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.end())</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>.insert(pairV);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.find(pairV.second) == <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.end())</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>.insert(make_pair(pairV.second, pairV.first));</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph->begin(); it!= graph->end(); it++)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  CFLNode* node = <span class="keyword">new</span> CFLNode((*it).first);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  cflGraph->addCFLNode((*it).first, node);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = graph->begin(); it!= graph->end(); it++)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  ConstraintNode* node = (*it).second;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">for</span>(ConstraintEdge* edge : node->getOutEdges())</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">if</span> (edge->getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">ConstraintEdge::Store</a>)</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">if</span> (pag->isNullPtr(edge->getSrcID()) && (<a class="code" href="classSVF_1_1Options.html#a59afe4356aae2133beb4819c013d3fbf">Options::NullDummyNode</a> == <span class="keyword">false</span>))</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  ConstraintNode* Dst = edge->getDstNode();</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  ConstraintNode* DerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  CFLNode* CFLDerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">for</span> (ConstraintEdge* DstInEdge : Dst->getInEdges())</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (DstInEdge->getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  DerefNode = DstInEdge->getSrcNode();</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  CFLDerefNode = cflGraph->getGNode(DstInEdge->getSrcID());</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">if</span> (DerefNode == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> refId = pag->addDummyValNode();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  CFLDerefNode = <span class="keyword">new</span> CFLNode(refId);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  cflGraph->addCFLNode(refId, CFLDerefNode);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  cflGraph->addCFLEdge(CFLDerefNode, cflGraph->getGNode(edge->getDstID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>];</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  key.append(<span class="stringliteral">"bar"</span>);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  cflGraph->addCFLEdge(cflGraph->getGNode(edge->getDstID()), CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  cflGraph->addCFLEdge(cflGraph->getGNode(edge->getSrcID()), cflGraph->getGNode(CFLDerefNode->getId()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>];</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  key.append(<span class="stringliteral">"bar"</span>);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  cflGraph->addCFLEdge(cflGraph->getGNode(CFLDerefNode->getId()), cflGraph->getGNode(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( edge->getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">ConstraintEdge::Load</a>)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  ConstraintNode* Src = edge->getSrcNode();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  ConstraintNode* DerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  CFLNode* CFLDerefNode = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">for</span> (ConstraintEdge* SrcInEdge : Src->getInEdges())</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">if</span> (SrcInEdge->getEdgeKind() == <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  DerefNode = SrcInEdge->getSrcNode();</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  CFLDerefNode = cflGraph->getGNode(SrcInEdge->getSrcID());</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">if</span> (DerefNode == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> refId = pag->addDummyValNode();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  CFLDerefNode = <span class="keyword">new</span> CFLNode(refId);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  cflGraph->addCFLNode(refId, CFLDerefNode);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  cflGraph->addCFLEdge(CFLDerefNode, cflGraph->getGNode(edge->getSrcID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">ConstraintEdge::Addr</a>];</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  key.append(<span class="stringliteral">"bar"</span>);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  cflGraph->addCFLEdge(cflGraph->getGNode(edge->getSrcID()), CFLDerefNode, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  cflGraph->addCFLEdge(cflGraph->getGNode(CFLDerefNode->getId()), cflGraph->getGNode(edge->getDstID()), <a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[<a class="code" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">ConstraintEdge::Copy</a>];</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  key.append(<span class="stringliteral">"bar"</span>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  cflGraph->addCFLEdge(cflGraph->getGNode(edge->getDstID()), cflGraph->getGNode(CFLDerefNode->getId()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">CFLGrammar::Kind</a> edgeLabel = edge->getEdgeKind();</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">// Need to get the offset from the Const Edge</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="comment">// The offset present edge is only from Normal Gep CG at moment</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">NormalGepCGEdge::classof</a>(edge))</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  NormalGepCGEdge *nGepEdge = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><NormalGepCGEdge>(edge);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">CFLGrammar::Attribute</a> attr = nGepEdge->getConstantFieldIdx();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(edgeLabel, attr);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  edgeLabel = <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attr, edgeLabel);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  cflGraph->addCFLEdge(cflGraph->getGNode(edge->getSrcID()), cflGraph->getGNode(edge->getDstID()), edgeLabel);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[edge->getEdgeKind()];</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  key.append(<span class="stringliteral">"bar"</span>); <span class="comment">// for example Gep_i should be Gepbar_i, not Gep_ibar</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  cflGraph->addCFLEdge(cflGraph->getGNode(edge->getDstID()), cflGraph->getGNode(edge->getSrcID()), <a class="code" href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">CFLGrammar::getAttributedKind</a>(attr, <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]));</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">addAttribute</a>(<a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key], attr);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  cflGraph->addCFLEdge(cflGraph->getGNode(edge->getSrcID()), cflGraph->getGNode(edge->getDstID()), edgeLabel);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> key = <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">kind2LabelMap</a>[edge->getEdgeKind()];</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  key.append(<span class="stringliteral">"bar"</span>);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  cflGraph->addCFLEdge(cflGraph->getGNode(edge->getDstID()), cflGraph->getGNode(edge->getSrcID()), <a class="code" href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">label2KindMap</a>[key]);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> cflGraph;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> }</div><div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">SVF::ConstraintEdge::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
236
|
+
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
237
|
+
<div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375aed68bc43e8aae49e8590e140eb0ffaf3">SVF::ConstraintEdge::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
238
|
+
<div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a29b0aa3353f866ef1655ab6d4716feb9">SVF::ConstraintEdge::Copy</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
239
|
+
<div class="ttc" id="classSVF_1_1GrammarBase_html_ab070e5449d26e347b957d8b994d0303f"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#ab070e5449d26e347b957d8b994d0303f">SVF::GrammarBase::Attribute</a></div><div class="ttdeci">u32_t Attribute</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00040">CFLGrammar.h:40</a></div></div>
|
|
240
|
+
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_adaa843018284f854ed0ad3bcb1460a01"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#adaa843018284f854ed0ad3bcb1460a01">SVF::CFLGraphBuilder::addAttribute</a></div><div class="ttdeci">void addAttribute(CFLGrammar::Kind kind, CFLGrammar::Attribute attribute)</div><div class="ttdoc">add attribute to kind2Attribute Map </div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8cpp_source.html#l00037">CFLGraphBuilder.cpp:37</a></div></div>
|
|
241
|
+
<div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a20d6a102ddc06257a822ffffcc5a3b47">SVF::ConstraintEdge::Store</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
|
|
242
|
+
<div class="ttc" id="classSVF_1_1GrammarBase_html_af418e1033618da75e974a04ee1d7e275"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#af418e1033618da75e974a04ee1d7e275">SVF::GrammarBase::getAttributedKind</a></div><div class="ttdeci">static Kind getAttributedKind(Attribute attribute, Kind kind)</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00251">CFLGrammar.h:251</a></div></div>
|
|
243
|
+
<div class="ttc" id="classSVF_1_1GrammarBase_html_a7aef5c42fbd8a62dd4a541cc0e8e8187"><div class="ttname"><a href="classSVF_1_1GrammarBase.html#a7aef5c42fbd8a62dd4a541cc0e8e8187">SVF::GrammarBase::Kind</a></div><div class="ttdeci">u32_t Kind</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8h_source.html#l00039">CFLGrammar.h:39</a></div></div>
|
|
244
|
+
<div class="ttc" id="classSVF_1_1Options_html_a59afe4356aae2133beb4819c013d3fbf"><div class="ttname"><a href="classSVF_1_1Options.html#a59afe4356aae2133beb4819c013d3fbf">SVF::Options::NullDummyNode</a></div><div class="ttdeci">static const llvm::cl::opt< bool > NullDummyNode</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00257">Options.h:257</a></div></div>
|
|
245
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
|
|
246
|
+
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a7117dbeceeef7a9fcaeee0a84a171590"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a7117dbeceeef7a9fcaeee0a84a171590">SVF::CFLGraphBuilder::label2KindMap</a></div><div class="ttdeci">Map< std::string, Kind > label2KindMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00048">CFLGraphBuilder.h:48</a></div></div>
|
|
247
|
+
<div class="ttc" id="classSVF_1_1NormalGepCGEdge_html_a79033645683ead9a7404cd35fd936092"><div class="ttname"><a href="classSVF_1_1NormalGepCGEdge.html#a79033645683ead9a7404cd35fd936092">SVF::NormalGepCGEdge::classof</a></div><div class="ttdeci">static bool classof(const NormalGepCGEdge *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00277">ConsGEdge.h:277</a></div></div>
|
|
248
|
+
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a461ff21d73f60cf96a3e36672d4c6a6c"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a461ff21d73f60cf96a3e36672d4c6a6c">SVF::CFLGraphBuilder::kind2LabelMap</a></div><div class="ttdeci">Map< Kind, std::string > kind2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00049">CFLGraphBuilder.h:49</a></div></div>
|
|
249
|
+
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
250
|
+
<div class="ttc" id="classSVF_1_1CFLGraphBuilder_html_a91f1f0e8abc8d781eaf8b1a4f025c18e"><div class="ttname"><a href="classSVF_1_1CFLGraphBuilder.html#a91f1f0e8abc8d781eaf8b1a4f025c18e">SVF::CFLGraphBuilder::externMap</a></div><div class="ttdeci">bool externMap</div><div class="ttdef"><b>Definition:</b> <a href="CFLGraphBuilder_8h_source.html#l00051">CFLGraphBuilder.h:51</a></div></div>
|
|
182
251
|
</div><!-- fragment -->
|
|
183
252
|
</div>
|
|
184
253
|
</div>
|
|
@@ -491,7 +491,7 @@ Protected Member Functions</h2></td></tr>
|
|
|
491
491
|
<tr class="memitem:a6c60b761ddf3d6bf08c8a9c3f6fd9f0b"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b">updateCallGraph</a> (const <a class="el" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a> &callsites)</td></tr>
|
|
492
492
|
<tr class="memdesc:a6c60b761ddf3d6bf08c8a9c3f6fd9f0b"><td class="mdescLeft"> </td><td class="mdescRight">Update call graph for the input indirect callsites. <a href="#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b">More...</a><br /></td></tr>
|
|
493
493
|
<tr class="separator:a6c60b761ddf3d6bf08c8a9c3f6fd9f0b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
494
|
-
<tr class="memitem:a5a90e681e46c52ffd3debf02910c7ecf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">connectCaller2CalleeParams</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="
|
|
494
|
+
<tr class="memitem:a5a90e681e46c52ffd3debf02910c7ecf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">connectCaller2CalleeParams</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>, <a class="el" href="namespaceSVF.html#ac82022f3f81965c3ce9b26c299f537a7">NodePairSet</a> &cpySrcNodes)</td></tr>
|
|
495
495
|
<tr class="memdesc:a5a90e681e46c52ffd3debf02910c7ecf"><td class="mdescLeft"> </td><td class="mdescRight">Connect formal and actual parameters for indirect callsites. <a href="#a5a90e681e46c52ffd3debf02910c7ecf">More...</a><br /></td></tr>
|
|
496
496
|
<tr class="separator:a5a90e681e46c52ffd3debf02910c7ecf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
497
497
|
<tr class="memitem:a36729160041bc3a3e2b0a92b29062848"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a36729160041bc3a3e2b0a92b29062848">mergeNodeToRep</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newRepId)</td></tr>
|
|
@@ -517,7 +517,7 @@ Protected Member Functions</h2></td></tr>
|
|
|
517
517
|
<tr class="memitem:a1caa6fa0740f4fa789d960a5a6fcb9c1 inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a1caa6fa0740f4fa789d960a5a6fcb9c1">processNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</td></tr>
|
|
518
518
|
<tr class="memdesc:a1caa6fa0740f4fa789d960a5a6fcb9c1 inherit pro_methods_classSVF_1_1Andersen"><td class="mdescLeft"> </td><td class="mdescRight">Override <a class="el" href="classSVF_1_1WPASolver.html">WPASolver</a> function in order to use the default solver. <a href="classSVF_1_1Andersen.html#a1caa6fa0740f4fa789d960a5a6fcb9c1">More...</a><br /></td></tr>
|
|
519
519
|
<tr class="separator:a1caa6fa0740f4fa789d960a5a6fcb9c1 inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2"> </td></tr>
|
|
520
|
-
<tr class="memitem:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">connectCaller2CalleeParams</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="
|
|
520
|
+
<tr class="memitem:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">connectCaller2CalleeParams</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>, <a class="el" href="namespaceSVF.html#ac82022f3f81965c3ce9b26c299f537a7">NodePairSet</a> &cpySrcNodes)</td></tr>
|
|
521
521
|
<tr class="memdesc:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="mdescLeft"> </td><td class="mdescRight">Connect formal and actual parameters for indirect callsites. <a href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">More...</a><br /></td></tr>
|
|
522
522
|
<tr class="separator:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2"> </td></tr>
|
|
523
523
|
<tr class="memitem:a36729160041bc3a3e2b0a92b29062848 inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a36729160041bc3a3e2b0a92b29062848">mergeNodeToRep</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newRepId)</td></tr>
|
|
@@ -542,7 +542,7 @@ Protected Member Functions</h2></td></tr>
|
|
|
542
542
|
<tr class="memitem:a1caa6fa0740f4fa789d960a5a6fcb9c1 inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a1caa6fa0740f4fa789d960a5a6fcb9c1">processNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</td></tr>
|
|
543
543
|
<tr class="memdesc:a1caa6fa0740f4fa789d960a5a6fcb9c1 inherit pro_methods_classSVF_1_1Andersen"><td class="mdescLeft"> </td><td class="mdescRight">Override <a class="el" href="classSVF_1_1WPASolver.html">WPASolver</a> function in order to use the default solver. <a href="classSVF_1_1Andersen.html#a1caa6fa0740f4fa789d960a5a6fcb9c1">More...</a><br /></td></tr>
|
|
544
544
|
<tr class="separator:a1caa6fa0740f4fa789d960a5a6fcb9c1 inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2"> </td></tr>
|
|
545
|
-
<tr class="memitem:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">connectCaller2CalleeParams</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="
|
|
545
|
+
<tr class="memitem:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">connectCaller2CalleeParams</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>, <a class="el" href="namespaceSVF.html#ac82022f3f81965c3ce9b26c299f537a7">NodePairSet</a> &cpySrcNodes)</td></tr>
|
|
546
546
|
<tr class="memdesc:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="mdescLeft"> </td><td class="mdescRight">Connect formal and actual parameters for indirect callsites. <a href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">More...</a><br /></td></tr>
|
|
547
547
|
<tr class="separator:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2"> </td></tr>
|
|
548
548
|
<tr class="memitem:a36729160041bc3a3e2b0a92b29062848 inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a36729160041bc3a3e2b0a92b29062848">mergeNodeToRep</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newRepId)</td></tr>
|
|
@@ -467,7 +467,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
467
467
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_a61ef90be6ccc01634e5440f22a0f746e"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a61ef90be6ccc01634e5440f22a0f746e">SVF::ConstraintGraph::getStoreCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy & getStoreCGEdges()</div><div class="ttdoc">Get Store edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00209">ConsG.h:209</a></div></div>
|
|
468
468
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00391">GenericGraph.h:391</a></div></div>
|
|
469
469
|
<div class="ttc" id="classSVF_1_1PTAStat_html_afdb975520329be0c33cc7bdd51ba7031"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">SVF::PTAStat::PTNumStatMap</a></div><div class="ttdeci">NUMStatMap PTNumStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00148">PTAStat.h:148</a></div></div>
|
|
470
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str="")</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#
|
|
470
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str="")</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00293">PTAStat.cpp:293</a></div></div>
|
|
471
471
|
</div><!-- fragment -->
|
|
472
472
|
</div>
|
|
473
473
|
</div>
|
|
@@ -551,7 +551,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
551
551
|
<div class="ttc" id="classSVF_1_1PTAStat_html_afe854f7416ea408104721a083ee9fee0"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afe854f7416ea408104721a083ee9fee0">SVF::PTAStat::endClk</a></div><div class="ttdeci">virtual void endClk()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00138">PTAStat.h:138</a></div></div>
|
|
552
552
|
<div class="ttc" id="classSVF_1_1PTAStat_html_aefcc3638fac7034ab3542be8eb01ab58"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aefcc3638fac7034ab3542be8eb01ab58">SVF::PTAStat::NumOfPWCCycles</a></div><div class="ttdeci">static const char * NumOfPWCCycles</div><div class="ttdoc">Number of scc cycles detected. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00115">PTAStat.h:115</a></div></div>
|
|
553
553
|
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00182">SVFBasicTypes.h:182</a></div></div>
|
|
554
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_acfed70588cf921694db35990ec3c7497"><div class="ttname"><a href="classSVF_1_1PTAStat.html#acfed70588cf921694db35990ec3c7497">SVF::PTAStat::performStat</a></div><div class="ttdeci">virtual void performStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#
|
|
554
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_acfed70588cf921694db35990ec3c7497"><div class="ttname"><a href="classSVF_1_1PTAStat.html#acfed70588cf921694db35990ec3c7497">SVF::PTAStat::performStat</a></div><div class="ttdeci">virtual void performStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00134">PTAStat.cpp:134</a></div></div>
|
|
555
555
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a38dfd00f384eea7899a29b2ec32a0ded"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">SVF::AndersenStat::_NumOfNullPtr</a></div><div class="ttdeci">u32_t _NumOfNullPtr</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00062">WPAStat.h:62</a></div></div>
|
|
556
556
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a27d4e2bf145226f3c2b4d46fee2311e7"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a27d4e2bf145226f3c2b4d46fee2311e7">SVF::AndersenStat::_NumOfBlackholePtr</a></div><div class="ttdeci">u32_t _NumOfBlackholePtr</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00064">WPAStat.h:64</a></div></div>
|
|
557
557
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ab754f7768ffcd6f232b8cdf0fef6fc4e"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ab754f7768ffcd6f232b8cdf0fef6fc4e">SVF::PTAStat::MaxNumOfNodesInSCC</a></div><div class="ttdeci">static const char * MaxNumOfNodesInSCC</div><div class="ttdoc">max Number of nodes in one scc </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00117">PTAStat.h:117</a></div></div>
|
|
@@ -582,7 +582,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
582
582
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_aa2e3a589d376de12a1cbfb0d1ebcacb9"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#aa2e3a589d376de12a1cbfb0d1ebcacb9">SVF::AndersenStat::_NumOfNodesInCycles</a></div><div class="ttdeci">static u32_t _NumOfNodesInCycles</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00060">WPAStat.h:60</a></div></div>
|
|
583
583
|
<div class="ttc" id="classSVF_1_1PTAStat_html_ad4c1cf3750341f73987c37745f3bd2aa"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad4c1cf3750341f73987c37745f3bd2aa">SVF::PTAStat::SCCDetectionTime</a></div><div class="ttdeci">static const char * SCCDetectionTime</div><div class="ttdoc">Total SCC detection time. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00053">PTAStat.h:53</a></div></div>
|
|
584
584
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a5ad75166a80052f9e6fdd14ff7c8b948"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a5ad75166a80052f9e6fdd14ff7c8b948">SVF::AndersenStat::constraintGraphStat</a></div><div class="ttdeci">void constraintGraphStat()</div><div class="ttdef"><b>Definition:</b> <a href="AndersenStat_8cpp_source.html#l00099">AndersenStat.cpp:99</a></div></div>
|
|
585
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str="")</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#
|
|
585
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str="")</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00293">PTAStat.cpp:293</a></div></div>
|
|
586
586
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a8c4101e697057269def501d14a987287"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a8c4101e697057269def501d14a987287">SVF::PTAStat::SCCMergeTime</a></div><div class="ttdeci">static const char * SCCMergeTime</div><div class="ttdoc">Total SCC merge time. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00054">PTAStat.h:54</a></div></div>
|
|
587
587
|
<div class="ttc" id="classSVF_1_1IRGraph_html_a0212f3fe2f37363e8060f292c8cf7668"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a0212f3fe2f37363e8060f292c8cf7668">SVF::IRGraph::getValueNodeNum</a></div><div class="ttdeci">u32_t getValueNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00173">IRGraph.h:173</a></div></div>
|
|
588
588
|
</div><!-- fragment -->
|
|
@@ -577,7 +577,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
577
577
|
<tr class="memitem:a6c60b761ddf3d6bf08c8a9c3f6fd9f0b inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b">updateCallGraph</a> (const <a class="el" href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">CallSiteToFunPtrMap</a> &callsites)</td></tr>
|
|
578
578
|
<tr class="memdesc:a6c60b761ddf3d6bf08c8a9c3f6fd9f0b inherit pro_methods_classSVF_1_1Andersen"><td class="mdescLeft"> </td><td class="mdescRight">Update call graph for the input indirect callsites. <a href="classSVF_1_1Andersen.html#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b">More...</a><br /></td></tr>
|
|
579
579
|
<tr class="separator:a6c60b761ddf3d6bf08c8a9c3f6fd9f0b inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2"> </td></tr>
|
|
580
|
-
<tr class="memitem:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">connectCaller2CalleeParams</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="
|
|
580
|
+
<tr class="memitem:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">connectCaller2CalleeParams</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>, <a class="el" href="namespaceSVF.html#ac82022f3f81965c3ce9b26c299f537a7">NodePairSet</a> &cpySrcNodes)</td></tr>
|
|
581
581
|
<tr class="memdesc:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="mdescLeft"> </td><td class="mdescRight">Connect formal and actual parameters for indirect callsites. <a href="classSVF_1_1Andersen.html#a5a90e681e46c52ffd3debf02910c7ecf">More...</a><br /></td></tr>
|
|
582
582
|
<tr class="separator:a5a90e681e46c52ffd3debf02910c7ecf inherit pro_methods_classSVF_1_1Andersen"><td class="memSeparator" colspan="2"> </td></tr>
|
|
583
583
|
<tr class="memitem:a36729160041bc3a3e2b0a92b29062848 inherit pro_methods_classSVF_1_1Andersen"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Andersen.html#a36729160041bc3a3e2b0a92b29062848">mergeNodeToRep</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newRepId)</td></tr>
|
|
@@ -87,7 +87,7 @@ Public Member Functions</h2></td></tr>
|
|
|
87
87
|
<tr class="separator:a5397ce21e78d09c8d1cdc3f912d53a7f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
88
88
|
<tr class="memitem:a182830d0a9d07015628211ec5eb0d4c6"><td class="memItemLeft" align="right" valign="top">llvm::StringRef </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BreakConstantGEPs.html#a182830d0a9d07015628211ec5eb0d4c6">getPassName</a> () const</td></tr>
|
|
89
89
|
<tr class="separator:a182830d0a9d07015628211ec5eb0d4c6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
90
|
-
<tr class="memitem:ae99ceb7923161d54e7d0a687f4f68e1a"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a">runOnModule</a> (<a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &
|
|
90
|
+
<tr class="memitem:ae99ceb7923161d54e7d0a687f4f68e1a"><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a">runOnModule</a> (<a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &<a class="el" href="PEGGrammar_8txt.html#abd600039647a1e73c88e7161fa6eb989">M</a>)</td></tr>
|
|
91
91
|
<tr class="separator:ae99ceb7923161d54e7d0a687f4f68e1a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
92
92
|
</table><table class="memberdecls">
|
|
93
93
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
|