svf-tools 1.0.527 → 1.0.528
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +9 -7
- package/lib/WPA/FlowSensitiveStat.cpp +3 -2
- package/lib/WPA/TypeAnalysis.cpp +1 -0
- package/lib/WPA/VersionedFlowSensitiveStat.cpp +3 -2
- package/package.json +1 -1
|
@@ -573,8 +573,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
573
573
|
</div><div class="memdoc">
|
|
574
574
|
<p>Points-to size </p>
|
|
575
575
|
|
|
576
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#
|
|
577
|
-
<div class="fragment"><div class="line"><a name="
|
|
576
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#l00495">495</a> of file <a class="el" href="FlowSensitiveStat_8cpp_source.html">FlowSensitiveStat.cpp</a>.</p>
|
|
577
|
+
<div class="fragment"><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(pointer);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae2d4df7129385905775489f1389a9fa7">_NumOfAddrTakeVar</a> += pts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ptsIt = pts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>();</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ptsEit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>();</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">for</span> (; ptsIt != ptsEit; ++ptsIt)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptd = *ptsIt;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& cpts = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a808dc8a242f168174339d7ca3196bb58">getDFOutPtsSet</a>(svfg_node, ptd);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08bfa021eab91d647932aa790d300bbc">_AvgAddrTakenVarPtsSize</a> += cpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">if</span> (cpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>() > <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a7c88e2528a93511ba8dde4805cadcd30">_MaxAddrTakenVarPts</a>)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a7c88e2528a93511ba8dde4805cadcd30">_MaxAddrTakenVarPts</a> = cpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> }</div><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>
|
|
578
578
|
<div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
|
|
579
579
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_af7e04f73ee17647c52e571cadef8729f"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">SVF::FlowSensitiveStat::fspta</a></div><div class="ttdeci">FlowSensitive * fspta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00091">WPAStat.h:91</a></div></div>
|
|
580
580
|
<div class="ttc" id="classSVF_1_1PointsTo_html_aa53962e561399bf493d1f2b9137356f6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
|
|
@@ -680,7 +680,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
680
680
|
<p>Reimplemented from <a class="el" href="classSVF_1_1PTAStat.html#acfed70588cf921694db35990ec3c7497">SVF::PTAStat</a>.</p>
|
|
681
681
|
|
|
682
682
|
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#l00086">86</a> of file <a class="el" href="FlowSensitiveStat_8cpp_source.html">FlowSensitiveStat.cpp</a>.</p>
|
|
683
|
-
<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  assert(SVFUtil::isa<FlowSensitive>(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>) && <span class="stringliteral">"not an flow-sensitive pta pass!! what else??"</span>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="classSVF_1_1PTAStat.html#afe854f7416ea408104721a083ee9fee0">endClk</a>();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab4c205136b22a13b54ceb48135730d23">clearStat</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>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// stat null ptr number</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770">statNullPtr</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// stat points-to set information</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75">statPtsSize</a>();</div><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>  <span class="comment">// stat address-taken variables' points-to</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b">statAddrVarPtsSize</a>();</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="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fiObjNumber = 0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fsObjNumber = 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<SymID></a> nodeSet;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVFIR::const_iterator</a> nodeIt = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), nodeEit = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); nodeIt != nodeEit; nodeIt++)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = nodeIt->first;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = nodeIt->second;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ObjVar>(pagNode))</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> * memObj = pag-><a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(nodeId);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> baseId = memObj-><a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span> (nodeSet.insert(baseId).second)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (memObj-><a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  fiObjNumber++;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  fsObjNumber++;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordtype">unsigned</span> numOfCopy = 0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordtype">unsigned</span> numOfStore = 0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordtype">unsigned</span> numOfNode = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">SVFG::iterator</a> svfgNodeIt = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">SVFG::iterator</a> svfgNodeEit = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">for</span> (; svfgNodeIt != svfgNodeEit; ++svfgNodeIt)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  numOfNode++;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* svfgNode = svfgNodeIt->second;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CopySVFGNode>(svfgNode))</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  numOfCopy++;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(svfgNode))</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  numOfStore++;</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> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <a class="code" href="classSVF_1_1PTAStat.html#acfed70588cf921694db35990ec3c7497">PTAStat::performStat</a>();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</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="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"SolveTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">solveTime</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"SCCTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">sccTime</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"ProcessTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">processTime</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"PropagationTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">propagationTime</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"DirectPropaTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">directPropaTime</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"IndirectPropaTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">indirectPropaTime</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"Strong/WeakUpdTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">updateTime</a>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AddrTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">addrTime</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"CopyTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">copyTime</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"GepTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">gepTime</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"LoadTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"StoreTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">storeTime</a>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"UpdateCGTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">updateCallGraphTime</a>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"PhiTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">phiTime</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</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="l00159"></a><span class="lineno"> 159</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="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</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="l00162"></a><span class="lineno"> 162</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="l00163"></a><span class="lineno"> 163</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="l00164"></a><span class="lineno"> 164</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="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a97a8b662356fc89cdd2cb9463fa5578b">NumOfCopys</a>] = numOfCopy;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">NumOfStores</a>] = numOfStore;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</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_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">numOfIteration</a>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00171"></a><span class="lineno"> 171</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_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</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_1FlowSensitiveStat.html#aea1cb2baea2f3c4d2ef62656a56bd077">_NumOfNullPtr</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToConstPtr"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a767a935ec5bacd97f4fa79a05c165cc2">_NumOfConstantPtr</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToBlkPtr"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a74ab9e235e08e4840223ddf0599a9da7">_NumOfBlackholePtr</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"StrongUpdates"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305">svfgHasSU</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa39c5d81cef922d7a0f98913dbf51fb0">_NumOfSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa39c5d81cef922d7a0f98913dbf51fb0">_NumOfSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</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">"FI_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2e9a786af3bce4b345d88ff05cd71f0f">_NumOfFormalInSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"FI_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2e9a786af3bce4b345d88ff05cd71f0f">_NumOfFormalInSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </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">"FO_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1cfd15cd46178718ea459f79738e0b69">_NumOfFormalOutSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"FO_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1cfd15cd46178718ea459f79738e0b69">_NumOfFormalOutSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </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">"AI_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0530fa56a9cea05d25ee350e9db9ed2a">_NumOfActualInSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"AI_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0530fa56a9cea05d25ee350e9db9ed2a">_NumOfActualInSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </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">"AO_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a3ac011649b3c0ced46283265ba88dd0e">_NumOfActualOutSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"AO_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a3ac011649b3c0ced46283265ba88dd0e">_NumOfActualOutSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </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">"LD_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6fdf88fe931ead9a9b8f353c547c4ae">_NumOfLoadSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"LD_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6fdf88fe931ead9a9b8f353c547c4ae">_NumOfLoadSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </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">"ST_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae0db364bf6657c770deabbe75d901a46">_NumOfStoreSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"ST_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae0db364bf6657c770deabbe75d901a46">_NumOfStoreSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </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">"PHI_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a60741c38448e909388942a5e9f5b5ef4">_NumOfMSSAPhiSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PHI_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a60741c38448e909388942a5e9f5b5ef4">_NumOfMSSAPhiSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">/*-----------------------------------------------------*/</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">// SVFIR nodes.</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PotentialVarHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PotentialVarHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveEmptyIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2162dffeb03e84daca52d6d8429b8529">_NumOfVarHaveEmptyINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveEmptyOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2162dffeb03e84daca52d6d8429b8529">_NumOfVarHaveEmptyINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</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_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_FI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#acebccfa66669033af9f9d4b3d021ec1a">_NumOfVarHaveINOUTPtsInFormalIn</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_FI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#acebccfa66669033af9f9d4b3d021ec1a">_NumOfVarHaveINOUTPtsInFormalIn</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</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="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_FO"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0f9098bb73b06ba963bdce8ea26f0fa3">_NumOfVarHaveINOUTPtsInFormalOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_FO"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0f9098bb73b06ba963bdce8ea26f0fa3">_NumOfVarHaveINOUTPtsInFormalOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_AI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a505057e9b8962359c9461395fd7ed138">_NumOfVarHaveINOUTPtsInActualIn</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_AI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a505057e9b8962359c9461395fd7ed138">_NumOfVarHaveINOUTPtsInActualIn</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_AO"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#abeef6e8ba26d73d9e981a23d9f96e4d7">_NumOfVarHaveINOUTPtsInActualOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_AO"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#abeef6e8ba26d73d9e981a23d9f96e4d7">_NumOfVarHaveINOUTPtsInActualOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_LD"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa754517cc9b5faeea010e336027c0ab4">_NumOfVarHaveINOUTPtsInLoad</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_LD"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa754517cc9b5faeea010e336027c0ab4">_NumOfVarHaveINOUTPtsInLoad</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_ST"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a21f2c005bf927c0c23772172c08402bf">_NumOfVarHaveINOUTPtsInStore</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_ST"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a21f2c005bf927c0c23772172c08402bf">_NumOfVarHaveINOUTPtsInStore</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_PHI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a90f1c6072a153c856765b24bbcbfaeef">_NumOfVarHaveINOUTPtsInMSSAPhi</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_PHI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a90f1c6072a153c856765b24bbcbfaeef">_NumOfVarHaveINOUTPtsInMSSAPhi</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</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="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxTopLvlPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aecf324702d542f824e8b7a4d9827f557">_MaxTopLvlPtsSize</a>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxINPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOUTPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</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>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a07adfab66dd7ed22993e59ad3bf74946">_AvgPtsSize</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgTopLvlPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a31235f25af7970142ef235681d2a447c">_AvgTopLvlPtsSize</a>;</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_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfAddrTakenVar"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae2d4df7129385905775489f1389a9fa7">_NumOfAddrTakeVar</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgAddrTakenVarPts"</span>] = (<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae2d4df7129385905775489f1389a9fa7">_NumOfAddrTakeVar</a> == 0) ?</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  0 : ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08bfa021eab91d647932aa790d300bbc">_AvgAddrTakenVarPtsSize</a> / <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae2d4df7129385905775489f1389a9fa7">_NumOfAddrTakeVar</a>);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxAddrTakenVarPts"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a7c88e2528a93511ba8dde4805cadcd30">_MaxAddrTakenVarPts</a>;</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>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgINPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af45e08caf715cca450390ffc2fddb049">_AvgInOutPtsSize</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgOUTPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af45e08caf715cca450390ffc2fddb049">_AvgInOutPtsSize</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</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_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedAddr"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">numOfProcessedAddr</a>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedCopy"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">numOfProcessedCopy</a>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedGep"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">numOfProcessedGep</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedLoad"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">numOfProcessedLoad</a>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedStore"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">numOfProcessedStore</a>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedPhi"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">numOfProcessedPhi</a>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedAParam"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">numOfProcessedActualParam</a>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedFRet"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5">numOfProcessedFormalRet</a>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedMSSANode"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">numOfProcessedMSSANode</a>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfNodesInSCC"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxSCCSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfSCC"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AverageSCCSize"</span>] = (<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a> == 0) ? 0 :</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> / <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>);</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>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****Flow-Sensitive Pointer Analysis Statistics****\n"</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_ae2e58d18abcdddc7a5a87f4edc5f3b72"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">SVF::FlowSensitive::processTime</a></div><div class="ttdeci">double processTime</div><div class="ttdoc">time of processNode. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00303">FlowSensitive.h:303</a></div></div>
|
|
683
|
+
<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  assert(SVFUtil::isa<FlowSensitive>(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>) && <span class="stringliteral">"not an flow-sensitive pta pass!! what else??"</span>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="classSVF_1_1PTAStat.html#afe854f7416ea408104721a083ee9fee0">endClk</a>();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab4c205136b22a13b54ceb48135730d23">clearStat</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>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// stat null ptr number</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770">statNullPtr</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// stat points-to set information</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75">statPtsSize</a>();</div><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>  <span class="comment">// stat address-taken variables' points-to</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b">statAddrVarPtsSize</a>();</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="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fiObjNumber = 0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fsObjNumber = 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<SymID></a> nodeSet;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVFIR::const_iterator</a> nodeIt = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), nodeEit = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); nodeIt != nodeEit; nodeIt++)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = nodeIt->first;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = nodeIt->second;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ObjVar>(pagNode))</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> * memObj = pag-><a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(nodeId);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> baseId = memObj-><a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">if</span> (nodeSet.insert(baseId).second)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (memObj-><a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  fiObjNumber++;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  fsObjNumber++;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad1a7e7aec8f272017be7d0b6acda86a4">NumberOfFieldInsensitiveObj</a>] = fiObjNumber;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ab62eb21c7dc03f68b0509c31451b2e98">NumberOfFieldSensitiveObj</a>] = fsObjNumber;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">unsigned</span> numOfCopy = 0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordtype">unsigned</span> numOfStore = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">SVFG::iterator</a> svfgNodeIt = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="classSVF_1_1VFG.html#a241d0489bf0315460e2b07db87e7847c">SVFG::iterator</a> svfgNodeEit = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">for</span> (; svfgNodeIt != svfgNodeEit; ++svfgNodeIt)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* svfgNode = svfgNodeIt->second;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (SVFUtil::isa<CopySVFGNode>(svfgNode))</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  numOfCopy++;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(svfgNode))</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  numOfStore++;</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> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="classSVF_1_1PTAStat.html#acfed70588cf921694db35990ec3c7497">PTAStat::performStat</a>();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</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="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"SolveTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">solveTime</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"SCCTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#af496fa9aa2f4d59594950b2ad121deff">sccTime</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"ProcessTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">processTime</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"PropagationTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ac4d4b42bb96006801597f81ed3c4b337">propagationTime</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"DirectPropaTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ae086de68233375be42185f0af706687a">directPropaTime</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"IndirectPropaTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">indirectPropaTime</a>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"Strong/WeakUpdTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">updateTime</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AddrTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a38f3ed35185addf701d4401bfdd5f29b">addrTime</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"CopyTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a888d6334e5e226c634680e4c0674dcfb">copyTime</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"GepTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a282126e5b67ed4e19aa40c81180b8290">gepTime</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"LoadTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aab4f70210eb1e6447a24697d3b459067">loadTime</a>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"StoreTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">storeTime</a>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"UpdateCGTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07">updateCallGraphTime</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"PhiTime"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aee7d59b7ad00cf1cf6e3fba19513aa42">phiTime</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</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="l00160"></a><span class="lineno"> 160</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="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</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="l00163"></a><span class="lineno"> 163</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="l00164"></a><span class="lineno"> 164</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="l00165"></a><span class="lineno"> 165</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="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a97a8b662356fc89cdd2cb9463fa5578b">NumOfCopys</a>] = numOfCopy;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">NumOfStores</a>] = numOfStore;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</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_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">numOfIteration</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</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_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</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_1FlowSensitiveStat.html#aea1cb2baea2f3c4d2ef62656a56bd077">_NumOfNullPtr</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToConstPtr"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a767a935ec5bacd97f4fa79a05c165cc2">_NumOfConstantPtr</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToBlkPtr"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a74ab9e235e08e4840223ddf0599a9da7">_NumOfBlackholePtr</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"StrongUpdates"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305">svfgHasSU</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa39c5d81cef922d7a0f98913dbf51fb0">_NumOfSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa39c5d81cef922d7a0f98913dbf51fb0">_NumOfSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </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">"FI_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2e9a786af3bce4b345d88ff05cd71f0f">_NumOfFormalInSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"FI_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2e9a786af3bce4b345d88ff05cd71f0f">_NumOfFormalInSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </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">"FO_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1cfd15cd46178718ea459f79738e0b69">_NumOfFormalOutSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"FO_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1cfd15cd46178718ea459f79738e0b69">_NumOfFormalOutSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </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">"AI_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0530fa56a9cea05d25ee350e9db9ed2a">_NumOfActualInSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"AI_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0530fa56a9cea05d25ee350e9db9ed2a">_NumOfActualInSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </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">"AO_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a3ac011649b3c0ced46283265ba88dd0e">_NumOfActualOutSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"AO_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a3ac011649b3c0ced46283265ba88dd0e">_NumOfActualOutSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </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">"LD_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6fdf88fe931ead9a9b8f353c547c4ae">_NumOfLoadSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"LD_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6fdf88fe931ead9a9b8f353c547c4ae">_NumOfLoadSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </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">"ST_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae0db364bf6657c770deabbe75d901a46">_NumOfStoreSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</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">"ST_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae0db364bf6657c770deabbe75d901a46">_NumOfStoreSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PHI_SNodesHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a60741c38448e909388942a5e9f5b5ef4">_NumOfMSSAPhiSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PHI_SNodesHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a60741c38448e909388942a5e9f5b5ef4">_NumOfMSSAPhiSVFGNodesHaveInOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">/*-----------------------------------------------------*/</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// SVFIR nodes.</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PotentialVarHaveIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PotentialVarHaveOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><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>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveEmptyIN"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2162dffeb03e84daca52d6d8429b8529">_NumOfVarHaveEmptyINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveEmptyOUT"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2162dffeb03e84daca52d6d8429b8529">_NumOfVarHaveEmptyINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_FI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#acebccfa66669033af9f9d4b3d021ec1a">_NumOfVarHaveINOUTPtsInFormalIn</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_FI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#acebccfa66669033af9f9d4b3d021ec1a">_NumOfVarHaveINOUTPtsInFormalIn</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</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="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_FO"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0f9098bb73b06ba963bdce8ea26f0fa3">_NumOfVarHaveINOUTPtsInFormalOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_FO"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0f9098bb73b06ba963bdce8ea26f0fa3">_NumOfVarHaveINOUTPtsInFormalOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_AI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a505057e9b8962359c9461395fd7ed138">_NumOfVarHaveINOUTPtsInActualIn</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_AI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a505057e9b8962359c9461395fd7ed138">_NumOfVarHaveINOUTPtsInActualIn</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_AO"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#abeef6e8ba26d73d9e981a23d9f96e4d7">_NumOfVarHaveINOUTPtsInActualOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_AO"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#abeef6e8ba26d73d9e981a23d9f96e4d7">_NumOfVarHaveINOUTPtsInActualOut</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_LD"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa754517cc9b5faeea010e336027c0ab4">_NumOfVarHaveINOUTPtsInLoad</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_LD"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa754517cc9b5faeea010e336027c0ab4">_NumOfVarHaveINOUTPtsInLoad</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</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>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_ST"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a21f2c005bf927c0c23772172c08402bf">_NumOfVarHaveINOUTPtsInStore</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_ST"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a21f2c005bf927c0c23772172c08402bf">_NumOfVarHaveINOUTPtsInStore</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</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>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveIN_PHI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a90f1c6072a153c856765b24bbcbfaeef">_NumOfVarHaveINOUTPtsInMSSAPhi</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"VarHaveOUT_PHI"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a90f1c6072a153c856765b24bbcbfaeef">_NumOfVarHaveINOUTPtsInMSSAPhi</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</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="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxTopLvlPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aecf324702d542f824e8b7a4d9827f557">_MaxTopLvlPtsSize</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxINPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxOUTPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a07adfab66dd7ed22993e59ad3bf74946">_AvgPtsSize</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgTopLvlPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a31235f25af7970142ef235681d2a447c">_AvgTopLvlPtsSize</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfAddrTakenVar"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae2d4df7129385905775489f1389a9fa7">_NumOfAddrTakeVar</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgAddrTakenVarPts"</span>] = (<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae2d4df7129385905775489f1389a9fa7">_NumOfAddrTakeVar</a> == 0) ?</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  0 : ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08bfa021eab91d647932aa790d300bbc">_AvgAddrTakenVarPtsSize</a> / <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae2d4df7129385905775489f1389a9fa7">_NumOfAddrTakeVar</a>);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxAddrTakenVarPts"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a7c88e2528a93511ba8dde4805cadcd30">_MaxAddrTakenVarPts</a>;</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>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgINPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af45e08caf715cca450390ffc2fddb049">_AvgInOutPtsSize</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>];</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgOUTPtsSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af45e08caf715cca450390ffc2fddb049">_AvgInOutPtsSize</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</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_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedAddr"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ae4253bc632ffffe2498263c90f456ca7">numOfProcessedAddr</a>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedCopy"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">numOfProcessedCopy</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedGep"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">numOfProcessedGep</a>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedLoad"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a0e1a0bdbf4f81a3600ac26ac011ac268">numOfProcessedLoad</a>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedStore"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a669e8f1dd8572b7dcff373c9787a923d">numOfProcessedStore</a>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedPhi"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ac39abcb40e4b568ab59b7cf48ed10f70">numOfProcessedPhi</a>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedAParam"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#abdc30e45347579986c42795a436a1251">numOfProcessedActualParam</a>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedFRet"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#ae048cc5350cf2b075c05f5d84777a3c5">numOfProcessedFormalRet</a>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"ProcessedMSSANode"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#af71a5ae3aef022c569e89f40515072cf">numOfProcessedMSSANode</a>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfNodesInSCC"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxSCCSize"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfSCC"</span>] = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AverageSCCSize"</span>] = (<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a> == 0) ? 0 :</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> / <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>);</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>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****Flow-Sensitive Pointer Analysis Statistics****\n"</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_ae2e58d18abcdddc7a5a87f4edc5f3b72"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#ae2e58d18abcdddc7a5a87f4edc5f3b72">SVF::FlowSensitive::processTime</a></div><div class="ttdeci">double processTime</div><div class="ttdoc">time of processNode. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00303">FlowSensitive.h:303</a></div></div>
|
|
684
684
|
<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>
|
|
685
685
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a2feaa4b7a72989b311e9084a81320254"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a2feaa4b7a72989b311e9084a81320254">SVF::FlowSensitive::indirectPropaTime</a></div><div class="ttdeci">double indirectPropaTime</div><div class="ttdoc">time of points-to propagation of top-level pointers </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00306">FlowSensitive.h:306</a></div></div>
|
|
686
686
|
<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#l00206">WPASolver.h:206</a></div></div>
|
|
@@ -735,6 +735,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
735
735
|
<div class="ttc" id="namespaceSVF_html_ad11fe2412b2182365a662ff0e4639b48"><div class="ttname"><a href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SVF::SymID</a></div><div class="ttdeci">unsigned SymID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00092">SVFBasicTypes.h:92</a></div></div>
|
|
736
736
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_acebccfa66669033af9f9d4b3d021ec1a"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#acebccfa66669033af9f9d4b3d021ec1a">SVF::FlowSensitiveStat::_NumOfVarHaveINOUTPtsInFormalIn</a></div><div class="ttdeci">u32_t _NumOfVarHaveINOUTPtsInFormalIn[2]</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00140">WPAStat.h:140</a></div></div>
|
|
737
737
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
738
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_ab62eb21c7dc03f68b0509c31451b2e98"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ab62eb21c7dc03f68b0509c31451b2e98">SVF::PTAStat::NumberOfFieldSensitiveObj</a></div><div class="ttdeci">static const char * NumberOfFieldSensitiveObj</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00096">PTAStat.h:96</a></div></div>
|
|
738
739
|
<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#l00099">PTAStat.h:99</a></div></div>
|
|
739
740
|
<div class="ttc" id="classSVF_1_1PTAStat_html_afe854f7416ea408104721a083ee9fee0"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afe854f7416ea408104721a083ee9fee0">SVF::PTAStat::endClk</a></div><div class="ttdeci">virtual void endClk()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00138">PTAStat.h:138</a></div></div>
|
|
740
741
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a43e8ca2e69e6e8643c9abd1fa231d305"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a43e8ca2e69e6e8643c9abd1fa231d305">SVF::FlowSensitive::svfgHasSU</a></div><div class="ttdeci">NodeBS svfgHasSU</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00316">FlowSensitive.h:316</a></div></div>
|
|
@@ -749,7 +750,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
749
750
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a60741c38448e909388942a5e9f5b5ef4"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a60741c38448e909388942a5e9f5b5ef4">SVF::FlowSensitiveStat::_NumOfMSSAPhiSVFGNodesHaveInOut</a></div><div class="ttdeci">u32_t _NumOfMSSAPhiSVFGNodesHaveInOut[2]</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00135">WPAStat.h:135</a></div></div>
|
|
750
751
|
<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>
|
|
751
752
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a31235f25af7970142ef235681d2a447c"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a31235f25af7970142ef235681d2a447c">SVF::FlowSensitiveStat::_AvgTopLvlPtsSize</a></div><div class="ttdeci">double _AvgTopLvlPtsSize</div><div class="ttdoc">average points-to set size in top-level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00157">WPAStat.h:157</a></div></div>
|
|
752
|
-
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a81785227a688389c68171a1fbd55fa9b"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b">SVF::FlowSensitiveStat::statAddrVarPtsSize</a></div><div class="ttdeci">void statAddrVarPtsSize()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#
|
|
753
|
+
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a81785227a688389c68171a1fbd55fa9b"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a81785227a688389c68171a1fbd55fa9b">SVF::FlowSensitiveStat::statAddrVarPtsSize</a></div><div class="ttdeci">void statAddrVarPtsSize()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00478">FlowSensitiveStat.cpp:478</a></div></div>
|
|
753
754
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_aecf324702d542f824e8b7a4d9827f557"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#aecf324702d542f824e8b7a4d9827f557">SVF::FlowSensitiveStat::_MaxTopLvlPtsSize</a></div><div class="ttdeci">u32_t _MaxTopLvlPtsSize</div><div class="ttdoc">max points-to set size in top-level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00151">WPAStat.h:151</a></div></div>
|
|
754
755
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_ab6ccd8de2b7573f34c4d04b7f40d6522"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">SVF::FlowSensitiveStat::_NumOfVarHaveINOUTPts</a></div><div class="ttdeci">u32_t _NumOfVarHaveINOUTPts[2]</div><div class="ttdoc">number of pag nodes which have points-to set in IN/OUT set. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00138">WPAStat.h:138</a></div></div>
|
|
755
756
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a88a111b6bc347d6562db7af8bd8f2f0e"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88a111b6bc347d6562db7af8bd8f2f0e">SVF::FlowSensitive::numOfProcessedGep</a></div><div class="ttdeci">u32_t numOfProcessedGep</div><div class="ttdoc">Number of processed Copy node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00289">FlowSensitive.h:289</a></div></div>
|
|
@@ -769,6 +770,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
769
770
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a90f1c6072a153c856765b24bbcbfaeef"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a90f1c6072a153c856765b24bbcbfaeef">SVF::FlowSensitiveStat::_NumOfVarHaveINOUTPtsInMSSAPhi</a></div><div class="ttdeci">u32_t _NumOfVarHaveINOUTPtsInMSSAPhi[2]</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00146">WPAStat.h:146</a></div></div>
|
|
770
771
|
<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#l00061">PTAStat.h:61</a></div></div>
|
|
771
772
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a767a935ec5bacd97f4fa79a05c165cc2"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a767a935ec5bacd97f4fa79a05c165cc2">SVF::FlowSensitiveStat::_NumOfConstantPtr</a></div><div class="ttdeci">u32_t _NumOfConstantPtr</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00124">WPAStat.h:124</a></div></div>
|
|
773
|
+
<div class="ttc" id="classSVF_1_1PTAStat_html_ad1a7e7aec8f272017be7d0b6acda86a4"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ad1a7e7aec8f272017be7d0b6acda86a4">SVF::PTAStat::NumberOfFieldInsensitiveObj</a></div><div class="ttdeci">static const char * NumberOfFieldInsensitiveObj</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00095">PTAStat.h:95</a></div></div>
|
|
772
774
|
<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#l00119">PTAStat.h:119</a></div></div>
|
|
773
775
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a19e017f3ed6429fa30687018e64dae54"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a19e017f3ed6429fa30687018e64dae54">SVF::FlowSensitive::numOfProcessedCopy</a></div><div class="ttdeci">u32_t numOfProcessedCopy</div><div class="ttdoc">Number of processed Addr node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00288">FlowSensitive.h:288</a></div></div>
|
|
774
776
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a505057e9b8962359c9461395fd7ed138"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a505057e9b8962359c9461395fd7ed138">SVF::FlowSensitiveStat::_NumOfVarHaveINOUTPtsInActualIn</a></div><div class="ttdeci">u32_t _NumOfVarHaveINOUTPtsInActualIn[2]</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00142">WPAStat.h:142</a></div></div>
|
|
@@ -780,11 +782,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
780
782
|
<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#l00111">PTAStat.h:111</a></div></div>
|
|
781
783
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_aa39c5d81cef922d7a0f98913dbf51fb0"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#aa39c5d81cef922d7a0f98913dbf51fb0">SVF::FlowSensitiveStat::_NumOfSVFGNodesHaveInOut</a></div><div class="ttdeci">u32_t _NumOfSVFGNodesHaveInOut[2]</div><div class="ttdoc">number of SVFG nodes which have IN/OUT set. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00128">WPAStat.h:128</a></div></div>
|
|
782
784
|
<div class="ttc" id="classSVF_1_1PTAStat_html_afdb975520329be0c33cc7bdd51ba7031"><div class="ttname"><a href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">SVF::PTAStat::PTNumStatMap</a></div><div class="ttdeci">NUMStatMap PTNumStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00148">PTAStat.h:148</a></div></div>
|
|
783
|
-
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_af51e5b90f7bc52e3657a708c7bc5bb75"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75">SVF::FlowSensitiveStat::statPtsSize</a></div><div class="ttdeci">void statPtsSize()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#
|
|
785
|
+
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_af51e5b90f7bc52e3657a708c7bc5bb75"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#af51e5b90f7bc52e3657a708c7bc5bb75">SVF::FlowSensitiveStat::statPtsSize</a></div><div class="ttdeci">void statPtsSize()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00324">FlowSensitiveStat.cpp:324</a></div></div>
|
|
784
786
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a08bfa021eab91d647932aa790d300bbc"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a08bfa021eab91d647932aa790d300bbc">SVF::FlowSensitiveStat::_AvgAddrTakenVarPtsSize</a></div><div class="ttdeci">double _AvgAddrTakenVarPtsSize</div><div class="ttdoc">average points-to set size of addr-taken variables. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00159">WPAStat.h:159</a></div></div>
|
|
785
787
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_af5a94d14096ae2bbc47b3b3b9f723226"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#af5a94d14096ae2bbc47b3b3b9f723226">SVF::FlowSensitive::updateTime</a></div><div class="ttdeci">double updateTime</div><div class="ttdoc">time of strong/weak updates. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00307">FlowSensitive.h:307</a></div></div>
|
|
786
788
|
<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>
|
|
787
|
-
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a36f7be42772b2df6f7594c51b7dc4770"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770">SVF::FlowSensitiveStat::statNullPtr</a></div><div class="ttdeci">void statNullPtr()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#
|
|
789
|
+
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a36f7be42772b2df6f7594c51b7dc4770"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a36f7be42772b2df6f7594c51b7dc4770">SVF::FlowSensitiveStat::statNullPtr</a></div><div class="ttdeci">void statNullPtr()</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00273">FlowSensitiveStat.cpp:273</a></div></div>
|
|
788
790
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a3ac011649b3c0ced46283265ba88dd0e"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a3ac011649b3c0ced46283265ba88dd0e">SVF::FlowSensitiveStat::_NumOfActualOutSVFGNodesHaveInOut</a></div><div class="ttdeci">u32_t _NumOfActualOutSVFGNodesHaveInOut[2]</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00132">WPAStat.h:132</a></div></div>
|
|
789
791
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
790
792
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a21f2c005bf927c0c23772172c08402bf"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a21f2c005bf927c0c23772172c08402bf">SVF::FlowSensitiveStat::_NumOfVarHaveINOUTPtsInStore</a></div><div class="ttdeci">u32_t _NumOfVarHaveINOUTPtsInStore[2]</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00145">WPAStat.h:145</a></div></div>
|
|
@@ -816,13 +818,13 @@ Additional Inherited Members</h2></td></tr>
|
|
|
816
818
|
</div><div class="memdoc">
|
|
817
819
|
<p>Points-to size </p>
|
|
818
820
|
|
|
819
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#
|
|
820
|
-
<div class="fragment"><div class="line"><a name="
|
|
821
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#l00478">478</a> of file <a class="el" href="FlowSensitiveStat_8cpp_source.html">FlowSensitiveStat.cpp</a>.</p>
|
|
822
|
+
<div class="fragment"><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  SVFG::SVFGNodeIDToNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>();</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  SVFG::SVFGNodeIDToNodeMapTy::const_iterator eit = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it->second;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store = SVFUtil::dyn_cast<StoreSVFGNode>(node))</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce">calculateAddrVarPts</a>(store->getPAGDstNodeID(), store);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</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>
|
|
821
823
|
<div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
|
|
822
824
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00246">FlowSensitive.h:246</a></div></div>
|
|
823
825
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_af7e04f73ee17647c52e571cadef8729f"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">SVF::FlowSensitiveStat::fspta</a></div><div class="ttdeci">FlowSensitive * fspta</div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00091">WPAStat.h:91</a></div></div>
|
|
824
826
|
<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>
|
|
825
|
-
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a04466753c771238c6e1cc57964061dce"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce">SVF::FlowSensitiveStat::calculateAddrVarPts</a></div><div class="ttdeci">void calculateAddrVarPts(NodeID pointer, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#
|
|
827
|
+
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a04466753c771238c6e1cc57964061dce"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a04466753c771238c6e1cc57964061dce">SVF::FlowSensitiveStat::calculateAddrVarPts</a></div><div class="ttdeci">void calculateAddrVarPts(NodeID pointer, const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00495">FlowSensitiveStat.cpp:495</a></div></div>
|
|
826
828
|
<div class="ttc" id="classSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
827
829
|
</div><!-- fragment -->
|
|
828
830
|
</div>
|
|
@@ -862,8 +864,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
862
864
|
</div><div class="memdoc">
|
|
863
865
|
<p>points-to target number </p>
|
|
864
866
|
|
|
865
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#
|
|
866
|
-
<div class="fragment"><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="comment">// Get number of nodes which have IN/OUT set</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa39c5d81cef922d7a0f98913dbf51fb0">_NumOfSVFGNodesHaveInOut</a>[inOrOut] = data.size();</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> inOutPtsSize = 0;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  DFInOutMap::const_iterator it = data.begin();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  DFInOutMap::const_iterator eit = data.end();</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(it->first);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="comment">// Count number of SVFG nodes have IN/OUT set.</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">if</span> (SVFUtil::isa<FormalINSVFGNode>(node))</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2e9a786af3bce4b345d88ff05cd71f0f">_NumOfFormalInSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1cfd15cd46178718ea459f79738e0b69">_NumOfFormalOutSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualINSVFGNode>(node))</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0530fa56a9cea05d25ee350e9db9ed2a">_NumOfActualInSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a3ac011649b3c0ced46283265ba88dd0e">_NumOfActualOutSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadSVFGNode>(node))</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6fdf88fe931ead9a9b8f353c547c4ae">_NumOfLoadSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(node))</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae0db364bf6657c770deabbe75d901a46">_NumOfStoreSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a60741c38448e909388942a5e9f5b5ef4">_NumOfMSSAPhiSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"unexpected node have IN/OUT set"</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="comment">/*-----------------------------------------------------*/</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="comment">// Count SVFIR nodes and their points-to set size.</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1b605e86f33e79f7d7cd88dc54f2c19e">PtsMap</a>& cptsMap = it->second;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  PtsMap::const_iterator ptsIt = cptsMap.begin();</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  PtsMap::const_iterator ptsEit = cptsMap.end();</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">for</span> (; ptsIt != ptsEit; ++ptsIt)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">if</span> (ptsIt->second.empty())</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2162dffeb03e84daca52d6d8429b8529">_NumOfVarHaveEmptyINOUTPts</a>[inOrOut]++;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ptsNum = ptsIt->second.count(); </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="comment">// Only node with non-empty points-to set are counted.</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[inOrOut]++;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">if</span> (SVFUtil::isa<FormalINSVFGNode>(node))</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#acebccfa66669033af9f9d4b3d021ec1a">_NumOfVarHaveINOUTPtsInFormalIn</a>[inOrOut]++;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0f9098bb73b06ba963bdce8ea26f0fa3">_NumOfVarHaveINOUTPtsInFormalOut</a>[inOrOut]++;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualINSVFGNode>(node))</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a505057e9b8962359c9461395fd7ed138">_NumOfVarHaveINOUTPtsInActualIn</a>[inOrOut]++;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#abeef6e8ba26d73d9e981a23d9f96e4d7">_NumOfVarHaveINOUTPtsInActualOut</a>[inOrOut]++;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadSVFGNode>(node))</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa754517cc9b5faeea010e336027c0ab4">_NumOfVarHaveINOUTPtsInLoad</a>[inOrOut]++;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(node))</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a21f2c005bf927c0c23772172c08402bf">_NumOfVarHaveINOUTPtsInStore</a>[inOrOut]++;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a90f1c6072a153c856765b24bbcbfaeef">_NumOfVarHaveINOUTPtsInMSSAPhi</a>[inOrOut]++;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"unexpected node have IN/OUT set"</span>);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  inOutPtsSize += ptsNum;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">if</span> (ptsNum > <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[inOrOut])</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[inOrOut] = ptsNum;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">if</span> (ptsNum > <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a>) <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a> = ptsNum;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[inOrOut] != 0)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af45e08caf715cca450390ffc2fddb049">_AvgInOutPtsSize</a>[inOrOut] = (double)inOutPtsSize / <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[inOrOut];</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8b5bfc9c3cbf9451603860789640246a">_TotalPtsSize</a> += inOutPtsSize;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="comment">// How many IN/OUT PTSs could we have *potentially* had?</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="comment">// l'-o->l, l''-o->l, ..., means there is a possibility of 1 IN PTS.</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="comment">// *p = q && { o } in pts_ander(p) means there is a possibility of 1 OUT PTS.</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="comment">// For OUTs at stores, we must also account for WU/SUs.</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a> *svfg = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFG.html#a225a91c04afac6a8fe198e9860890a52">SVFG::const_iterator</a> it = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it != svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++it)</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *sn = it->second;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="comment">// Unique objects coming into s.</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> incomingObjects;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a> *e : sn-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>())</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  {</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a> *ie = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>>(e);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">if</span> (!ie) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : ie-><a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>()) incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>] += incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a> *store = SVFUtil::dyn_cast<StoreSVFGNode>(sn))</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> = store->getPAGDstNodeID();</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="comment">// Reuse incomingObjects; what's already in there will be propagated forwarded</span></div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="comment">// as a WU/SU, and what's not (first defined at the store), will be added.</span></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>-><a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(p)) incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>] += incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  }</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</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>
|
|
867
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#l00363">363</a> of file <a class="el" href="FlowSensitiveStat_8cpp_source.html">FlowSensitiveStat.cpp</a>.</p>
|
|
868
|
+
<div class="fragment"><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="comment">// Get number of nodes which have IN/OUT set</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa39c5d81cef922d7a0f98913dbf51fb0">_NumOfSVFGNodesHaveInOut</a>[inOrOut] = data.size();</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> inOutPtsSize = 0;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  DFInOutMap::const_iterator it = data.begin();</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  DFInOutMap::const_iterator eit = data.end();</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a7ace06b6c893b31f7dec2abe54e33e11">getSVFGNode</a>(it->first);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="comment">// Count number of SVFG nodes have IN/OUT set.</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">if</span> (SVFUtil::isa<FormalINSVFGNode>(node))</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2e9a786af3bce4b345d88ff05cd71f0f">_NumOfFormalInSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1cfd15cd46178718ea459f79738e0b69">_NumOfFormalOutSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualINSVFGNode>(node))</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0530fa56a9cea05d25ee350e9db9ed2a">_NumOfActualInSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a3ac011649b3c0ced46283265ba88dd0e">_NumOfActualOutSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadSVFGNode>(node))</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6fdf88fe931ead9a9b8f353c547c4ae">_NumOfLoadSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(node))</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ae0db364bf6657c770deabbe75d901a46">_NumOfStoreSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a60741c38448e909388942a5e9f5b5ef4">_NumOfMSSAPhiSVFGNodesHaveInOut</a>[inOrOut]++;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"unexpected node have IN/OUT set"</span>);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="comment">/*-----------------------------------------------------*/</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="comment">// Count SVFIR nodes and their points-to set size.</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a1b605e86f33e79f7d7cd88dc54f2c19e">PtsMap</a>& cptsMap = it->second;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  PtsMap::const_iterator ptsIt = cptsMap.begin();</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  PtsMap::const_iterator ptsEit = cptsMap.end();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">for</span> (; ptsIt != ptsEit; ++ptsIt)</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">if</span> (ptsIt->second.empty())</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a2162dffeb03e84daca52d6d8429b8529">_NumOfVarHaveEmptyINOUTPts</a>[inOrOut]++;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ptsNum = ptsIt->second.count(); </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="comment">// Only node with non-empty points-to set are counted.</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[inOrOut]++;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordflow">if</span> (SVFUtil::isa<FormalINSVFGNode>(node))</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#acebccfa66669033af9f9d4b3d021ec1a">_NumOfVarHaveINOUTPtsInFormalIn</a>[inOrOut]++;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<FormalOUTSVFGNode>(node))</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a0f9098bb73b06ba963bdce8ea26f0fa3">_NumOfVarHaveINOUTPtsInFormalOut</a>[inOrOut]++;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualINSVFGNode>(node))</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a505057e9b8962359c9461395fd7ed138">_NumOfVarHaveINOUTPtsInActualIn</a>[inOrOut]++;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<ActualOUTSVFGNode>(node))</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#abeef6e8ba26d73d9e981a23d9f96e4d7">_NumOfVarHaveINOUTPtsInActualOut</a>[inOrOut]++;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<LoadSVFGNode>(node))</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aa754517cc9b5faeea010e336027c0ab4">_NumOfVarHaveINOUTPtsInLoad</a>[inOrOut]++;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<StoreSVFGNode>(node))</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a21f2c005bf927c0c23772172c08402bf">_NumOfVarHaveINOUTPtsInStore</a>[inOrOut]++;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<MSSAPHISVFGNode>(node))</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a90f1c6072a153c856765b24bbcbfaeef">_NumOfVarHaveINOUTPtsInMSSAPhi</a>[inOrOut]++;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"unexpected node have IN/OUT set"</span>);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  inOutPtsSize += ptsNum;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">if</span> (ptsNum > <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[inOrOut])</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab3e56ed16ce45d35c8f35f1fc1248c36">_MaxInOutPtsSize</a>[inOrOut] = ptsNum;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">if</span> (ptsNum > <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a>) <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a> = ptsNum;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[inOrOut] != 0)</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af45e08caf715cca450390ffc2fddb049">_AvgInOutPtsSize</a>[inOrOut] = (double)inOutPtsSize / <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[inOrOut];</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8b5bfc9c3cbf9451603860789640246a">_TotalPtsSize</a> += inOutPtsSize;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="comment">// How many IN/OUT PTSs could we have *potentially* had?</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="comment">// l'-o->l, l''-o->l, ..., means there is a possibility of 1 IN PTS.</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="comment">// *p = q && { o } in pts_ander(p) means there is a possibility of 1 OUT PTS.</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="comment">// For OUTs at stores, we must also account for WU/SUs.</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a> *svfg = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFG.html#a225a91c04afac6a8fe198e9860890a52">SVFG::const_iterator</a> it = svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); it != svfg-><a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++it)</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *sn = it->second;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="comment">// Unique objects coming into s.</span></div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> incomingObjects;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a> *e : sn-><a class="code" href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">getInEdges</a>())</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a> *ie = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>>(e);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">if</span> (!ie) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : ie-><a class="code" href="classSVF_1_1IndirectSVFGEdge.html#a30aca718d25924f1babdf348bb0ace71">getPointsTo</a>()) incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> </div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>] += incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> </div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a> *store = SVFUtil::dyn_cast<StoreSVFGNode>(sn))</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  {</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> = store->getPAGDstNodeID();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="comment">// Reuse incomingObjects; what's already in there will be propagated forwarded</span></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="comment">// as a WU/SU, and what's not (first defined at the store), will be added.</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>-><a class="code" href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">getPts</a>(p)) incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a08ea2c3d891337992291123a1bb4da97">_PotentialNumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>] += incomingObjects.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  }</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</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>
|
|
867
869
|
<div class="ttc" id="cJSON_8cpp_html_a009ef1d888ab6dbe77e6b42b0b39f1ae"><div class="ttname"><a href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a></div><div class="ttdeci">cJSON * p</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02559">cJSON.cpp:2559</a></div></div>
|
|
868
870
|
<div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
|
|
869
871
|
<div class="ttc" id="classSVF_1_1Andersen_html_a187285a5bdf9422d9188b2b11b667639"><div class="ttname"><a href="classSVF_1_1Andersen.html#a187285a5bdf9422d9188b2b11b667639">SVF::Andersen::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID id)</div><div class="ttdoc">Operation of points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00207">Andersen.h:207</a></div></div>
|
|
@@ -937,8 +939,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
937
939
|
</div><div class="memdoc">
|
|
938
940
|
<p>TODO: change the condition here to fetch the points-to set </p>
|
|
939
941
|
|
|
940
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#
|
|
941
|
-
<div class="fragment"><div class="line"><a name="
|
|
942
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#l00273">273</a> of file <a class="el" href="FlowSensitiveStat_8cpp_source.html">FlowSensitiveStat.cpp</a>.</p>
|
|
943
|
+
<div class="fragment"><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>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aea1cb2baea2f3c4d2ef62656a56bd077">_NumOfNullPtr</a> = 0;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</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_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</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_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</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="l00277"></a><span class="lineno"> 277</span>  iter != eiter; ++iter)</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pagNodeId = iter->first;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = iter->second;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</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="l00282"></a><span class="lineno"> 282</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="l00283"></a><span class="lineno"> 283</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="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(pagNodeId);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">containBlackHoleNode</a>(pts))</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a767a935ec5bacd97f4fa79a05c165cc2">_NumOfConstantPtr</a>++;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">containConstantNode</a>(pts))</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>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a74ab9e235e08e4840223ddf0599a9da7">_NumOfBlackholePtr</a>++;</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>  <span class="keywordflow">if</span>(pts.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>())</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<DummyValVar>(pagNode) && !SVFUtil::isa<DummyObjVar>(pagNode))</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="comment">// if a pointer is in dead function, we do not care</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a0649699433c2fe299ecde41c93f3e4bf">isPtrInDeadFunction</a>(pagNode-><a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()) == <span class="keyword">false</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_1FlowSensitiveStat.html#aea1cb2baea2f3c4d2ef62656a56bd077">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</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="l00306"></a><span class="lineno"> 306</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="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</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>  }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aea1cb2baea2f3c4d2ef62656a56bd077">_NumOfNullPtr</a>++;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</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="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(rawstr.str());</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</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>  }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</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>
|
|
942
944
|
<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>
|
|
943
945
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVF::SVFStmt::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
944
946
|
<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>
|
|
@@ -992,8 +994,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
992
994
|
<p>Points-to size </p>
|
|
993
995
|
<p>get points-to set size information for top-level pointers. </p>
|
|
994
996
|
|
|
995
|
-
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#
|
|
996
|
-
<div class="fragment"><div class="line"><a name="
|
|
997
|
+
<p class="definition">Definition at line <a class="el" href="FlowSensitiveStat_8cpp_source.html#l00324">324</a> of file <a class="el" href="FlowSensitiveStat_8cpp_source.html">FlowSensitiveStat.cpp</a>.</p>
|
|
998
|
+
<div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="comment">// TODO: needs to be made to work for persistent.</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">if</span> (SVFUtil::isa<FlowSensitive::MutDFPTDataTy>(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>()))</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="comment">// stat of IN set</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">statInOutPtsSize</a>(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a9717517387c14c2e64c7ae3c3149bb57">getDFInputMap</a>(), <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="comment">// stat of OUT set</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">statInOutPtsSize</a>(<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1FlowSensitive.html#a661c4c1d5902c924060cc81219591d6f">getDFOutputMap</a>(), <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalValidTopLvlPointers = 0;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> topTopLvlPtsSize = 0;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</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_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</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_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</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="l00339"></a><span class="lineno"> 339</span>  iter != eiter; ++iter)</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="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node = iter->first;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(iter->second) == <span class="keyword">false</span>)</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> size = <a class="code" href="classSVF_1_1FlowSensitiveStat.html#af7e04f73ee17647c52e571cadef8729f">fspta</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(node).<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</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>  totalValidTopLvlPointers++;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  topTopLvlPtsSize+=size;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">if</span>(size > <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a>) <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a737d955e3707cf758a5580eab2e60e96">_MaxPtsSize</a> = size;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">if</span> (size > <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aecf324702d542f824e8b7a4d9827f557">_MaxTopLvlPtsSize</a>) <a class="code" href="classSVF_1_1FlowSensitiveStat.html#aecf324702d542f824e8b7a4d9827f557">_MaxTopLvlPtsSize</a> = size;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">if</span> (totalValidTopLvlPointers != 0)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a31235f25af7970142ef235681d2a447c">_AvgTopLvlPtsSize</a> = (double)topTopLvlPtsSize/totalValidTopLvlPointers;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8b5bfc9c3cbf9451603860789640246a">_TotalPtsSize</a> += topTopLvlPtsSize;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> totalPointer = totalValidTopLvlPointers + <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ad0b57a5d90c72b67337a68c04ae34739">IN</a>] + <a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">_NumOfVarHaveINOUTPts</a>[<a class="code" href="classSVF_1_1FlowSensitiveStat.html#ab11996ab5606f51c977b9b1385c13d71ac018f116c78ed5e314b52e5d743f3fa5">OUT</a>];</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">if</span> (totalPointer != 0)</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a07adfab66dd7ed22993e59ad3bf74946">_AvgPtsSize</a> = (double) <a class="code" href="classSVF_1_1FlowSensitiveStat.html#a8b5bfc9c3cbf9451603860789640246a">_TotalPtsSize</a> / totalPointer;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</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>
|
|
997
999
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a661c4c1d5902c924060cc81219591d6f"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a661c4c1d5902c924060cc81219591d6f">SVF::FlowSensitive::getDFOutputMap</a></div><div class="ttdeci">const DFInOutMap & getDFOutputMap() const</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00266">FlowSensitive.h:266</a></div></div>
|
|
998
1000
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ae94cea78b71fb75837ee2a17b5ed0e81"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">SVF::BVDataPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data structure. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00162">PointerAnalysisImpl.h:162</a></div></div>
|
|
999
1001
|
<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>
|
|
@@ -1009,7 +1011,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1009
1011
|
<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>
|
|
1010
1012
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a07adfab66dd7ed22993e59ad3bf74946"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a07adfab66dd7ed22993e59ad3bf74946">SVF::FlowSensitiveStat::_AvgPtsSize</a></div><div class="ttdeci">double _AvgPtsSize</div><div class="ttdoc">average points-to set size. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00156">WPAStat.h:156</a></div></div>
|
|
1011
1013
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a8b5bfc9c3cbf9451603860789640246a"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a8b5bfc9c3cbf9451603860789640246a">SVF::FlowSensitiveStat::_TotalPtsSize</a></div><div class="ttdeci">u32_t _TotalPtsSize</div><div class="ttdoc">total points-to set size. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00154">WPAStat.h:154</a></div></div>
|
|
1012
|
-
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a8ae7448f6210b6c759a33e6fc8a8cee8"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">SVF::FlowSensitiveStat::statInOutPtsSize</a></div><div class="ttdeci">void statInOutPtsSize(const DFInOutMap &data, ENUM_INOUT inOrOut)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#
|
|
1014
|
+
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a8ae7448f6210b6c759a33e6fc8a8cee8"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a8ae7448f6210b6c759a33e6fc8a8cee8">SVF::FlowSensitiveStat::statInOutPtsSize</a></div><div class="ttdeci">void statInOutPtsSize(const DFInOutMap &data, ENUM_INOUT inOrOut)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveStat_8cpp_source.html#l00363">FlowSensitiveStat.cpp:363</a></div></div>
|
|
1013
1015
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_a31235f25af7970142ef235681d2a447c"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#a31235f25af7970142ef235681d2a447c">SVF::FlowSensitiveStat::_AvgTopLvlPtsSize</a></div><div class="ttdeci">double _AvgTopLvlPtsSize</div><div class="ttdoc">average points-to set size in top-level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00157">WPAStat.h:157</a></div></div>
|
|
1014
1016
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_aecf324702d542f824e8b7a4d9827f557"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#aecf324702d542f824e8b7a4d9827f557">SVF::FlowSensitiveStat::_MaxTopLvlPtsSize</a></div><div class="ttdeci">u32_t _MaxTopLvlPtsSize</div><div class="ttdoc">max points-to set size in top-level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00151">WPAStat.h:151</a></div></div>
|
|
1015
1017
|
<div class="ttc" id="classSVF_1_1FlowSensitiveStat_html_ab6ccd8de2b7573f34c4d04b7f40d6522"><div class="ttname"><a href="classSVF_1_1FlowSensitiveStat.html#ab6ccd8de2b7573f34c4d04b7f40d6522">SVF::FlowSensitiveStat::_NumOfVarHaveINOUTPts</a></div><div class="ttdeci">u32_t _NumOfVarHaveINOUTPts[2]</div><div class="ttdoc">number of pag nodes which have points-to set in IN/OUT set. </div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00138">WPAStat.h:138</a></div></div>
|