svf-tools 1.0.556 → 1.0.559
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/README.md +2 -2
- package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +15 -15
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +12 -11
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +11 -10
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +47 -46
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +9 -8
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +35 -34
- package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
- package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +19 -18
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +15 -15
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +13 -12
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +11 -11
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +20 -19
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +13 -13
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -2
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -2
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +5 -4
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +67 -69
- package/SVF-doxygen/html/html/PTAStat_8h.html +1 -0
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +70 -76
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +5 -4
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +22 -21
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStat_8cpp.html +81 -0
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +85 -0
- package/SVF-doxygen/html/html/SVFStat_8h.html +94 -0
- package/SVF-doxygen/html/html/SVFStat_8h_source.html +103 -0
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +8 -8
- package/SVF-doxygen/html/html/annotated.html +39 -38
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +79 -79
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat-members.html +24 -22
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +97 -86
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat-members.html +24 -23
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +80 -67
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +40 -5
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat-members.html +24 -22
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +67 -56
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat-members.html +23 -21
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +55 -42
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat-members.html +25 -23
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +59 -48
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat-members.html +22 -21
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +57 -44
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +24 -22
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +186 -420
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat-members.html +33 -32
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +100 -87
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat-members.html +100 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +605 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +26 -24
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +65 -54
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.png +0 -0
- package/SVF-doxygen/html/html/classes.html +50 -50
- package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +2 -0
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/files.html +10 -8
- package/SVF-doxygen/html/html/functions_0x7e.html +3 -0
- package/SVF-doxygen/html/html/functions_c.html +28 -29
- package/SVF-doxygen/html/html/functions_e.html +3 -2
- package/SVF-doxygen/html/html/functions_enum.html +1 -1
- package/SVF-doxygen/html/html/functions_eval_c.html +1 -1
- package/SVF-doxygen/html/html/functions_eval_w.html +1 -1
- package/SVF-doxygen/html/html/functions_func_0x7e.html +3 -0
- package/SVF-doxygen/html/html/functions_func_c.html +28 -27
- package/SVF-doxygen/html/html/functions_func_e.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +1 -1
- package/SVF-doxygen/html/html/functions_func_i.html +11 -8
- package/SVF-doxygen/html/html/functions_func_p.html +9 -7
- package/SVF-doxygen/html/html/functions_func_s.html +15 -12
- package/SVF-doxygen/html/html/functions_g.html +2 -2
- package/SVF-doxygen/html/html/functions_i.html +8 -5
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_m.html +2 -1
- package/SVF-doxygen/html/html/functions_n.html +1 -1
- package/SVF-doxygen/html/html/functions_p.html +17 -13
- package/SVF-doxygen/html/html/functions_r.html +7 -3
- package/SVF-doxygen/html/html/functions_s.html +23 -21
- package/SVF-doxygen/html/html/functions_t.html +6 -6
- package/SVF-doxygen/html/html/functions_type_n.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_type_t.html +1 -1
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_e.html +1 -0
- package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_m.html +1 -0
- package/SVF-doxygen/html/html/functions_vars_s.html +1 -0
- package/SVF-doxygen/html/html/functions_vars_t.html +1 -1
- package/SVF-doxygen/html/html/functions_w.html +1 -1
- package/SVF-doxygen/html/html/hierarchy.html +47 -46
- package/SVF-doxygen/html/html/namespaceSVF.html +2 -0
- package/SVF-doxygen/html/html/search/all_10.js +8 -8
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +13 -10
- package/SVF-doxygen/html/html/search/all_13.js +4 -4
- 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_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +1 -0
- package/SVF-doxygen/html/html/search/all_3.js +3 -3
- package/SVF-doxygen/html/html/search/all_5.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +1 -0
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/classes_f.js +1 -0
- package/SVF-doxygen/html/html/search/enums_1.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_2.js +1 -1
- package/SVF-doxygen/html/html/search/files_d.js +2 -0
- package/SVF-doxygen/html/html/search/functions_11.js +3 -2
- package/SVF-doxygen/html/html/search/functions_17.js +1 -0
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/functions_4.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +1 -1
- package/SVF-doxygen/html/html/search/functions_8.js +1 -0
- package/SVF-doxygen/html/html/search/functions_f.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_10.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +2 -2
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_5.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/include/Graphs/ICFGStat.h +1 -1
- package/include/Util/ExtAPI.h +3 -0
- package/include/Util/ExtAPI.json +1456 -44
- package/include/Util/PTAStat.h +6 -36
- package/include/Util/SVFStat.h +95 -0
- package/include/WPA/AndersenPWC.h +1 -1
- package/lib/DDA/DDAPass.cpp +1 -0
- package/lib/DDA/DDAStat.cpp +1 -0
- package/lib/Graphs/SVFGReadWrite.cpp +1 -0
- package/lib/Graphs/SVFGStat.cpp +1 -0
- package/lib/SVF-FE/CHGBuilder.cpp +1 -0
- package/lib/Util/ExtAPI.cpp +42 -4
- package/lib/Util/PTAStat.cpp +2 -21
- package/lib/Util/SVFStat.cpp +58 -0
- package/lib/WPA/Andersen.cpp +1 -0
- package/lib/WPA/AndersenSCD.cpp +1 -0
- package/lib/WPA/AndersenSFR.cpp +1 -0
- package/lib/WPA/AndersenStat.cpp +1 -0
- package/lib/WPA/AndersenWaveDiff.cpp +1 -0
- package/package.json +1 -1
|
@@ -80,7 +80,8 @@ Inheritance diagram for SVF::AndersenStat:</div>
|
|
|
80
80
|
<div class="center">
|
|
81
81
|
<img src="classSVF_1_1AndersenStat.png" usemap="#SVF::AndersenStat_map" alt=""/>
|
|
82
82
|
<map id="SVF::AndersenStat_map" name="SVF::AndersenStat_map">
|
|
83
|
-
<area href="classSVF_1_1PTAStat.html" alt="SVF::PTAStat" shape="rect" coords="0,
|
|
83
|
+
<area href="classSVF_1_1PTAStat.html" alt="SVF::PTAStat" shape="rect" coords="0,56,119,80"/>
|
|
84
|
+
<area href="classSVF_1_1SVFStat.html" alt="SVF::SVFStat" shape="rect" coords="0,0,119,24"/>
|
|
84
85
|
</map>
|
|
85
86
|
</div></div>
|
|
86
87
|
<table class="memberdecls">
|
|
@@ -103,18 +104,23 @@ Public Member Functions</h2></td></tr>
|
|
|
103
104
|
<tr class="separator:ac9b65b591200c16c420fbd26710b448f inherit pub_methods_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
104
105
|
<tr class="memitem:a1e5294c49b8bd8a850e938dccd5800a5 inherit pub_methods_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#a1e5294c49b8bd8a850e938dccd5800a5">~PTAStat</a> ()</td></tr>
|
|
105
106
|
<tr class="separator:a1e5294c49b8bd8a850e938dccd5800a5 inherit pub_methods_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
106
|
-
<tr class="memitem:
|
|
107
|
-
<tr class="separator:
|
|
108
|
-
<tr class="memitem:
|
|
109
|
-
<tr class="separator:
|
|
110
|
-
<tr class="
|
|
111
|
-
<tr class="
|
|
112
|
-
<tr class="
|
|
113
|
-
<tr class="
|
|
114
|
-
<tr class="
|
|
115
|
-
<tr class="
|
|
116
|
-
<tr class="
|
|
117
|
-
<tr class="
|
|
107
|
+
<tr class="memitem:aca3e99ad83bddabee1dd565522691c78 inherit pub_methods_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">printStat</a> (<a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a> str="") override</td></tr>
|
|
108
|
+
<tr class="separator:aca3e99ad83bddabee1dd565522691c78 inherit pub_methods_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
109
|
+
<tr class="memitem:af2eb88d1563be9e6290a5fc69bec3bbe inherit pub_methods_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#af2eb88d1563be9e6290a5fc69bec3bbe">callgraphStat</a> () override</td></tr>
|
|
110
|
+
<tr class="separator:af2eb88d1563be9e6290a5fc69bec3bbe inherit pub_methods_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
111
|
+
<tr class="inherit_header pub_methods_classSVF_1_1SVFStat"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1SVFStat')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classSVF_1_1SVFStat.html">SVF::SVFStat</a></td></tr>
|
|
112
|
+
<tr class="memitem:ad22433722f7c71df19a891a5b5039d26 inherit pub_methods_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#ad22433722f7c71df19a891a5b5039d26">SVFStat</a> ()</td></tr>
|
|
113
|
+
<tr class="separator:ad22433722f7c71df19a891a5b5039d26 inherit pub_methods_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
114
|
+
<tr class="memitem:a135ac9973ebfef4680d343320453ff52 inherit pub_methods_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a135ac9973ebfef4680d343320453ff52">~SVFStat</a> ()</td></tr>
|
|
115
|
+
<tr class="separator:a135ac9973ebfef4680d343320453ff52 inherit pub_methods_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
116
|
+
<tr class="memitem:a730cc814fede3edb563aa9957c869e9e inherit pub_methods_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a730cc814fede3edb563aa9957c869e9e">startClk</a> ()</td></tr>
|
|
117
|
+
<tr class="separator:a730cc814fede3edb563aa9957c869e9e inherit pub_methods_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
118
|
+
<tr class="memitem:a1b7f1e3381de87f75f06cddb9c6c1ec1 inherit pub_methods_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a1b7f1e3381de87f75f06cddb9c6c1ec1">endClk</a> ()</td></tr>
|
|
119
|
+
<tr class="separator:a1b7f1e3381de87f75f06cddb9c6c1ec1 inherit pub_methods_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
120
|
+
<tr class="memitem:ab03780f736bed7861c9be14637e37ba3 inherit pub_methods_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#ab03780f736bed7861c9be14637e37ba3">performStatPerQuery</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>)</td></tr>
|
|
121
|
+
<tr class="separator:ab03780f736bed7861c9be14637e37ba3 inherit pub_methods_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
122
|
+
<tr class="memitem:a2dd8ce8bb1970344533babb9fc8ddd02 inherit pub_methods_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a2dd8ce8bb1970344533babb9fc8ddd02">printStatPerQuery</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>, const <a class="el" href="classSVF_1_1PointsTo.html">PointsTo</a> &)</td></tr>
|
|
123
|
+
<tr class="separator:a2dd8ce8bb1970344533babb9fc8ddd02 inherit pub_methods_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
118
124
|
</table><table class="memberdecls">
|
|
119
125
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
|
120
126
|
Public Attributes</h2></td></tr>
|
|
@@ -125,18 +131,23 @@ Public Attributes</h2></td></tr>
|
|
|
125
131
|
<tr class="memitem:a27d4e2bf145226f3c2b4d46fee2311e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1AndersenStat.html#a27d4e2bf145226f3c2b4d46fee2311e7">_NumOfBlackholePtr</a></td></tr>
|
|
126
132
|
<tr class="separator:a27d4e2bf145226f3c2b4d46fee2311e7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
127
133
|
<tr class="inherit_header pub_attribs_classSVF_1_1PTAStat"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classSVF_1_1PTAStat')"><img src="closed.png" alt="-"/> Public Attributes inherited from <a class="el" href="classSVF_1_1PTAStat.html">SVF::PTAStat</a></td></tr>
|
|
128
|
-
<tr class="memitem:
|
|
129
|
-
<tr class="separator:afa718535839a939e51afc0f8c1fbdac6 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
130
|
-
<tr class="memitem:afdb975520329be0c33cc7bdd51ba7031 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTAStat.html#a7e8f9f9c1662822f3f8bd016db84e1e6">NUMStatMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a></td></tr>
|
|
134
|
+
<tr class="memitem:afdb975520329be0c33cc7bdd51ba7031 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFStat.html#ab810863d70cb2f5b4e312d07eae51227">NUMStatMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a></td></tr>
|
|
131
135
|
<tr class="separator:afdb975520329be0c33cc7bdd51ba7031 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
132
|
-
<tr class="memitem:a3724756ac0527ba3d199be32e38c6337 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PTAStat.html#a28f304e7095f3843ca4cc017bc1f7b10">TIMEStatMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a></td></tr>
|
|
133
|
-
<tr class="separator:a3724756ac0527ba3d199be32e38c6337 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
134
136
|
<tr class="memitem:a5b4095f427c9c7b9ec0db497ba33baea inherit pub_attribs_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#aa7b6a13e52671de8524b130738aeb564">NodeBS</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a></td></tr>
|
|
135
137
|
<tr class="separator:a5b4095f427c9c7b9ec0db497ba33baea inherit pub_attribs_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
136
138
|
<tr class="memitem:a59e0fe6fa506f1cf319b5acaf9d28be9 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">startTime</a></td></tr>
|
|
137
139
|
<tr class="separator:a59e0fe6fa506f1cf319b5acaf9d28be9 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
138
140
|
<tr class="memitem:a267ba4aac2e7ceb65f008f9486d3d9f7 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">endTime</a></td></tr>
|
|
139
141
|
<tr class="separator:a267ba4aac2e7ceb65f008f9486d3d9f7 inherit pub_attribs_classSVF_1_1PTAStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
142
|
+
<tr class="inherit_header pub_attribs_classSVF_1_1SVFStat"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classSVF_1_1SVFStat')"><img src="closed.png" alt="-"/> Public Attributes inherited from <a class="el" href="classSVF_1_1SVFStat.html">SVF::SVFStat</a></td></tr>
|
|
143
|
+
<tr class="memitem:a07b6f8cb424b84b468c4518140fa3a41 inherit pub_attribs_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFStat.html#ab810863d70cb2f5b4e312d07eae51227">NUMStatMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">generalNumMap</a></td></tr>
|
|
144
|
+
<tr class="separator:a07b6f8cb424b84b468c4518140fa3a41 inherit pub_attribs_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
145
|
+
<tr class="memitem:a5383691a34426a1a997b5eed387f1831 inherit pub_attribs_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFStat.html#aeded7780a3f826b3efab971807e2dd98">TIMEStatMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a></td></tr>
|
|
146
|
+
<tr class="separator:a5383691a34426a1a997b5eed387f1831 inherit pub_attribs_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
147
|
+
<tr class="memitem:abd7a79d1fe50110a0c1d448027492669 inherit pub_attribs_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#abd7a79d1fe50110a0c1d448027492669">startTime</a></td></tr>
|
|
148
|
+
<tr class="separator:abd7a79d1fe50110a0c1d448027492669 inherit pub_attribs_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
149
|
+
<tr class="memitem:a8b01f1564408b51f28c107454bf9068d inherit pub_attribs_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a8b01f1564408b51f28c107454bf9068d">endTime</a></td></tr>
|
|
150
|
+
<tr class="separator:a8b01f1564408b51f28c107454bf9068d inherit pub_attribs_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
140
151
|
</table><table class="memberdecls">
|
|
141
152
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
|
|
142
153
|
Static Public Attributes</h2></td></tr>
|
|
@@ -317,18 +328,18 @@ Private Attributes</h2></td></tr>
|
|
|
317
328
|
</table><table class="memberdecls">
|
|
318
329
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
|
|
319
330
|
Additional Inherited Members</h2></td></tr>
|
|
320
|
-
<tr class="inherit_header
|
|
321
|
-
<tr class="memitem:
|
|
322
|
-
<a class="el" href="
|
|
331
|
+
<tr class="inherit_header pub_types_classSVF_1_1SVFStat"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1SVFStat')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="classSVF_1_1SVFStat.html">SVF::SVFStat</a></td></tr>
|
|
332
|
+
<tr class="memitem:a4f47da512cfa8f94fddaddc65334b454 inherit pub_types_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454">ClockType</a> { <a class="el" href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454a4daec28631d54e09b587e78707ab54fc">Wall</a>,
|
|
333
|
+
<a class="el" href="classSVF_1_1SVFStat.html#a4f47da512cfa8f94fddaddc65334b454ad58693e596aa4088fa4a05065f9c0ffa">CPU</a>
|
|
323
334
|
}</td></tr>
|
|
324
|
-
<tr class="separator:
|
|
325
|
-
<tr class="memitem:
|
|
326
|
-
<tr class="separator:
|
|
327
|
-
<tr class="memitem:
|
|
328
|
-
<tr class="separator:
|
|
329
|
-
<tr class="inherit_header
|
|
330
|
-
<tr class="memitem:
|
|
331
|
-
<tr class="separator:
|
|
335
|
+
<tr class="separator:a4f47da512cfa8f94fddaddc65334b454 inherit pub_types_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
336
|
+
<tr class="memitem:ab810863d70cb2f5b4e312d07eae51227 inherit pub_types_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>< const char *, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#ab810863d70cb2f5b4e312d07eae51227">NUMStatMap</a></td></tr>
|
|
337
|
+
<tr class="separator:ab810863d70cb2f5b4e312d07eae51227 inherit pub_types_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
338
|
+
<tr class="memitem:aeded7780a3f826b3efab971807e2dd98 inherit pub_types_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap</a>< const char *, double > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#aeded7780a3f826b3efab971807e2dd98">TIMEStatMap</a></td></tr>
|
|
339
|
+
<tr class="separator:aeded7780a3f826b3efab971807e2dd98 inherit pub_types_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
340
|
+
<tr class="inherit_header pub_static_methods_classSVF_1_1SVFStat"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classSVF_1_1SVFStat')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classSVF_1_1SVFStat.html">SVF::SVFStat</a></td></tr>
|
|
341
|
+
<tr class="memitem:ac9d390c417df6f6af6b274618b87010d inherit pub_static_methods_classSVF_1_1SVFStat"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a> (bool mark=<a class="el" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>)</td></tr>
|
|
342
|
+
<tr class="separator:ac9d390c417df6f6af6b274618b87010d inherit pub_static_methods_classSVF_1_1SVFStat"><td class="memSeparator" colspan="2"> </td></tr>
|
|
332
343
|
</table>
|
|
333
344
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
334
345
|
<div class="textblock"><p>Statistics of <a class="el" href="classSVF_1_1Andersen.html">Andersen</a>'s analysis </p>
|
|
@@ -352,13 +363,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
352
363
|
</div><div class="memdoc">
|
|
353
364
|
<p>Constructor </p>
|
|
354
365
|
|
|
355
|
-
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#
|
|
356
|
-
<div class="fragment"><div class="line"><a name="
|
|
366
|
+
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#l00049">49</a> of file <a class="el" href="AndersenStat_8cpp_source.html">AndersenStat.cpp</a>.</p>
|
|
367
|
+
<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  : <a class="code" href="classSVF_1_1PTAStat.html#ac9b65b591200c16c420fbd26710b448f">PTAStat</a>(p),<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>(p)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a> = 0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">_NumOfConstantPtr</a>= 0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a27d4e2bf145226f3c2b4d46fee2311e7">_NumOfBlackholePtr</a> = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classSVF_1_1SVFStat.html#a730cc814fede3edb563aa9957c869e9e">startClk</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div><div class="ttc" id="classSVF_1_1AndersenStat_html_a8af8dd60987c4c99ea3727d9db87c187"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">SVF::AndersenStat::pta</a></div><div class="ttdeci">AndersenBase * pta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00052">WPAStat.h:52</a></div></div>
|
|
357
368
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_ab8f8152b5e6127f2d9bdcbd22083da67"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">SVF::AndersenStat::_NumOfConstantPtr</a></div><div class="ttdeci">u32_t _NumOfConstantPtr</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00063">WPAStat.h:63</a></div></div>
|
|
358
|
-
<div class="ttc" id="
|
|
369
|
+
<div class="ttc" id="classSVF_1_1SVFStat_html_a730cc814fede3edb563aa9957c869e9e"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a730cc814fede3edb563aa9957c869e9e">SVF::SVFStat::startClk</a></div><div class="ttdeci">virtual void startClk()</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00058">SVFStat.h:58</a></div></div>
|
|
359
370
|
<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>
|
|
360
371
|
<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>
|
|
361
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_ac9b65b591200c16c420fbd26710b448f"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac9b65b591200c16c420fbd26710b448f">SVF::PTAStat::PTAStat</a></div><div class="ttdeci">PTAStat(PointerAnalysis *p)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#
|
|
372
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_ac9b65b591200c16c420fbd26710b448f"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac9b65b591200c16c420fbd26710b448f">SVF::PTAStat::PTAStat</a></div><div class="ttdeci">PTAStat(PointerAnalysis *p)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00109">PTAStat.cpp:109</a></div></div>
|
|
362
373
|
</div><!-- fragment -->
|
|
363
374
|
</div>
|
|
364
375
|
</div>
|
|
@@ -407,8 +418,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
407
418
|
</div><div class="memdoc">
|
|
408
419
|
<p>Collect cycle information </p>
|
|
409
420
|
|
|
410
|
-
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#
|
|
411
|
-
<div class="fragment"><div class="line"><a name="
|
|
421
|
+
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#l00060">60</a> of file <a class="el" href="AndersenStat_8cpp_source.html">AndersenStat.cpp</a>.</p>
|
|
422
|
+
<div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a6e58c88a4118d368955dee5bbb0ccd21">_NumOfCycles</a> = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1AndersenStat.html#afbd6b36ac1b0addb902fe8eb5643df83">_NumOfPWCCycles</a> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1AndersenStat.html#aa2e3a589d376de12a1cbfb0d1ebcacb9">_NumOfNodesInCycles</a> = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> repNodes;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  repNodes.clear();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">ConstraintGraph::iterator</a> it = consCG-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = consCG-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// sub nodes have been removed from the constraint graph, only rep nodes are left.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> repNode = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a39b973543acdcdc5493832cc9d0f586f">sccRepNode</a>(it->first);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& subNodes = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#aed605b010e313f4b11e95b83fe50e3b3">sccSubNodes</a>(repNode);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> clone = subNodes;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> it = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = *it;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(nodeId);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ObjVar>(pagNode) && <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a0f71e4cd0948b294c7d33a690bde7dbe">isFieldInsensitive</a>(nodeId))</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> baseId = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a6e8c46641da751fe3369c9d5407ce415">getBaseObjVar</a>(nodeId);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  clone.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(nodeId);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  clone.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(baseId);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = clone.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> (num > 1)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span>(repNodes.insert(repNode).second)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="classSVF_1_1AndersenStat.html#aa2e3a589d376de12a1cbfb0d1ebcacb9">_NumOfNodesInCycles</a> += num;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">if</span>(consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a84468bc9355d31e8c3e18369036ddf5c">isPWCNode</a>(repNode))</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1AndersenStat.html#afbd6b36ac1b0addb902fe8eb5643df83">_NumOfPWCCycles</a> ++;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span>( num > <a class="code" href="classSVF_1_1AndersenStat.html#ac16491cbf4bcd22dc1a8acd25db20e10">_MaxNumOfNodesInSCC</a>)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1AndersenStat.html#ac16491cbf4bcd22dc1a8acd25db20e10">_MaxNumOfNodesInSCC</a> = num;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a6e58c88a4118d368955dee5bbb0ccd21">_NumOfCycles</a> += repNodes.size();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> }</div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00534">SparseBitVector.h:534</a></div></div>
|
|
412
423
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
413
424
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a6e58c88a4118d368955dee5bbb0ccd21"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a6e58c88a4118d368955dee5bbb0ccd21">SVF::AndersenStat::_NumOfCycles</a></div><div class="ttdeci">static u32_t _NumOfCycles</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00058">WPAStat.h:58</a></div></div>
|
|
414
425
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a8af8dd60987c4c99ea3727d9db87c187"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">SVF::AndersenStat::pta</a></div><div class="ttdeci">AndersenBase * pta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00052">WPAStat.h:52</a></div></div>
|
|
@@ -452,22 +463,22 @@ Additional Inherited Members</h2></td></tr>
|
|
|
452
463
|
</table>
|
|
453
464
|
</div><div class="memdoc">
|
|
454
465
|
|
|
455
|
-
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#
|
|
456
|
-
<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>* consCG = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1AndersenBase.html#aaec5125db063f8c1e7431ac7fe7a70f2">getConstraintGraph</a>();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfCopys = 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGeps = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// collect copy and gep edges</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">for</span>(ConstraintEdge::ConstraintEdgeSetTy::iterator it = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">getDirectCGEdges</a>().begin(),</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  eit = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">getDirectCGEdges</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span>(SVFUtil::isa<CopyCGEdge>(*it))</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  numOfCopys++;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GepCGEdge>(*it))</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  numOfGeps++;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"what else!!"</span>);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalNodeNumber = 0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cgNodeNumber = 0;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objNodeNumber = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrtotalIn = 0;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrmaxIn = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrmaxOut = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copytotalIn = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copymaxIn = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copymaxOut = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadtotalIn = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadmaxIn = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadmaxOut = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storetotalIn = 0;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storemaxIn = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storemaxOut = 0;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">for</span> (ConstraintGraph::ConstraintNodeIDToNodeMapTy::iterator nodeIt = consCG-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), nodeEit = consCG-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  nodeIt != nodeEit; nodeIt++)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  totalNodeNumber++;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">if</span>(nodeIt->second->getInEdges().empty() && nodeIt->second->getOutEdges().empty())</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  cgNodeNumber++;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ObjVar>(<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(nodeIt->first)))</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  objNodeNumber++;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nCopyIn = nodeIt->second->getDirectInEdges().size();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">if</span>(nCopyIn > copymaxIn)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  copymaxIn = nCopyIn;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  copytotalIn +=nCopyIn;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nCopyOut = nodeIt->second->getDirectOutEdges().size();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">if</span>(nCopyOut > copymaxOut)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  copymaxOut = nCopyOut;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nLoadIn = nodeIt->second->getLoadInEdges().size();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">if</span>(nLoadIn > loadmaxIn)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  loadmaxIn = nLoadIn;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  loadtotalIn +=nLoadIn;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nLoadOut = nodeIt->second->getLoadOutEdges().size();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">if</span>(nLoadOut > loadmaxOut)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  loadmaxOut = nLoadOut;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nStoreIn = nodeIt->second->getStoreInEdges().size();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span>(nStoreIn > storemaxIn)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  storemaxIn = nStoreIn;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  storetotalIn +=nStoreIn;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nStoreOut = nodeIt->second->getStoreOutEdges().size();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span>(nStoreOut > storemaxOut)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  storemaxOut = nStoreOut;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nAddrIn = nodeIt->second->getAddrInEdges().size();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">if</span>(nAddrIn > addrmaxIn)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  addrmaxIn = nAddrIn;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  addrtotalIn +=nAddrIn;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nAddrOut = nodeIt->second->getAddrOutEdges().size();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span>(nAddrOut > addrmaxOut)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  addrmaxOut = nAddrOut;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordtype">double</span> storeavgIn = (double)storetotalIn/cgNodeNumber;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">double</span> loadavgIn = (double)loadtotalIn/cgNodeNumber;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">double</span> copyavgIn = (double)copytotalIn/cgNodeNumber;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtype">double</span> addravgIn = (double)addrtotalIn/cgNodeNumber;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">double</span> avgIn = (double)(addrtotalIn + copytotalIn + loadtotalIn + storetotalIn)/cgNodeNumber;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfCGNode"</span>] = totalNodeNumber;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalValidNode"</span>] = cgNodeNumber;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalValidObjNode"</span>] = objNodeNumber;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfCGEdge"</span>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">getLoadCGEdges</a>().size() + consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a61ef90be6ccc01634e5440f22a0f746e">getStoreCGEdges</a>().size()</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  + numOfCopys + numOfGeps;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfAddrs"</span>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#adee52f15f5ff58dd455e419c2643f89b">getAddrCGEdges</a>().size();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfCopys"</span>] = numOfCopys;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfGeps"</span>] = numOfGeps;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfLoads"</span>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">getLoadCGEdges</a>().size();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStores"</span>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a61ef90be6ccc01634e5440f22a0f746e">getStoreCGEdges</a>().size();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInCopyEdge"</span>] = copymaxIn;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutCopyEdge"</span>] = copymaxOut;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInLoadEdge"</span>] = loadmaxIn;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutLoadEdge"</span>] = loadmaxOut;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInStoreEdge"</span>] = storemaxIn;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutStoreEdge"</span>] = storemaxOut;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgIn/OutStoreEdge"</span>] = storeavgIn;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInAddrEdge"</span>] = addrmaxIn;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutAddrEdge"</span>] = addrmaxOut;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutCopyEdge"</span>] = copyavgIn;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutLoadEdge"</span>] = loadavgIn;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutAddrEdge"</span>] = addravgIn;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutEdge"</span>] = avgIn;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(<span class="stringliteral">"Constraint Graph Stats"</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
466
|
+
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#l00100">100</a> of file <a class="el" href="AndersenStat_8cpp_source.html">AndersenStat.cpp</a>.</p>
|
|
467
|
+
<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>* consCG = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1AndersenBase.html#aaec5125db063f8c1e7431ac7fe7a70f2">getConstraintGraph</a>();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfCopys = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGeps = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// collect copy and gep edges</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">for</span>(ConstraintEdge::ConstraintEdgeSetTy::iterator it = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">getDirectCGEdges</a>().begin(),</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  eit = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">getDirectCGEdges</a>().end(); it!=eit; ++it)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span>(SVFUtil::isa<CopyCGEdge>(*it))</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  numOfCopys++;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<GepCGEdge>(*it))</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  numOfGeps++;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"what else!!"</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalNodeNumber = 0;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cgNodeNumber = 0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objNodeNumber = 0;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrtotalIn = 0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrmaxIn = 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> addrmaxOut = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copytotalIn = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copymaxIn = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> copymaxOut = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadtotalIn = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadmaxIn = 0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> loadmaxOut = 0;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storetotalIn = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storemaxIn = 0;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> storemaxOut = 0;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">for</span> (ConstraintGraph::ConstraintNodeIDToNodeMapTy::iterator nodeIt = consCG-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), nodeEit = consCG-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  nodeIt != nodeEit; nodeIt++)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  totalNodeNumber++;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span>(nodeIt->second->getInEdges().empty() && nodeIt->second->getOutEdges().empty())</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  cgNodeNumber++;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ObjVar>(<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(nodeIt->first)))</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  objNodeNumber++;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nCopyIn = nodeIt->second->getDirectInEdges().size();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">if</span>(nCopyIn > copymaxIn)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  copymaxIn = nCopyIn;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  copytotalIn +=nCopyIn;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nCopyOut = nodeIt->second->getDirectOutEdges().size();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">if</span>(nCopyOut > copymaxOut)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  copymaxOut = nCopyOut;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nLoadIn = nodeIt->second->getLoadInEdges().size();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">if</span>(nLoadIn > loadmaxIn)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  loadmaxIn = nLoadIn;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  loadtotalIn +=nLoadIn;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nLoadOut = nodeIt->second->getLoadOutEdges().size();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span>(nLoadOut > loadmaxOut)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  loadmaxOut = nLoadOut;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nStoreIn = nodeIt->second->getStoreInEdges().size();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">if</span>(nStoreIn > storemaxIn)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  storemaxIn = nStoreIn;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  storetotalIn +=nStoreIn;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nStoreOut = nodeIt->second->getStoreOutEdges().size();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">if</span>(nStoreOut > storemaxOut)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  storemaxOut = nStoreOut;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nAddrIn = nodeIt->second->getAddrInEdges().size();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">if</span>(nAddrIn > addrmaxIn)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  addrmaxIn = nAddrIn;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  addrtotalIn +=nAddrIn;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nAddrOut = nodeIt->second->getAddrOutEdges().size();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">if</span>(nAddrOut > addrmaxOut)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  addrmaxOut = nAddrOut;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">double</span> storeavgIn = (double)storetotalIn/cgNodeNumber;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">double</span> loadavgIn = (double)loadtotalIn/cgNodeNumber;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtype">double</span> copyavgIn = (double)copytotalIn/cgNodeNumber;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">double</span> addravgIn = (double)addrtotalIn/cgNodeNumber;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordtype">double</span> avgIn = (double)(addrtotalIn + copytotalIn + loadtotalIn + storetotalIn)/cgNodeNumber;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfCGNode"</span>] = totalNodeNumber;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalValidNode"</span>] = cgNodeNumber;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"TotalValidObjNode"</span>] = objNodeNumber;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfCGEdge"</span>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">getLoadCGEdges</a>().size() + consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a61ef90be6ccc01634e5440f22a0f746e">getStoreCGEdges</a>().size()</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  + numOfCopys + numOfGeps;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfAddrs"</span>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#adee52f15f5ff58dd455e419c2643f89b">getAddrCGEdges</a>().size();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfCopys"</span>] = numOfCopys;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfGeps"</span>] = numOfGeps;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfLoads"</span>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">getLoadCGEdges</a>().size();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStores"</span>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a61ef90be6ccc01634e5440f22a0f746e">getStoreCGEdges</a>().size();</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInCopyEdge"</span>] = copymaxIn;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutCopyEdge"</span>] = copymaxOut;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInLoadEdge"</span>] = loadmaxIn;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutLoadEdge"</span>] = loadmaxOut;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInStoreEdge"</span>] = storemaxIn;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutStoreEdge"</span>] = storemaxOut;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"AvgIn/OutStoreEdge"</span>] = storeavgIn;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxInAddrEdge"</span>] = addrmaxIn;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOutAddrEdge"</span>] = addrmaxOut;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutCopyEdge"</span>] = copyavgIn;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutLoadEdge"</span>] = loadavgIn;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutAddrEdge"</span>] = addravgIn;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<span class="stringliteral">"AvgIn/OutEdge"</span>] = avgIn;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">PTAStat::printStat</a>(<span class="stringliteral">"Constraint Graph Stats"</span>);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
457
468
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_afb849d8f3425ff36497d062ecefd2cc1"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#afb849d8f3425ff36497d062ecefd2cc1">SVF::ConstraintGraph::getLoadCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy & getLoadCGEdges()</div><div class="ttdoc">Get Load edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00204">ConsG.h:204</a></div></div>
|
|
458
469
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a8af8dd60987c4c99ea3727d9db87c187"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">SVF::AndersenStat::pta</a></div><div class="ttdeci">AndersenBase * pta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00052">WPAStat.h:52</a></div></div>
|
|
470
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_aca3e99ad83bddabee1dd565522691c78"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str="") override</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00273">PTAStat.cpp:273</a></div></div>
|
|
459
471
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html">SVF::ConstraintGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00044">ConsG.h:44</a></div></div>
|
|
460
472
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_ad7196d5f05192d9468ee0ca93b6b66ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#ad7196d5f05192d9468ee0ca93b6b66ee">SVF::ConstraintGraph::getDirectCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy & getDirectCGEdges()</div><div class="ttdoc">Get Copy/call/ret/gep edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00199">ConsG.h:199</a></div></div>
|
|
461
473
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_aaec5125db063f8c1e7431ac7fe7a70f2"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#aaec5125db063f8c1e7431ac7fe7a70f2">SVF::AndersenBase::getConstraintGraph</a></div><div class="ttdeci">ConstraintGraph * getConstraintGraph()</div><div class="ttdoc">Get constraint graph. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00098">Andersen.h:98</a></div></div>
|
|
462
474
|
<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#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
463
475
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
|
|
464
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a3724756ac0527ba3d199be32e38c6337"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">SVF::PTAStat::timeStatMap</a></div><div class="ttdeci">TIMEStatMap timeStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00149">PTAStat.h:149</a></div></div>
|
|
465
476
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
466
477
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html_adee52f15f5ff58dd455e419c2643f89b"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#adee52f15f5ff58dd455e419c2643f89b">SVF::ConstraintGraph::getAddrCGEdges</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy & getAddrCGEdges()</div><div class="ttdoc">Get SVFIR edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00194">ConsG.h:194</a></div></div>
|
|
478
|
+
<div class="ttc" id="classSVF_1_1SVFStat_html_a5383691a34426a1a997b5eed387f1831"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">SVF::SVFStat::timeStatMap</a></div><div class="ttdeci">TIMEStatMap timeStatMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00074">SVFStat.h:74</a></div></div>
|
|
467
479
|
<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
480
|
<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
|
-
<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#
|
|
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#l00292">PTAStat.cpp:292</a></div></div>
|
|
481
|
+
<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#l00123">PTAStat.h:123</a></div></div>
|
|
471
482
|
</div><!-- fragment -->
|
|
472
483
|
</div>
|
|
473
484
|
</div>
|
|
@@ -495,29 +506,31 @@ Additional Inherited Members</h2></td></tr>
|
|
|
495
506
|
</div><div class="memdoc">
|
|
496
507
|
<p>Start here </p>
|
|
497
508
|
|
|
498
|
-
<p>Reimplemented from <a class="el" href="classSVF_1_1PTAStat.html#
|
|
509
|
+
<p>Reimplemented from <a class="el" href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">SVF::PTAStat</a>.</p>
|
|
499
510
|
|
|
500
|
-
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#
|
|
501
|
-
<div class="fragment"><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  assert(SVFUtil::isa<AndersenBase>(<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>) && <span class="stringliteral">"not an andersen pta pass!! what else??"</span>);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="classSVF_1_1PTAStat.html#afe854f7416ea408104721a083ee9fee0">endClk</a>();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>* consCG = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1AndersenBase.html#aaec5125db063f8c1e7431ac7fe7a70f2">getConstraintGraph</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>  <span class="comment">// collect constraint graph cycles</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="classSVF_1_1AndersenStat.html#ae35507bebe6a1a9a64ab379473c85cad">collectCycleInfo</a>(consCG);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="comment">// stat null ptr number</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a898f091cd9aeed4b0cf5b338b8a3b1d3">statNullPtr</a>();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPointers = 0;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalTopLevPointers = 0;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPtsSize = 0;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalTopLevPtsSize = 0;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eiter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  iter != eiter; ++iter)</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node = iter->first;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(node);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = pts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  totalPointers++;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  totalPtsSize+=size;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node)))</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  totalTopLevPointers++;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  totalTopLevPtsSize+=size;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span>(size > <a class="code" href="classSVF_1_1AndersenStat.html#a85960b98981d0514a72b40306a7f08d3">_MaxPtsSize</a> )</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a85960b98981d0514a72b40306a7f08d3">_MaxPtsSize</a> = size;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="classSVF_1_1PTAStat.html#acfed70588cf921694db35990ec3c7497">PTAStat::performStat</a>();</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>  <a class="code" href="classSVF_1_1AndersenStat.html#a5ad75166a80052f9e6fdd14ff7c8b948">constraintGraphStat</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>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a25001a6d794d91056f37d954d9660910">TotalAnalysisTime</a>] = (<a class="code" href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">endTime</a> - <a class="code" href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">startTime</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad4c1cf3750341f73987c37745f3bd2aa">SCCDetectionTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a6b7d0e57f741c446d0bf178939960143">Andersen::timeOfSCCDetection</a>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a8c4101e697057269def501d14a987287">SCCMergeTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a02c5a50b214d36921e1404784e76704d">Andersen::timeOfSCCMerges</a>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1AndersenStat.html#a3f5739454b1f4e03b4388a4ba5730e15">CollapseTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#ad40b196c2c699bd115529b806d20de25">Andersen::timeOfCollapse</a>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#aeb6a52c31ecd004670e85f24b01d75d6">ProcessLoadStoreTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf">Andersen::timeOfProcessLoadStore</a>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a95a0a7861731072baeaf75354531875f">ProcessCopyGepTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0">Andersen::timeOfProcessCopyGep</a>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a8aedfeb35f76e6d33135637156468894">UpdateCallGraphTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a2afb49f513c9534fd051117b59dc056b">Andersen::timeOfUpdateCallGraph</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">TotalNumOfPointers</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a0212f3fe2f37363e8060f292c8cf7668">getValueNodeNum</a>() + pag-><a class="code" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">getFieldValNodeNum</a>();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">TotalNumOfObjects</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a82528aff779ccf8f723f57507dd2d991">getObjectNodeNum</a>() + pag-><a class="code" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">getFieldObjNodeNum</a>();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a0de03cdb382b353c6c1495c0f80cfe19">NumOfProcessedAddrs</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a4acad18a6eb585ba9e3d2276dd591067">Andersen::numOfProcessedAddr</a>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad30b36fb1884d1ef0b01c3b36a245211">NumOfProcessedCopys</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a04acd871bd1b98cd9e83e395334ac130">Andersen::numOfProcessedCopy</a>;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#aaa9d98f868c0724cb57c6934e783d1e5">NumOfProcessedGeps</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#aa1246b392aeae1fd10c8a9ebedcc2dd9">Andersen::numOfProcessedGep</a>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a17531fa1df42df0b19191d61853380d9">NumOfProcessedLoads</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a69aae96fc1c99bf108075e5061f50f9e">Andersen::numOfProcessedLoad</a>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a5b9bc0e9dac6ac97199476f6b7ea1edf">NumOfProcessedStores</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a2b763519509ce21cf40893c01f8357b6">Andersen::numOfProcessedStore</a>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a07a1db62ddba50bda787b2985ef8d135">NumOfSfr</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a25b00d9ca71cbdd27530fc5d0dc84ee5">Andersen::numOfSfrs</a>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1745e5c3c026a130a70954da9c0074b1">NumOfFieldExpand</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a9f453ec1b4236b8194ae590981217259">Andersen::numOfFieldExpand</a>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a218748b401bdd3d5eebd45eea0026b12">NumOfPointers</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a0212f3fe2f37363e8060f292c8cf7668">getValueNodeNum</a>();</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a5c09f41916e40d784a63e301584511f9">NumOfMemObjects</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a82528aff779ccf8f723f57507dd2d991">getObjectNodeNum</a>();</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a164249b9d35606387e628529c643d119">NumOfGepFieldPointers</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">getFieldValNodeNum</a>();</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a16f9bdb5387471d0bd825c4a9cbcb22e">NumOfGepFieldObjects</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">getFieldObjNodeNum</a>();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#adb0edbe88a74e5e89921bcfafa4759c6">AveragePointsToSetSize</a>] = (double)totalPtsSize/totalPointers;;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1649c9f893c5b9ec2d57a399bc050030">AverageTopLevPointsToSetSize</a>] = (double)totalTopLevPtsSize/totalTopLevPointers;;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#af2b45aab2eee96a1cabba3025e4375a2">MaxPointsToSetSize</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a85960b98981d0514a72b40306a7f08d3">_MaxPtsSize</a>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae95fb0771a71ead27da79a45cac47a36">NumOfIterations</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">numOfIteration</a>;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">NumOfIndirectCallSites</a>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a48a71f212e368769218a6f332822c976">getIndirectCallsites</a>().size();</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad51d2bd924f049e440b3d0dd0d423524">NumOfIndirectEdgeSolved</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>();</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad1731b88c24bb79728f62cd3e9c55699">NumOfSCCDetection</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a0d7298cbf83568f24fd2bd1926a32968">Andersen::numOfSCCDetection</a>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac518843a4148ecc45027ccc19a690c05">NumOfCycles</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a6e58c88a4118d368955dee5bbb0ccd21">_NumOfCycles</a>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#aefcc3638fac7034ab3542be8eb01ab58">NumOfPWCCycles</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#afbd6b36ac1b0addb902fe8eb5643df83">_NumOfPWCCycles</a>;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#aea3e95097b3b9d326bef0d36f17e51a5">NumOfNodesInCycles</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#aa2e3a589d376de12a1cbfb0d1ebcacb9">_NumOfNodesInCycles</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ab754f7768ffcd6f232b8cdf0fef6fc4e">MaxNumOfNodesInSCC</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#ac16491cbf4bcd22dc1a8acd25db20e10">_MaxNumOfNodesInSCC</a>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1211e1c7f16b715f32ecdef83f39a8c6">NumOfNullPointer</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a>;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToConstPtr"</span>] = <a class="code" href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">_NumOfConstantPtr</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToBlkPtr"</span>] = <a class="code" href="classSVF_1_1AndersenStat.html#a27d4e2bf145226f3c2b4d46fee2311e7">_NumOfBlackholePtr</a>;</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>  <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(<span class="stringliteral">"Andersen Pointer Analysis Stats"</span>);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
502
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_aea3e95097b3b9d326bef0d36f17e51a5"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aea3e95097b3b9d326bef0d36f17e51a5">SVF::PTAStat::NumOfNodesInCycles</a></div><div class="ttdeci">static const char * NumOfNodesInCycles</div><div class="ttdoc">Number of nodes in cycles detected. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
511
|
+
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#l00266">266</a> of file <a class="el" href="AndersenStat_8cpp_source.html">AndersenStat.cpp</a>.</p>
|
|
512
|
+
<div class="fragment"><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  assert(SVFUtil::isa<AndersenBase>(<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>) && <span class="stringliteral">"not an andersen pta pass!! what else??"</span>);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1SVFStat.html#a1b7f1e3381de87f75f06cddb9c6c1ec1">endClk</a>();</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>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="classSVF_1_1ConstraintGraph.html">ConstraintGraph</a>* consCG = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1AndersenBase.html#aaec5125db063f8c1e7431ac7fe7a70f2">getConstraintGraph</a>();</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="comment">// collect constraint graph cycles</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="classSVF_1_1AndersenStat.html#ae35507bebe6a1a9a64ab379473c85cad">collectCycleInfo</a>(consCG);</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>  <span class="comment">// stat null ptr number</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a898f091cd9aeed4b0cf5b338b8a3b1d3">statNullPtr</a>();</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>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPointers = 0;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalTopLevPointers = 0;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPtsSize = 0;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalTopLevPtsSize = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eiter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  iter != eiter; ++iter)</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node = iter->first;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(node);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = pts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  totalPointers++;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  totalPtsSize+=size;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(node)))</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  totalTopLevPointers++;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  totalTopLevPtsSize+=size;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span>(size > <a class="code" href="classSVF_1_1AndersenStat.html#a85960b98981d0514a72b40306a7f08d3">_MaxPtsSize</a> )</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a85960b98981d0514a72b40306a7f08d3">_MaxPtsSize</a> = size;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">PTAStat::performStat</a>();</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a5ad75166a80052f9e6fdd14ff7c8b948">constraintGraphStat</a>();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a25001a6d794d91056f37d954d9660910">TotalAnalysisTime</a>] = (<a class="code" href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">endTime</a> - <a class="code" href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">startTime</a>)/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad4c1cf3750341f73987c37745f3bd2aa">SCCDetectionTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a6b7d0e57f741c446d0bf178939960143">Andersen::timeOfSCCDetection</a>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a8c4101e697057269def501d14a987287">SCCMergeTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a02c5a50b214d36921e1404784e76704d">Andersen::timeOfSCCMerges</a>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1AndersenStat.html#a3f5739454b1f4e03b4388a4ba5730e15">CollapseTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#ad40b196c2c699bd115529b806d20de25">Andersen::timeOfCollapse</a>;</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="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#aeb6a52c31ecd004670e85f24b01d75d6">ProcessLoadStoreTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf">Andersen::timeOfProcessLoadStore</a>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a95a0a7861731072baeaf75354531875f">ProcessCopyGepTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0">Andersen::timeOfProcessCopyGep</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a8aedfeb35f76e6d33135637156468894">UpdateCallGraphTime</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a2afb49f513c9534fd051117b59dc056b">Andersen::timeOfUpdateCallGraph</a>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">TotalNumOfPointers</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a0212f3fe2f37363e8060f292c8cf7668">getValueNodeNum</a>() + pag-><a class="code" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">getFieldValNodeNum</a>();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">TotalNumOfObjects</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a82528aff779ccf8f723f57507dd2d991">getObjectNodeNum</a>() + pag-><a class="code" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">getFieldObjNodeNum</a>();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a0de03cdb382b353c6c1495c0f80cfe19">NumOfProcessedAddrs</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a4acad18a6eb585ba9e3d2276dd591067">Andersen::numOfProcessedAddr</a>;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad30b36fb1884d1ef0b01c3b36a245211">NumOfProcessedCopys</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a04acd871bd1b98cd9e83e395334ac130">Andersen::numOfProcessedCopy</a>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#aaa9d98f868c0724cb57c6934e783d1e5">NumOfProcessedGeps</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#aa1246b392aeae1fd10c8a9ebedcc2dd9">Andersen::numOfProcessedGep</a>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a17531fa1df42df0b19191d61853380d9">NumOfProcessedLoads</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a69aae96fc1c99bf108075e5061f50f9e">Andersen::numOfProcessedLoad</a>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a5b9bc0e9dac6ac97199476f6b7ea1edf">NumOfProcessedStores</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a2b763519509ce21cf40893c01f8357b6">Andersen::numOfProcessedStore</a>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a07a1db62ddba50bda787b2985ef8d135">NumOfSfr</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a25b00d9ca71cbdd27530fc5d0dc84ee5">Andersen::numOfSfrs</a>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1745e5c3c026a130a70954da9c0074b1">NumOfFieldExpand</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a9f453ec1b4236b8194ae590981217259">Andersen::numOfFieldExpand</a>;</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_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a218748b401bdd3d5eebd45eea0026b12">NumOfPointers</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a0212f3fe2f37363e8060f292c8cf7668">getValueNodeNum</a>();</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a5c09f41916e40d784a63e301584511f9">NumOfMemObjects</a>] = pag-><a class="code" href="classSVF_1_1IRGraph.html#a82528aff779ccf8f723f57507dd2d991">getObjectNodeNum</a>();</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a164249b9d35606387e628529c643d119">NumOfGepFieldPointers</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">getFieldValNodeNum</a>();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a16f9bdb5387471d0bd825c4a9cbcb22e">NumOfGepFieldObjects</a>] = pag-><a class="code" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">getFieldObjNodeNum</a>();</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>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#adb0edbe88a74e5e89921bcfafa4759c6">AveragePointsToSetSize</a>] = (double)totalPtsSize/totalPointers;;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">timeStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1649c9f893c5b9ec2d57a399bc050030">AverageTopLevPointsToSetSize</a>] = (double)totalTopLevPtsSize/totalTopLevPointers;;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#af2b45aab2eee96a1cabba3025e4375a2">MaxPointsToSetSize</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a85960b98981d0514a72b40306a7f08d3">_MaxPtsSize</a>;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae95fb0771a71ead27da79a45cac47a36">NumOfIterations</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">numOfIteration</a>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">NumOfIndirectCallSites</a>] = consCG-><a class="code" href="classSVF_1_1ConstraintGraph.html#a48a71f212e368769218a6f332822c976">getIndirectCallsites</a>().size();</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad51d2bd924f049e440b3d0dd0d423524">NumOfIndirectEdgeSolved</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>();</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>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad1731b88c24bb79728f62cd3e9c55699">NumOfSCCDetection</a>] = <a class="code" href="classSVF_1_1AndersenBase.html#a0d7298cbf83568f24fd2bd1926a32968">Andersen::numOfSCCDetection</a>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac518843a4148ecc45027ccc19a690c05">NumOfCycles</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a6e58c88a4118d368955dee5bbb0ccd21">_NumOfCycles</a>;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#aefcc3638fac7034ab3542be8eb01ab58">NumOfPWCCycles</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#afbd6b36ac1b0addb902fe8eb5643df83">_NumOfPWCCycles</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#aea3e95097b3b9d326bef0d36f17e51a5">NumOfNodesInCycles</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#aa2e3a589d376de12a1cbfb0d1ebcacb9">_NumOfNodesInCycles</a>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ab754f7768ffcd6f232b8cdf0fef6fc4e">MaxNumOfNodesInSCC</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#ac16491cbf4bcd22dc1a8acd25db20e10">_MaxNumOfNodesInSCC</a>;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1211e1c7f16b715f32ecdef83f39a8c6">NumOfNullPointer</a>] = <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToConstPtr"</span>] = <a class="code" href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">_NumOfConstantPtr</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToBlkPtr"</span>] = <a class="code" href="classSVF_1_1AndersenStat.html#a27d4e2bf145226f3c2b4d46fee2311e7">_NumOfBlackholePtr</a>;</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>  <a class="code" href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">PTAStat::printStat</a>(<span class="stringliteral">"Andersen Pointer Analysis Stats"</span>);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
513
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_aea3e95097b3b9d326bef0d36f17e51a5"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aea3e95097b3b9d326bef0d36f17e51a5">SVF::PTAStat::NumOfNodesInCycles</a></div><div class="ttdeci">static const char * NumOfNodesInCycles</div><div class="ttdoc">Number of nodes in cycles detected. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00115">PTAStat.h:115</a></div></div>
|
|
503
514
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_aae14de6fbca9280d8d0290326aa493f0"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#aae14de6fbca9280d8d0290326aa493f0">SVF::AndersenBase::timeOfProcessCopyGep</a></div><div class="ttdeci">static double timeOfProcessCopyGep</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00132">Andersen.h:132</a></div></div>
|
|
504
515
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a6e58c88a4118d368955dee5bbb0ccd21"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a6e58c88a4118d368955dee5bbb0ccd21">SVF::AndersenStat::_NumOfCycles</a></div><div class="ttdeci">static u32_t _NumOfCycles</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00058">WPAStat.h:58</a></div></div>
|
|
505
516
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a8af8dd60987c4c99ea3727d9db87c187"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">SVF::AndersenStat::pta</a></div><div class="ttdeci">AndersenBase * pta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00052">WPAStat.h:52</a></div></div>
|
|
506
|
-
<div class="ttc" id="
|
|
517
|
+
<div class="ttc" id="classSVF_1_1SVFStat_html_a1b7f1e3381de87f75f06cddb9c6c1ec1"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a1b7f1e3381de87f75f06cddb9c6c1ec1">SVF::SVFStat::endClk</a></div><div class="ttdeci">virtual void endClk()</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00063">SVFStat.h:63</a></div></div>
|
|
518
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_aeb6a52c31ecd004670e85f24b01d75d6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aeb6a52c31ecd004670e85f24b01d75d6">SVF::PTAStat::ProcessLoadStoreTime</a></div><div class="ttdeci">static const char * ProcessLoadStoreTime</div><div class="ttdoc">time of processing loads and stores </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00055">PTAStat.h:55</a></div></div>
|
|
507
519
|
<div class="ttc" id="classSVF_1_1WPASolver_html_ab3369caa278da03e6e6697a839985cd6"><div class="ttname"><a href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">SVF::WPASolver::numOfIteration</a></div><div class="ttdeci">u32_t numOfIteration</div><div class="ttdoc">num of iterations during constaint solving </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00204">WPASolver.h:204</a></div></div>
|
|
508
520
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_ac16491cbf4bcd22dc1a8acd25db20e10"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#ac16491cbf4bcd22dc1a8acd25db20e10">SVF::AndersenStat::_MaxNumOfNodesInSCC</a></div><div class="ttdeci">static u32_t _MaxNumOfNodesInSCC</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00061">WPAStat.h:61</a></div></div>
|
|
509
521
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_ab8f8152b5e6127f2d9bdcbd22083da67"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">SVF::AndersenStat::_NumOfConstantPtr</a></div><div class="ttdeci">u32_t _NumOfConstantPtr</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00063">WPAStat.h:63</a></div></div>
|
|
510
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a16f9bdb5387471d0bd825c4a9cbcb22e"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a16f9bdb5387471d0bd825c4a9cbcb22e">SVF::PTAStat::NumOfGepFieldObjects</a></div><div class="ttdeci">static const char * NumOfGepFieldObjects</div><div class="ttdoc">SVFIR gep object node (field obj, dynamically created dummy node) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
511
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a1745e5c3c026a130a70954da9c0074b1"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1745e5c3c026a130a70954da9c0074b1">SVF::PTAStat::NumOfFieldExpand</a></div><div class="ttdeci">static const char * NumOfFieldExpand</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
512
|
-
<div class="ttc" id="
|
|
522
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a16f9bdb5387471d0bd825c4a9cbcb22e"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a16f9bdb5387471d0bd825c4a9cbcb22e">SVF::PTAStat::NumOfGepFieldObjects</a></div><div class="ttdeci">static const char * NumOfGepFieldObjects</div><div class="ttdoc">SVFIR gep object node (field obj, dynamically created dummy node) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00101">PTAStat.h:101</a></div></div>
|
|
523
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a1745e5c3c026a130a70954da9c0074b1"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1745e5c3c026a130a70954da9c0074b1">SVF::PTAStat::NumOfFieldExpand</a></div><div class="ttdeci">static const char * NumOfFieldExpand</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00080">PTAStat.h:80</a></div></div>
|
|
524
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_aca3e99ad83bddabee1dd565522691c78"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aca3e99ad83bddabee1dd565522691c78">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str="") override</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00273">PTAStat.cpp:273</a></div></div>
|
|
525
|
+
<div class="ttc" id="classSVF_1_1AndersenStat_html_a898f091cd9aeed4b0cf5b338b8a3b1d3"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a898f091cd9aeed4b0cf5b338b8a3b1d3">SVF::AndersenStat::statNullPtr</a></div><div class="ttdeci">void statNullPtr()</div><div class="ttdef"><b>Definition:</b> <a href="AndersenStat_8cpp_source.html#l00212">AndersenStat.cpp:212</a></div></div>
|
|
513
526
|
<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>
|
|
514
527
|
<div class="ttc" id="classSVF_1_1ConstraintGraph_html"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html">SVF::ConstraintGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00044">ConsG.h:44</a></div></div>
|
|
515
528
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a85960b98981d0514a72b40306a7f08d3"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a85960b98981d0514a72b40306a7f08d3">SVF::AndersenStat::_MaxPtsSize</a></div><div class="ttdeci">static u32_t _MaxPtsSize</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00057">WPAStat.h:57</a></div></div>
|
|
516
|
-
<div class="ttc" id="classSVF_1_1AndersenStat_html_ae35507bebe6a1a9a64ab379473c85cad"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#ae35507bebe6a1a9a64ab379473c85cad">SVF::AndersenStat::collectCycleInfo</a></div><div class="ttdeci">void collectCycleInfo(ConstraintGraph *consCG)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenStat_8cpp_source.html#
|
|
529
|
+
<div class="ttc" id="classSVF_1_1AndersenStat_html_ae35507bebe6a1a9a64ab379473c85cad"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#ae35507bebe6a1a9a64ab379473c85cad">SVF::AndersenStat::collectCycleInfo</a></div><div class="ttdeci">void collectCycleInfo(ConstraintGraph *consCG)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenStat_8cpp_source.html#l00060">AndersenStat.cpp:60</a></div></div>
|
|
517
530
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a69aae96fc1c99bf108075e5061f50f9e"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a69aae96fc1c99bf108075e5061f50f9e">SVF::AndersenBase::numOfProcessedLoad</a></div><div class="ttdeci">static u32_t numOfProcessedLoad</div><div class="ttdoc">Number of processed Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00121">Andersen.h:121</a></div></div>
|
|
518
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a5c09f41916e40d784a63e301584511f9"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a5c09f41916e40d784a63e301584511f9">SVF::PTAStat::NumOfMemObjects</a></div><div class="ttdeci">static const char * NumOfMemObjects</div><div class="ttdoc">SVFIR object node, each of them maps to a llvm value. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
531
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a5c09f41916e40d784a63e301584511f9"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a5c09f41916e40d784a63e301584511f9">SVF::PTAStat::NumOfMemObjects</a></div><div class="ttdeci">static const char * NumOfMemObjects</div><div class="ttdoc">SVFIR object node, each of them maps to a llvm value. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00100">PTAStat.h:100</a></div></div>
|
|
519
532
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_aaec5125db063f8c1e7431ac7fe7a70f2"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#aaec5125db063f8c1e7431ac7fe7a70f2">SVF::AndersenBase::getConstraintGraph</a></div><div class="ttdeci">ConstraintGraph * getConstraintGraph()</div><div class="ttdoc">Get constraint graph. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00098">Andersen.h:98</a></div></div>
|
|
520
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_ac518843a4148ecc45027ccc19a690c05"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac518843a4148ecc45027ccc19a690c05">SVF::PTAStat::NumOfCycles</a></div><div class="ttdeci">static const char * NumOfCycles</div><div class="ttdoc">Number of scc cycles detected. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
533
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_ac518843a4148ecc45027ccc19a690c05"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac518843a4148ecc45027ccc19a690c05">SVF::PTAStat::NumOfCycles</a></div><div class="ttdeci">static const char * NumOfCycles</div><div class="ttdoc">Number of scc cycles detected. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00113">PTAStat.h:113</a></div></div>
|
|
521
534
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a3f5739454b1f4e03b4388a4ba5730e15"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a3f5739454b1f4e03b4388a4ba5730e15">SVF::AndersenStat::CollapseTime</a></div><div class="ttdeci">static const char * CollapseTime</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00055">WPAStat.h:55</a></div></div>
|
|
522
535
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a04acd871bd1b98cd9e83e395334ac130"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a04acd871bd1b98cd9e83e395334ac130">SVF::AndersenBase::numOfProcessedCopy</a></div><div class="ttdeci">static u32_t numOfProcessedCopy</div><div class="ttdoc">Number of processed Addr edge. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00119">Andersen.h:119</a></div></div>
|
|
523
536
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a02c5a50b214d36921e1404784e76704d"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a02c5a50b214d36921e1404784e76704d">SVF::AndersenBase::timeOfSCCMerges</a></div><div class="ttdeci">static double timeOfSCCMerges</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00128">Andersen.h:128</a></div></div>
|
|
@@ -527,63 +540,61 @@ Additional Inherited Members</h2></td></tr>
|
|
|
527
540
|
<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#l00085">SVFBasicTypes.h:85</a></div></div>
|
|
528
541
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a25b00d9ca71cbdd27530fc5d0dc84ee5"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a25b00d9ca71cbdd27530fc5d0dc84ee5">SVF::AndersenBase::numOfSfrs</a></div><div class="ttdeci">static u32_t numOfSfrs</div><div class="ttdoc">Number of processed Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00123">Andersen.h:123</a></div></div>
|
|
529
542
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a2b763519509ce21cf40893c01f8357b6"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a2b763519509ce21cf40893c01f8357b6">SVF::AndersenBase::numOfProcessedStore</a></div><div class="ttdeci">static u32_t numOfProcessedStore</div><div class="ttdoc">Number of processed Load edge. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00122">Andersen.h:122</a></div></div>
|
|
530
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a17531fa1df42df0b19191d61853380d9"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a17531fa1df42df0b19191d61853380d9">SVF::PTAStat::NumOfProcessedLoads</a></div><div class="ttdeci">static const char * NumOfProcessedLoads</div><div class="ttdoc">SVFIR processed load edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
531
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a267ba4aac2e7ceb65f008f9486d3d9f7"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">SVF::PTAStat::endTime</a></div><div class="ttdeci">double endTime</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
543
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a17531fa1df42df0b19191d61853380d9"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a17531fa1df42df0b19191d61853380d9">SVF::PTAStat::NumOfProcessedLoads</a></div><div class="ttdeci">static const char * NumOfProcessedLoads</div><div class="ttdoc">SVFIR processed load edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00074">PTAStat.h:74</a></div></div>
|
|
544
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a267ba4aac2e7ceb65f008f9486d3d9f7"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a267ba4aac2e7ceb65f008f9486d3d9f7">SVF::PTAStat::endTime</a></div><div class="ttdeci">double endTime</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00127">PTAStat.h:127</a></div></div>
|
|
532
545
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a3bbaafd80dfcae6ccc82c3d8b9d303ea"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">SVF::SVFIR::getFieldObjNodeNum</a></div><div class="ttdeci">u32_t getFieldObjNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00288">SVFIR.h:288</a></div></div>
|
|
533
546
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
|
|
534
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a25001a6d794d91056f37d954d9660910"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a25001a6d794d91056f37d954d9660910">SVF::PTAStat::TotalAnalysisTime</a></div><div class="ttdeci">static const char * TotalAnalysisTime</div><div class="ttdoc">Total analysis time. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
535
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_ae95fb0771a71ead27da79a45cac47a36"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ae95fb0771a71ead27da79a45cac47a36">SVF::PTAStat::NumOfIterations</a></div><div class="ttdeci">static const char * NumOfIterations</div><div class="ttdoc">Number of iterations during resolution. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
547
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a25001a6d794d91056f37d954d9660910"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a25001a6d794d91056f37d954d9660910">SVF::PTAStat::TotalAnalysisTime</a></div><div class="ttdeci">static const char * TotalAnalysisTime</div><div class="ttdoc">Total analysis time. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00051">PTAStat.h:51</a></div></div>
|
|
548
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_ae95fb0771a71ead27da79a45cac47a36"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ae95fb0771a71ead27da79a45cac47a36">SVF::PTAStat::NumOfIterations</a></div><div class="ttdeci">static const char * NumOfIterations</div><div class="ttdoc">Number of iterations during resolution. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00107">PTAStat.h:107</a></div></div>
|
|
536
549
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph< SVFVar, SVFStmt >::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00342">GenericGraph.h:342</a></div></div>
|
|
537
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a95a0a7861731072baeaf75354531875f"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a95a0a7861731072baeaf75354531875f">SVF::PTAStat::ProcessCopyGepTime</a></div><div class="ttdeci">static const char * ProcessCopyGepTime</div><div class="ttdoc">time of processing copys and geps </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
538
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a618707c52da086e04f5e7bff31794cf3"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">SVF::PTAStat::NumOfIndirectCallSites</a></div><div class="ttdeci">static const char * NumOfIndirectCallSites</div><div class="ttdoc">Number of indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
550
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a95a0a7861731072baeaf75354531875f"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a95a0a7861731072baeaf75354531875f">SVF::PTAStat::ProcessCopyGepTime</a></div><div class="ttdeci">static const char * ProcessCopyGepTime</div><div class="ttdoc">time of processing copys and geps </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00056">PTAStat.h:56</a></div></div>
|
|
551
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a618707c52da086e04f5e7bff31794cf3"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">SVF::PTAStat::NumOfIndirectCallSites</a></div><div class="ttdeci">static const char * NumOfIndirectCallSites</div><div class="ttdoc">Number of indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00109">PTAStat.h:109</a></div></div>
|
|
539
552
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_aee289e298e421448caaa604b7eb34fcb"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">SVF::BVDataPTAImpl::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00099">PointerAnalysisImpl.h:99</a></div></div>
|
|
540
553
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a8a24e0bf9f95fc1519d4013e0e82dec9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">SVF::SVFIR::getFieldValNodeNum</a></div><div class="ttdeci">u32_t getFieldValNodeNum() const</div><div class="ttdoc">Node and edge statistics. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00284">SVFIR.h:284</a></div></div>
|
|
541
554
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a879783ba6629e500af9aa7dfcda2563d"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">SVF::PointsTo::count</a></div><div class="ttdeci">u32_t count(void) const</div><div class="ttdoc">Returns number of elements. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00107">PointsTo.cpp:107</a></div></div>
|
|
542
555
|
<div class="ttc" id="classSVF_1_1SVFIR_html_a5c3b194ebada47baaccf0e9f3ab1a139"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">SVF::SVFIR::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00705">SVFIR.cpp:705</a></div></div>
|
|
543
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a3724756ac0527ba3d199be32e38c6337"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">SVF::PTAStat::timeStatMap</a></div><div class="ttdeci">TIMEStatMap timeStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00149">PTAStat.h:149</a></div></div>
|
|
544
556
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a0d7298cbf83568f24fd2bd1926a32968"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a0d7298cbf83568f24fd2bd1926a32968">SVF::AndersenBase::numOfSCCDetection</a></div><div class="ttdeci">static u32_t numOfSCCDetection</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00126">Andersen.h:126</a></div></div>
|
|
545
557
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
546
558
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a9f453ec1b4236b8194ae590981217259"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a9f453ec1b4236b8194ae590981217259">SVF::AndersenBase::numOfFieldExpand</a></div><div class="ttdeci">static u32_t numOfFieldExpand</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00124">Andersen.h:124</a></div></div>
|
|
547
559
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a6b7d0e57f741c446d0bf178939960143"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a6b7d0e57f741c446d0bf178939960143">SVF::AndersenBase::timeOfSCCDetection</a></div><div class="ttdeci">static double timeOfSCCDetection</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00127">Andersen.h:127</a></div></div>
|
|
548
560
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a2afb49f513c9534fd051117b59dc056b"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a2afb49f513c9534fd051117b59dc056b">SVF::AndersenBase::timeOfUpdateCallGraph</a></div><div class="ttdeci">static double timeOfUpdateCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00134">Andersen.h:134</a></div></div>
|
|
549
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_af2b45aab2eee96a1cabba3025e4375a2"><div class="ttname"><a href="classSVF_1_1PTAStat.html#af2b45aab2eee96a1cabba3025e4375a2">SVF::PTAStat::MaxPointsToSetSize</a></div><div class="ttdeci">static const char * MaxPointsToSetSize</div><div class="ttdoc">Max points-to size. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
550
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a164249b9d35606387e628529c643d119"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a164249b9d35606387e628529c643d119">SVF::PTAStat::NumOfGepFieldPointers</a></div><div class="ttdeci">static const char * NumOfGepFieldPointers</div><div class="ttdoc">SVFIR gep value node (field value, dynamically created dummy node) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
551
|
-
<div class="ttc" id="
|
|
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#
|
|
561
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_af2b45aab2eee96a1cabba3025e4375a2"><div class="ttname"><a href="classSVF_1_1PTAStat.html#af2b45aab2eee96a1cabba3025e4375a2">SVF::PTAStat::MaxPointsToSetSize</a></div><div class="ttdeci">static const char * MaxPointsToSetSize</div><div class="ttdoc">Max points-to size. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00105">PTAStat.h:105</a></div></div>
|
|
562
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a164249b9d35606387e628529c643d119"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a164249b9d35606387e628529c643d119">SVF::PTAStat::NumOfGepFieldPointers</a></div><div class="ttdeci">static const char * NumOfGepFieldPointers</div><div class="ttdoc">SVFIR gep value node (field value, dynamically created dummy node) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00098">PTAStat.h:98</a></div></div>
|
|
563
|
+
<div class="ttc" id="classSVF_1_1SVFStat_html_a5383691a34426a1a997b5eed387f1831"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a5383691a34426a1a997b5eed387f1831">SVF::SVFStat::timeStatMap</a></div><div class="ttdeci">TIMEStatMap timeStatMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00074">SVFStat.h:74</a></div></div>
|
|
564
|
+
<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#l00114">PTAStat.h:114</a></div></div>
|
|
553
565
|
<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#l00133">PTAStat.cpp:133</a></div></div>
|
|
555
566
|
<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
567
|
<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
|
-
<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#
|
|
558
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_ad30b36fb1884d1ef0b01c3b36a245211"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad30b36fb1884d1ef0b01c3b36a245211">SVF::PTAStat::NumOfProcessedCopys</a></div><div class="ttdeci">static const char * NumOfProcessedCopys</div><div class="ttdoc">SVFIR processed copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
568
|
+
<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#l00116">PTAStat.h:116</a></div></div>
|
|
569
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_ad30b36fb1884d1ef0b01c3b36a245211"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad30b36fb1884d1ef0b01c3b36a245211">SVF::PTAStat::NumOfProcessedCopys</a></div><div class="ttdeci">static const char * NumOfProcessedCopys</div><div class="ttdoc">SVFIR processed copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00076">PTAStat.h:76</a></div></div>
|
|
559
570
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad2c8654a6672472f9bf17681aa9b60bb"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">SVF::PointerAnalysis::getNumOfResolvedIndCallEdge</a></div><div class="ttdeci">u32_t getNumOfResolvedIndCallEdge() const</div><div class="ttdoc">Return number of resolved indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00169">PointerAnalysis.h:169</a></div></div>
|
|
560
571
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_afbd6b36ac1b0addb902fe8eb5643df83"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#afbd6b36ac1b0addb902fe8eb5643df83">SVF::AndersenStat::_NumOfPWCCycles</a></div><div class="ttdeci">static u32_t _NumOfPWCCycles</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00059">WPAStat.h:59</a></div></div>
|
|
561
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_aaa9d98f868c0724cb57c6934e783d1e5"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aaa9d98f868c0724cb57c6934e783d1e5">SVF::PTAStat::NumOfProcessedGeps</a></div><div class="ttdeci">static const char * NumOfProcessedGeps</div><div class="ttdoc">SVFIR processed gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
562
|
-
<div class="ttc" id="
|
|
563
|
-
<div class="ttc" id="
|
|
564
|
-
<div class="ttc" id="
|
|
565
|
-
<div class="ttc" id="
|
|
566
|
-
<div class="ttc" id="
|
|
572
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_aaa9d98f868c0724cb57c6934e783d1e5"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aaa9d98f868c0724cb57c6934e783d1e5">SVF::PTAStat::NumOfProcessedGeps</a></div><div class="ttdeci">static const char * NumOfProcessedGeps</div><div class="ttdoc">SVFIR processed gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00077">PTAStat.h:77</a></div></div>
|
|
573
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_ad6de9d3f25c20705768000c987af0eb6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">SVF::PTAStat::performStat</a></div><div class="ttdeci">void performStat() override</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00114">PTAStat.cpp:114</a></div></div>
|
|
574
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a8aedfeb35f76e6d33135637156468894"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a8aedfeb35f76e6d33135637156468894">SVF::PTAStat::UpdateCallGraphTime</a></div><div class="ttdeci">static const char * UpdateCallGraphTime</div><div class="ttdoc">time of updating call graph </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00057">PTAStat.h:57</a></div></div>
|
|
575
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a1a4d418fd9e5413e7ffbbfe57f5e0560"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">SVF::PTAStat::TotalNumOfPointers</a></div><div class="ttdeci">static const char * TotalNumOfPointers</div><div class="ttdoc">Total SVFIR value node. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00059">PTAStat.h:59</a></div></div>
|
|
576
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a1649c9f893c5b9ec2d57a399bc050030"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1649c9f893c5b9ec2d57a399bc050030">SVF::PTAStat::AverageTopLevPointsToSetSize</a></div><div class="ttdeci">static const char * AverageTopLevPointsToSetSize</div><div class="ttdoc">Average points-to size of top-level variables. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00104">PTAStat.h:104</a></div></div>
|
|
577
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a59e0fe6fa506f1cf319b5acaf9d28be9"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a59e0fe6fa506f1cf319b5acaf9d28be9">SVF::PTAStat::startTime</a></div><div class="ttdeci">double startTime</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00126">PTAStat.h:126</a></div></div>
|
|
578
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a0de03cdb382b353c6c1495c0f80cfe19"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a0de03cdb382b353c6c1495c0f80cfe19">SVF::PTAStat::NumOfProcessedAddrs</a></div><div class="ttdeci">static const char * NumOfProcessedAddrs</div><div class="ttdoc">SVFIR processed addr edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00073">PTAStat.h:73</a></div></div>
|
|
567
579
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_ad40b196c2c699bd115529b806d20de25"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#ad40b196c2c699bd115529b806d20de25">SVF::AndersenBase::timeOfCollapse</a></div><div class="ttdeci">static double timeOfCollapse</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00129">Andersen.h:129</a></div></div>
|
|
568
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a218748b401bdd3d5eebd45eea0026b12"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a218748b401bdd3d5eebd45eea0026b12">SVF::PTAStat::NumOfPointers</a></div><div class="ttdeci">static const char * NumOfPointers</div><div class="ttdoc">SVFIR value node, each of them maps to a llvm value. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
569
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_acd9848f15aa359550e86c7b857df84ed"><div class="ttname"><a href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">SVF::PTAStat::TotalNumOfObjects</a></div><div class="ttdeci">static const char * TotalNumOfObjects</div><div class="ttdoc">Total SVFIR object node. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
570
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a1211e1c7f16b715f32ecdef83f39a8c6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1211e1c7f16b715f32ecdef83f39a8c6">SVF::PTAStat::NumOfNullPointer</a></div><div class="ttdeci">static const char * NumOfNullPointer</div><div class="ttdoc">Number of pointers points-to null. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
580
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a218748b401bdd3d5eebd45eea0026b12"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a218748b401bdd3d5eebd45eea0026b12">SVF::PTAStat::NumOfPointers</a></div><div class="ttdeci">static const char * NumOfPointers</div><div class="ttdoc">SVFIR value node, each of them maps to a llvm value. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00097">PTAStat.h:97</a></div></div>
|
|
581
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_acd9848f15aa359550e86c7b857df84ed"><div class="ttname"><a href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">SVF::PTAStat::TotalNumOfObjects</a></div><div class="ttdeci">static const char * TotalNumOfObjects</div><div class="ttdoc">Total SVFIR object node. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00060">PTAStat.h:60</a></div></div>
|
|
582
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a1211e1c7f16b715f32ecdef83f39a8c6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a1211e1c7f16b715f32ecdef83f39a8c6">SVF::PTAStat::NumOfNullPointer</a></div><div class="ttdeci">static const char * NumOfNullPointer</div><div class="ttdoc">Number of pointers points-to null. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00118">PTAStat.h:118</a></div></div>
|
|
571
583
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_aa1246b392aeae1fd10c8a9ebedcc2dd9"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#aa1246b392aeae1fd10c8a9ebedcc2dd9">SVF::AndersenBase::numOfProcessedGep</a></div><div class="ttdeci">static u32_t numOfProcessedGep</div><div class="ttdoc">Number of processed Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00120">Andersen.h:120</a></div></div>
|
|
572
584
|
<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>
|
|
573
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a5b9bc0e9dac6ac97199476f6b7ea1edf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a5b9bc0e9dac6ac97199476f6b7ea1edf">SVF::PTAStat::NumOfProcessedStores</a></div><div class="ttdeci">static const char * NumOfProcessedStores</div><div class="ttdoc">SVFIR processed store edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
585
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a5b9bc0e9dac6ac97199476f6b7ea1edf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a5b9bc0e9dac6ac97199476f6b7ea1edf">SVF::PTAStat::NumOfProcessedStores</a></div><div class="ttdeci">static const char * NumOfProcessedStores</div><div class="ttdoc">SVFIR processed store edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00075">PTAStat.h:75</a></div></div>
|
|
574
586
|
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
575
587
|
<div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
|
|
576
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_adb0edbe88a74e5e89921bcfafa4759c6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#adb0edbe88a74e5e89921bcfafa4759c6">SVF::PTAStat::AveragePointsToSetSize</a></div><div class="ttdeci">static const char * AveragePointsToSetSize</div><div class="ttdoc">Average points-to size of all variables. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
577
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_ad51d2bd924f049e440b3d0dd0d423524"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad51d2bd924f049e440b3d0dd0d423524">SVF::PTAStat::NumOfIndirectEdgeSolved</a></div><div class="ttdeci">static const char * NumOfIndirectEdgeSolved</div><div class="ttdoc">Number of indirect calledge resolved. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
588
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_adb0edbe88a74e5e89921bcfafa4759c6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#adb0edbe88a74e5e89921bcfafa4759c6">SVF::PTAStat::AveragePointsToSetSize</a></div><div class="ttdeci">static const char * AveragePointsToSetSize</div><div class="ttdoc">Average points-to size of all variables. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00103">PTAStat.h:103</a></div></div>
|
|
589
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_ad51d2bd924f049e440b3d0dd0d423524"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad51d2bd924f049e440b3d0dd0d423524">SVF::PTAStat::NumOfIndirectEdgeSolved</a></div><div class="ttdeci">static const char * NumOfIndirectEdgeSolved</div><div class="ttdoc">Number of indirect calledge resolved. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00110">PTAStat.h:110</a></div></div>
|
|
578
590
|
<div class="ttc" id="classSVF_1_1AndersenBase_html_a9fe738f1e11c80006d540f246a80bfdf"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a9fe738f1e11c80006d540f246a80bfdf">SVF::AndersenBase::timeOfProcessLoadStore</a></div><div class="ttdeci">static double timeOfProcessLoadStore</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00133">Andersen.h:133</a></div></div>
|
|
579
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_a07a1db62ddba50bda787b2985ef8d135"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a07a1db62ddba50bda787b2985ef8d135">SVF::PTAStat::NumOfSfr</a></div><div class="ttdeci">static const char * NumOfSfr</div><div class="ttdoc">num of field representatives </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
580
|
-
<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#
|
|
581
|
-
<div class="ttc" id="classSVF_1_1PTAStat_html_ad1731b88c24bb79728f62cd3e9c55699"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad1731b88c24bb79728f62cd3e9c55699">SVF::PTAStat::NumOfSCCDetection</a></div><div class="ttdeci">static const char * NumOfSCCDetection</div><div class="ttdoc">Number of scc detection performed. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#
|
|
591
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_a07a1db62ddba50bda787b2985ef8d135"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a07a1db62ddba50bda787b2985ef8d135">SVF::PTAStat::NumOfSfr</a></div><div class="ttdeci">static const char * NumOfSfr</div><div class="ttdoc">num of field representatives </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00079">PTAStat.h:79</a></div></div>
|
|
592
|
+
<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#l00123">PTAStat.h:123</a></div></div>
|
|
593
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_ad1731b88c24bb79728f62cd3e9c55699"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad1731b88c24bb79728f62cd3e9c55699">SVF::PTAStat::NumOfSCCDetection</a></div><div class="ttdeci">static const char * NumOfSCCDetection</div><div class="ttdoc">Number of scc detection performed. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00112">PTAStat.h:112</a></div></div>
|
|
582
594
|
<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
|
-
<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#
|
|
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#
|
|
585
|
-
<div class="ttc" id="
|
|
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>
|
|
595
|
+
<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#l00052">PTAStat.h:52</a></div></div>
|
|
596
|
+
<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#l00100">AndersenStat.cpp:100</a></div></div>
|
|
597
|
+
<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#l00053">PTAStat.h:53</a></div></div>
|
|
587
598
|
<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
599
|
</div><!-- fragment -->
|
|
589
600
|
</div>
|
|
@@ -605,8 +616,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
605
616
|
<p>Stat null pointers </p>
|
|
606
617
|
<p>TODO: change the condition here to fetch the points-to set </p>
|
|
607
618
|
|
|
608
|
-
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#
|
|
609
|
-
<div class="fragment"><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a> = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eiter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  iter != eiter; ++iter)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pagNodeId = iter->first;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = iter->second;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ValVar>(pagNode) == <span class="keyword">false</span>)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& inComingStore = pagNode-><a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& outGoingLoad = pagNode-><a class="code" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">if</span> (inComingStore.empty()==<span class="keyword">false</span> || outGoingLoad.empty()==<span class="keyword">false</span>)</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(pagNodeId);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">containBlackHoleNode</a>(pts))</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a27d4e2bf145226f3c2b4d46fee2311e7">_NumOfBlackholePtr</a>++;</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_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">containConstantNode</a>(pts))</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">_NumOfConstantPtr</a>++;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">if</span>(pts.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<DummyValVar>(pagNode) && !SVFUtil::isa<DummyObjVar>(pagNode) )</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="comment">// if a pointer is in dead function, we do not care</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a33b2c83db77cd2ac72b1d591789ef1c5">SymbolTableInfo::isPtrInUncalledFunction</a>(pagNode-><a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()) == <span class="keyword">false</span>)</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  rawstr << <span class="stringliteral">"##Null Pointer : (NodeID "</span> << pagNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  << <span class="stringliteral">") PtrName:"</span> << pagNode-><a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()->getName();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="comment">//pagNode->getValue()->dump();</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  rawstr << <span class="stringliteral">"##Null Pointer : (NodeID "</span> << pagNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">")"</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</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>  }</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>  }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
619
|
+
<p class="definition">Definition at line <a class="el" href="AndersenStat_8cpp_source.html#l00212">212</a> of file <a class="el" href="AndersenStat_8cpp_source.html">AndersenStat.cpp</a>.</p>
|
|
620
|
+
<div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a> = 0;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> iter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eiter = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  iter != eiter; ++iter)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pagNodeId = iter->first;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = iter->second;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">if</span> (SVFUtil::isa<ValVar>(pagNode) == <span class="keyword">false</span>)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& inComingStore = pagNode-><a class="code" href="classSVF_1_1SVFVar.html#a76964ef7d4842a469d7720881499d8a6">getIncomingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>& outGoingLoad = pagNode-><a class="code" href="classSVF_1_1SVFVar.html#a927733580b47be5ffcfced44ba9fd6c3">getOutgoingEdges</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span> (inComingStore.empty()==<span class="keyword">false</span> || outGoingLoad.empty()==<span class="keyword">false</span>)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(pagNodeId);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">containBlackHoleNode</a>(pts))</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="classSVF_1_1AndersenStat.html#a27d4e2bf145226f3c2b4d46fee2311e7">_NumOfBlackholePtr</a>++;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">pta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">containConstantNode</a>(pts))</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">_NumOfConstantPtr</a>++;</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>(pts.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</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="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<DummyValVar>(pagNode) && !SVFUtil::isa<DummyObjVar>(pagNode) )</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="comment">// if a pointer is in dead function, we do not care</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_1SymbolTableInfo.html#a33b2c83db77cd2ac72b1d591789ef1c5">SymbolTableInfo::isPtrInUncalledFunction</a>(pagNode-><a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()) == <span class="keyword">false</span>)</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_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  rawstr << <span class="stringliteral">"##Null Pointer : (NodeID "</span> << pagNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  << <span class="stringliteral">") PtrName:"</span> << pagNode-><a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()->getName();</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">//pagNode->getValue()->dump();</span></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">else</span></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>  <a class="code" href="classSVF_1_1AndersenStat.html#a38dfd00f384eea7899a29b2ec32a0ded">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  rawstr << <span class="stringliteral">"##Null Pointer : (NodeID "</span> << pagNode-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">")"</span>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</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>  }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
|
|
610
621
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_a8af8dd60987c4c99ea3727d9db87c187"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#a8af8dd60987c4c99ea3727d9db87c187">SVF::AndersenStat::pta</a></div><div class="ttdeci">AndersenBase * pta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00052">WPAStat.h:52</a></div></div>
|
|
611
622
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a56368369bc37e37b13f19e5eb1890063"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">SVF::PointerAnalysis::containBlackHoleNode</a></div><div class="ttdeci">bool containBlackHoleNode(const PointsTo &pts)</div><div class="ttdoc">Determine whether a points-to contains a black hole or constant node. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00292">PointerAnalysis.h:292</a></div></div>
|
|
612
623
|
<div class="ttc" id="classSVF_1_1AndersenStat_html_ab8f8152b5e6127f2d9bdcbd22083da67"><div class="ttname"><a href="classSVF_1_1AndersenStat.html#ab8f8152b5e6127f2d9bdcbd22083da67">SVF::AndersenStat::_NumOfConstantPtr</a></div><div class="ttdeci">u32_t _NumOfConstantPtr</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00063">WPAStat.h:63</a></div></div>
|