svf-tools 1.0.792 → 1.0.794
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/AccessPath_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CDGBuilder_8cpp_source.html +132 -128
- package/SVF-doxygen/html/CDGBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/CHG_8cpp.html +2 -2
- package/SVF-doxygen/html/CHG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +5 -5
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFType_8cpp.html +2 -2
- package/SVF-doxygen/html/SVFType_8cpp_source.html +57 -55
- package/SVF-doxygen/html/SVFType_8h.html +2 -2
- package/SVF-doxygen/html/SVFType_8h_source.html +10 -10
- package/SVF-doxygen/html/SVFUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFValue_8cpp.html +46 -0
- package/SVF-doxygen/html/SVFValue_8cpp_source.html +266 -256
- package/SVF-doxygen/html/SVFValue_8h_source.html +14 -14
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/WTO_8h_source.html +211 -208
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +123 -119
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +174 -172
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html +17 -16
- package/SVF-doxygen/html/classSVF_1_1CHGraph.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SVFArrayType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFBasicBlock.html +63 -63
- package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +32 -32
- package/SVF-doxygen/html/classSVF_1_1SVFFunctionType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFInstruction.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFIntegerType.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SVFLoopAndDomInfo.html +116 -116
- package/SVF-doxygen/html/classSVF_1_1SVFOtherType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFPointerType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFStructType.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1SVFType.html +1 -10
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1StInfo-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1StInfo.html +14 -23
- package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
- package/SVF-doxygen/html/functions_a.html +1 -1
- package/SVF-doxygen/html/functions_func.html +1 -1
- package/SVF-doxygen/html/globals.html +2 -0
- package/SVF-doxygen/html/globals_func.html +2 -0
- package/SVF-doxygen/html/menudata.js +4 -2
- package/SVF-doxygen/html/namespaceSVF.html +40 -11
- package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +2 -2
- package/SVF-doxygen/html/namespacemembers.html +3 -36
- package/SVF-doxygen/html/namespacemembers_a.html +112 -0
- package/SVF-doxygen/html/namespacemembers_func.html +3 -6
- package/SVF-doxygen/html/namespacemembers_func_a.html +82 -0
- package/SVF-doxygen/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/search/all_1.js +1 -1
- package/SVF-doxygen/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/search/functions_0.js +1 -1
- package/SVF-doxygen/html/search/functions_1.js +1 -1
- package/SVF-doxygen/html/search/functions_f.js +1 -1
- package/package.json +1 -1
- package/svf/include/AbstractExecution/WTO.h +3 -0
- package/svf/lib/SVFIR/SVFType.cpp +2 -0
- package/svf/lib/SVFIR/SVFValue.cpp +7 -0
- package/svf/lib/Util/CDGBuilder.cpp +13 -9
- package/svf-llvm/CMakeLists.txt +1 -1
|
@@ -1102,7 +1102,7 @@ Friends</h2></td></tr>
|
|
|
1102
1102
|
<div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
|
|
1103
1103
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245acb3c4a3f685068e391025eb01ebf061d"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245acb3c4a3f685068e391025eb01ebf061d">SVF::AccessPath::NonOverlap</a></div><div class="ttdeci">@ NonOverlap</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
1104
1104
|
<div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00955">SVFValue.h:955</a></div></div>
|
|
1105
|
-
<div class="ttc" id="aclassSVF_1_1SVFType_html_a9035ac13134de4647d63507cd80ca3d6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">SVF::SVFType::toString</a></div><div class="ttdeci">std::string toString() const</div
|
|
1105
|
+
<div class="ttc" id="aclassSVF_1_1SVFType_html_a9035ac13134de4647d63507cd80ca3d6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">SVF::SVFType::toString</a></div><div class="ttdeci">std::string toString() const</div></div>
|
|
1106
1106
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_ab0641554924d44f16c2831cac63ccf8b"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">SVF::AccessPath::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const OffsetVarAndGepTypePairs & getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00106">AccessPath.h:106</a></div></div>
|
|
1107
1107
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00081">SymbolTableInfo.cpp:81</a></div></div>
|
|
1108
1108
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14">SVF::AccessPath::Superset</a></div><div class="ttdeci">@ Superset</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
@@ -220,14 +220,14 @@ Private Attributes</h2></td></tr>
|
|
|
220
220
|
<p>start here </p>
|
|
221
221
|
<p>Start here </p>
|
|
222
222
|
|
|
223
|
-
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#
|
|
224
|
-
<div class="fragment"><div class="line"><a name="
|
|
225
|
-
<div class="line"><a name="
|
|
226
|
-
<div class="line"><a name="
|
|
227
|
-
<div class="line"><a name="
|
|
228
|
-
<div class="line"><a name="
|
|
229
|
-
<div class="line"><a name="
|
|
230
|
-
<div class="line"><a name="
|
|
223
|
+
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00076">76</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
|
|
224
|
+
<div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> {</div>
|
|
225
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1CDGBuilder.html#abd60cdbb947fe63accc2fea3683b81e4">_controlDG</a>-><a class="code" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</a>() > 0)</div>
|
|
226
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span>;</div>
|
|
227
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classSVF_1_1SVFIR.html">PAG</a> *pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
|
|
228
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#aa57921c1c3002e7e35cfb6b113cd8031">buildControlDependence</a>(pag-><a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>());</div>
|
|
229
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d">buildICFGNodeControlMap</a>();</div>
|
|
230
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div>
|
|
231
231
|
</div><!-- fragment -->
|
|
232
232
|
</div>
|
|
233
233
|
</div>
|
|
@@ -256,37 +256,43 @@ Private Attributes</h2></td></tr>
|
|
|
256
256
|
</dd>
|
|
257
257
|
</dl>
|
|
258
258
|
|
|
259
|
-
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#
|
|
260
|
-
<div class="fragment"><div class="line"><a name="
|
|
261
|
-
<div class="line"><a name="
|
|
262
|
-
<div class="line"><a name="
|
|
263
|
-
<div class="line"><a name="
|
|
264
|
-
<div class="line"><a name="
|
|
265
|
-
<div class="line"><a name="
|
|
266
|
-
<div class="line"><a name="
|
|
267
|
-
<div class="line"><a name="
|
|
268
|
-
<div class="line"><a name="
|
|
269
|
-
<div class="line"><a name="
|
|
270
|
-
<div class="line"><a name="
|
|
271
|
-
<div class="line"><a name="
|
|
272
|
-
<div class="line"><a name="
|
|
273
|
-
<div class="line"><a name="
|
|
274
|
-
<div class="line"><a name="
|
|
275
|
-
<div class="line"><a name="
|
|
276
|
-
<div class="line"><a name="
|
|
277
|
-
<div class="line"><a name="
|
|
278
|
-
<div class="line"><a name="
|
|
279
|
-
<div class="line"><a name="
|
|
280
|
-
<div class="line"><a name="
|
|
281
|
-
<div class="line"><a name="
|
|
282
|
-
<div class="line"><a name="
|
|
283
|
-
<div class="line"><a name="
|
|
284
|
-
<div class="line"><a name="
|
|
285
|
-
<div class="line"><a name="
|
|
286
|
-
<div class="line"><a name="
|
|
287
|
-
<div class="line"><a name="
|
|
288
|
-
<div class="line"><a name="
|
|
289
|
-
<div class="line"><a name="
|
|
259
|
+
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00123">123</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
|
|
260
|
+
<div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div>
|
|
261
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &svfFun: *svfgModule)</div>
|
|
262
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div>
|
|
263
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(svfFun)) <span class="keywordflow">continue</span>;</div>
|
|
264
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// extract basic block edges to be processed</span></div>
|
|
265
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock *, std::vector<const SVFBasicBlock *></a>> BBS;</div>
|
|
266
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#ac0b9dae9bae020608e293b1288bb988b">extractBBS</a>(svfFun, BBS);</div>
|
|
267
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
|
|
268
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: BBS)</div>
|
|
269
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  {</div>
|
|
270
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *pred = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first;</div>
|
|
271
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// for each bb pair</span></div>
|
|
272
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *succ: <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second)</div>
|
|
273
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  {</div>
|
|
274
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *SVFLCA = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<span class="keyword">></span>(svfFun)-></div>
|
|
275
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  getLoopAndDomInfo()->findNearestCommonPDominator(pred, succ);</div>
|
|
276
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  std::vector<const SVFBasicBlock *> tgtNodes;</div>
|
|
277
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// no common ancestor, may be exit()</span></div>
|
|
278
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span> (SVFLCA == <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
279
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  tgtNodes.push_back(succ);</div>
|
|
280
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">else</span></div>
|
|
281
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  {</div>
|
|
282
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">if</span> (SVFLCA == pred) tgtNodes.push_back(SVFLCA);</div>
|
|
283
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// from succ to LCA</span></div>
|
|
284
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#a6a7139139b2f0124e1729036490886db">extractNodesBetweenPdomNodes</a>(succ, SVFLCA, tgtNodes);</div>
|
|
285
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div>
|
|
286
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div>
|
|
287
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> pos = <a class="code" href="classSVF_1_1CDGBuilder.html#af65f6090142a61d13e1510c771baaeb1">getBBSuccessorBranchID</a>(pred, succ);</div>
|
|
288
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *bb: tgtNodes)</div>
|
|
289
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  {</div>
|
|
290
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#a55d97ecc3c08999d54f11ba051db3abf">updateMap</a>(pred, bb, pos);</div>
|
|
291
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div>
|
|
292
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div>
|
|
293
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div>
|
|
294
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div>
|
|
295
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }</div>
|
|
290
296
|
</div><!-- fragment -->
|
|
291
297
|
</div>
|
|
292
298
|
</div>
|
|
@@ -308,36 +314,36 @@ Private Attributes</h2></td></tr>
|
|
|
308
314
|
<p>build map at icfg node level </p>
|
|
309
315
|
<p>Build map at <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> node level </p>
|
|
310
316
|
|
|
311
|
-
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#
|
|
312
|
-
<div class="fragment"><div class="line"><a name="
|
|
313
|
-
<div class="line"><a name="
|
|
314
|
-
<div class="line"><a name="
|
|
315
|
-
<div class="line"><a name="
|
|
316
|
-
<div class="line"><a name="
|
|
317
|
-
<div class="line"><a name="
|
|
318
|
-
<div class="line"><a name="
|
|
319
|
-
<div class="line"><a name="
|
|
320
|
-
<div class="line"><a name="
|
|
321
|
-
<div class="line"><a name="
|
|
322
|
-
<div class="line"><a name="
|
|
323
|
-
<div class="line"><a name="
|
|
324
|
-
<div class="line"><a name="
|
|
325
|
-
<div class="line"><a name="
|
|
326
|
-
<div class="line"><a name="
|
|
327
|
-
<div class="line"><a name="
|
|
328
|
-
<div class="line"><a name="
|
|
329
|
-
<div class="line"><a name="
|
|
330
|
-
<div class="line"><a name="
|
|
331
|
-
<div class="line"><a name="
|
|
332
|
-
<div class="line"><a name="
|
|
333
|
-
<div class="line"><a name="
|
|
334
|
-
<div class="line"><a name="
|
|
335
|
-
<div class="line"><a name="
|
|
336
|
-
<div class="line"><a name="
|
|
337
|
-
<div class="line"><a name="
|
|
338
|
-
<div class="line"><a name="
|
|
339
|
-
<div class="line"><a name="
|
|
340
|
-
<div class="line"><a name="
|
|
317
|
+
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00185">185</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
|
|
318
|
+
<div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> {</div>
|
|
319
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="classSVF_1_1ICFG.html">ICFG</a> *icfg = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
|
|
320
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: <a class="code" href="classSVF_1_1CDGBuilder.html#ab24b985813e362f9470593e615c4c613">_svfcontrolMap</a>)</div>
|
|
321
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {</div>
|
|
322
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it2: it.second)</div>
|
|
323
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div>
|
|
324
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *controllingBB = it2.first;</div>
|
|
325
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// const ICFGNode *controlNode = _bbToNode[it.first].first;</span></div>
|
|
326
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// if(!controlNode) continue;</span></div>
|
|
327
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a> *terminator = it.first->getInstructionList().back();</div>
|
|
328
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">if</span> (!terminator) <span class="keywordflow">continue</span>;</div>
|
|
329
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *controlNode = icfg-><a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(terminator);</div>
|
|
330
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">if</span> (!controlNode) <span class="keywordflow">continue</span>;</div>
|
|
331
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">// controlNode control at pos</span></div>
|
|
332
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &inst: *controllingBB)</div>
|
|
333
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div>
|
|
334
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *controllee = icfg-><a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst);</div>
|
|
335
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#a0774da5d81fe9e454800c63f2ada4a00">_nodeControlMap</a>[controlNode][controllee].insert(it2.second.begin(), it2.second.end());</div>
|
|
336
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#ae62cf8bbe09fcccbace46375f5b043f8">_nodeDependentOnMap</a>[controllee][controlNode].insert(it2.second.begin(), it2.second.end());</div>
|
|
337
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> pos: it2.second)</div>
|
|
338
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div>
|
|
339
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#abd60cdbb947fe63accc2fea3683b81e4">_controlDG</a>-><a class="code" href="classSVF_1_1CDG.html#a71ccf9520bb222dc0779716e213aabf2">addCDGEdgeFromSrcDst</a>(controlNode, controllee,</div>
|
|
340
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  SVFUtil::dyn_cast<IntraICFGNode>(controlNode)->getInst(),</div>
|
|
341
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  pos);</div>
|
|
342
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div>
|
|
343
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
|
|
344
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
|
|
345
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
|
346
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> }</div>
|
|
341
347
|
</div><!-- fragment -->
|
|
342
348
|
</div>
|
|
343
349
|
</div>
|
|
@@ -456,18 +462,18 @@ Private Attributes</h2></td></tr>
|
|
|
456
462
|
</dd>
|
|
457
463
|
</dl>
|
|
458
464
|
|
|
459
|
-
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#
|
|
460
|
-
<div class="fragment"><div class="line"><a name="
|
|
461
|
-
<div class="line"><a name="
|
|
462
|
-
<div class="line"><a name="
|
|
463
|
-
<div class="line"><a name="
|
|
464
|
-
<div class="line"><a name="
|
|
465
|
-
<div class="line"><a name="
|
|
466
|
-
<div class="line"><a name="
|
|
467
|
-
<div class="line"><a name="
|
|
468
|
-
<div class="line"><a name="
|
|
469
|
-
<div class="line"><a name="
|
|
470
|
-
<div class="line"><a name="
|
|
465
|
+
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00168">168</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
|
|
466
|
+
<div class="fragment"><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> {</div>
|
|
467
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &bb: *func)</div>
|
|
468
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  {</div>
|
|
469
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &succ: bb->getSuccessors())</div>
|
|
470
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  {</div>
|
|
471
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span> (func->postDominate(succ, bb))</div>
|
|
472
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">continue</span>;</div>
|
|
473
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  res[bb].push_back(succ);</div>
|
|
474
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div>
|
|
475
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div>
|
|
476
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> }</div>
|
|
471
477
|
</div><!-- fragment -->
|
|
472
478
|
</div>
|
|
473
479
|
</div>
|
|
@@ -523,16 +529,11 @@ Private Attributes</h2></td></tr>
|
|
|
523
529
|
|
|
524
530
|
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00064">64</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
|
|
525
531
|
<div class="fragment"><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div>
|
|
526
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (
|
|
527
|
-
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> 
|
|
528
|
-
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> 
|
|
529
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> 
|
|
530
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> 
|
|
531
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (succ == LCA) <span class="keywordflow">return</span>;</div>
|
|
532
|
-
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  std::vector<const SVFBasicBlock *> path;</div>
|
|
533
|
-
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a> *ld = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<span class="keyword">></span>(LCA-><a class="code" href="classSVF_1_1SVFBasicBlock.html#aeaa9b2b4e802d9e6bed138eaf3186d09">getFunction</a>())->getLoopAndDomInfo();</div>
|
|
534
|
-
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#a6efa510f946ea8befebbc94bed241395">dfsNodesBetweenPdomNodes</a>(LCA, succ, path, tgtNodes, ld);</div>
|
|
535
|
-
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div>
|
|
532
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (succ == LCA) <span class="keywordflow">return</span>;</div>
|
|
533
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  std::vector<const SVFBasicBlock *> path;</div>
|
|
534
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a> *ld = <span class="keyword">const_cast<</span><a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<span class="keyword">></span>(LCA-><a class="code" href="classSVF_1_1SVFBasicBlock.html#aeaa9b2b4e802d9e6bed138eaf3186d09">getFunction</a>())->getLoopAndDomInfo();</div>
|
|
535
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <a class="code" href="classSVF_1_1CDGBuilder.html#a6efa510f946ea8befebbc94bed241395">dfsNodesBetweenPdomNodes</a>(LCA, succ, path, tgtNodes, ld);</div>
|
|
536
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div>
|
|
536
537
|
</div><!-- fragment -->
|
|
537
538
|
</div>
|
|
538
539
|
</div>
|
|
@@ -570,29 +571,32 @@ Private Attributes</h2></td></tr>
|
|
|
570
571
|
</table>
|
|
571
572
|
</div><div class="memdoc">
|
|
572
573
|
|
|
573
|
-
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#
|
|
574
|
-
<div class="fragment"><div class="line"><a name="
|
|
575
|
-
<div class="line"><a name="
|
|
576
|
-
<div class="line"><a name="
|
|
577
|
-
<div class="line"><a name="
|
|
578
|
-
<div class="line"><a name="
|
|
579
|
-
<div class="line"><a name="
|
|
580
|
-
<div class="line"><a name="
|
|
581
|
-
<div class="line"><a name="
|
|
582
|
-
<div class="line"><a name="
|
|
583
|
-
<div class="line"><a name="
|
|
584
|
-
<div class="line"><a name="
|
|
585
|
-
<div class="line"><a name="
|
|
586
|
-
<div class="line"><a name="
|
|
587
|
-
<div class="line"><a name="
|
|
588
|
-
<div class="line"><a name="
|
|
589
|
-
<div class="line"><a name="
|
|
590
|
-
<div class="line"><a name="
|
|
591
|
-
<div class="line"><a name="
|
|
592
|
-
<div class="line"><a name="
|
|
593
|
-
<div class="line"><a name="
|
|
594
|
-
<div class="line"><a name="
|
|
595
|
-
<div class="line"><a name="
|
|
574
|
+
<p class="definition">Definition at line <a class="el" href="CDGBuilder_8cpp_source.html#l00086">86</a> of file <a class="el" href="CDGBuilder_8cpp_source.html">CDGBuilder.cpp</a>.</p>
|
|
575
|
+
<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> {</div>
|
|
576
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classSVF_1_1ICFG.html">ICFG</a> *icfg = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
|
|
577
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *pred = icfg-><a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(BB-><a class="code" href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">getTerminator</a>());</div>
|
|
578
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *edge = <span class="keyword">nullptr</span>;</div>
|
|
579
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &inst: Succ-><a class="code" href="classSVF_1_1SVFBasicBlock.html#a8cb9cc170c9693b9bfe9a0f7a65a618e">getInstructionList</a>())</div>
|
|
580
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div>
|
|
581
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *e = icfg-><a class="code" href="classSVF_1_1ICFG.html#a5dd4ac55123501c47c628adcf27e2475">getICFGEdge</a>(pred, icfg-><a class="code" href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">getICFGNode</a>(inst), ICFGEdge::ICFGEdgeK::IntraCF))</div>
|
|
582
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div>
|
|
583
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  edge = e;</div>
|
|
584
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">break</span>;</div>
|
|
585
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div>
|
|
586
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div>
|
|
587
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a> *intraEdge = SVFUtil::dyn_cast<IntraCFGEdge>(edge))</div>
|
|
588
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div>
|
|
589
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span>(intraEdge->getCondition())</div>
|
|
590
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> intraEdge->getSuccessorCondValue();</div>
|
|
591
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">else</span></div>
|
|
592
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">return</span> 0;</div>
|
|
593
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div>
|
|
594
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">else</span></div>
|
|
595
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div>
|
|
596
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not intra edge?"</span>);</div>
|
|
597
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  abort();</div>
|
|
598
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div>
|
|
599
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> }</div>
|
|
596
600
|
</div><!-- fragment -->
|
|
597
601
|
</div>
|
|
598
602
|
</div>
|
|
@@ -787,7 +791,7 @@ Private Attributes</h2></td></tr>
|
|
|
787
791
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a0774da5d81fe9e454800c63f2ada4a00"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a0774da5d81fe9e454800c63f2ada4a00">SVF::CDGBuilder::_nodeControlMap</a></div><div class="ttdeci">Map< const ICFGNode *, Map< const ICFGNode *, Set< s32_t > > > _nodeControlMap</div><div class="ttdoc">map an ICFG node to its controlling ICFG nodes (position, set of Nodes)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00101">CDGBuilder.h:101</a></div></div>
|
|
788
792
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ab24b985813e362f9470593e615c4c613"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ab24b985813e362f9470593e615c4c613">SVF::CDGBuilder::_svfcontrolMap</a></div><div class="ttdeci">Map< const SVFBasicBlock *, Map< const SVFBasicBlock *, Set< s32_t > > > _svfcontrolMap</div><div class="ttdoc">map a basicblock to its controlling BBs (position, set of BBs)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00099">CDGBuilder.h:99</a></div></div>
|
|
789
793
|
<div class="ttc" id="aclassSVF_1_1CDG_html_aadc90afbdeff9aae0365cde7b96ae9bc"><div class="ttname"><a href="classSVF_1_1CDG.html#aadc90afbdeff9aae0365cde7b96ae9bc">SVF::CDG::getCDG</a></div><div class="ttdeci">static CDG * getCDG()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00149">CDG.h:149</a></div></div>
|
|
790
|
-
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_af65f6090142a61d13e1510c771baaeb1"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#af65f6090142a61d13e1510c771baaeb1">SVF::CDGBuilder::getBBSuccessorBranchID</a></div><div class="ttdeci">s64_t getBBSuccessorBranchID(const SVFBasicBlock *BB, const SVFBasicBlock *Succ)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#
|
|
794
|
+
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_af65f6090142a61d13e1510c771baaeb1"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#af65f6090142a61d13e1510c771baaeb1">SVF::CDGBuilder::getBBSuccessorBranchID</a></div><div class="ttdeci">s64_t getBBSuccessorBranchID(const SVFBasicBlock *BB, const SVFBasicBlock *Succ)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00086">CDGBuilder.cpp:86</a></div></div>
|
|
791
795
|
<div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
|
|
792
796
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ae62cf8bbe09fcccbace46375f5b043f8"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ae62cf8bbe09fcccbace46375f5b043f8">SVF::CDGBuilder::_nodeDependentOnMap</a></div><div class="ttdeci">Map< const ICFGNode *, Map< const ICFGNode *, Set< s32_t > > > _nodeDependentOnMap</div><div class="ttdoc">map an ICFG node to its dependent on ICFG nodes (position, set of Nodes)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00102">CDGBuilder.h:102</a></div></div>
|
|
793
797
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00517">SVFValue.h:517</a></div></div>
|
|
@@ -795,12 +799,12 @@ Private Attributes</h2></td></tr>
|
|
|
795
799
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a6a7139139b2f0124e1729036490886db"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a6a7139139b2f0124e1729036490886db">SVF::CDGBuilder::extractNodesBetweenPdomNodes</a></div><div class="ttdeci">void extractNodesBetweenPdomNodes(const SVFBasicBlock *succ, const SVFBasicBlock *LCA, std::vector< const SVFBasicBlock * > &tgtNodes)</div><div class="ttdoc">extract nodes between two nodes in pdom tree</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00064">CDGBuilder.cpp:64</a></div></div>
|
|
796
800
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a243ef2e6fa014ab5814a2200f92cc93e"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a243ef2e6fa014ab5814a2200f92cc93e">SVF::CDGBuilder::_svfdependentOnMap</a></div><div class="ttdeci">Map< const SVFBasicBlock *, Map< const SVFBasicBlock *, Set< s32_t > > > _svfdependentOnMap</div><div class="ttdoc">map a basicblock to its dependent on BBs (position, set of BBs)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00100">CDGBuilder.h:100</a></div></div>
|
|
797
801
|
<div class="ttc" id="aclassSVF_1_1ICFG_html_a5f2c0aaba07d6fdd63058da0fb60ca8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f2c0aaba07d6fdd63058da0fb60ca8b">SVF::ICFG::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode(NodeID id) const</div><div class="ttdoc">Get a ICFG node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00088">ICFG.h:88</a></div></div>
|
|
798
|
-
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#
|
|
802
|
+
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a10707086ce21999f415c479706abbd38"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a10707086ce21999f415c479706abbd38">SVF::SVFBasicBlock::getTerminator</a></div><div class="ttdeci">const SVFInstruction * getTerminator() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00232">SVFValue.cpp:232</a></div></div>
|
|
799
803
|
<div class="ttc" id="aclassSVF_1_1IntraCFGEdge_html"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html">SVF::IntraCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00113">ICFGEdge.h:113</a></div></div>
|
|
800
|
-
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ab56c8f3ab29a907d420622dd8e933f0d"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d">SVF::CDGBuilder::buildICFGNodeControlMap</a></div><div class="ttdeci">void buildICFGNodeControlMap()</div><div class="ttdoc">build map at icfg node level</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#
|
|
804
|
+
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ab56c8f3ab29a907d420622dd8e933f0d"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d">SVF::CDGBuilder::buildICFGNodeControlMap</a></div><div class="ttdeci">void buildICFGNodeControlMap()</div><div class="ttdoc">build map at icfg node level</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00185">CDGBuilder.cpp:185</a></div></div>
|
|
801
805
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
802
806
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a55d97ecc3c08999d54f11ba051db3abf"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a55d97ecc3c08999d54f11ba051db3abf">SVF::CDGBuilder::updateMap</a></div><div class="ttdeci">void updateMap(const SVFBasicBlock *pred, const SVFBasicBlock *bb, s32_t pos)</div><div class="ttdoc">update map</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00090">CDGBuilder.h:90</a></div></div>
|
|
803
|
-
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_aa57921c1c3002e7e35cfb6b113cd8031"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#aa57921c1c3002e7e35cfb6b113cd8031">SVF::CDGBuilder::buildControlDependence</a></div><div class="ttdeci">void buildControlDependence(const SVFModule *svfgModule)</div><div class="ttdoc">build control dependence for each function</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#
|
|
807
|
+
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_aa57921c1c3002e7e35cfb6b113cd8031"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#aa57921c1c3002e7e35cfb6b113cd8031">SVF::CDGBuilder::buildControlDependence</a></div><div class="ttdeci">void buildControlDependence(const SVFModule *svfgModule)</div><div class="ttdoc">build control dependence for each function</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00123">CDGBuilder.cpp:123</a></div></div>
|
|
804
808
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_abd60cdbb947fe63accc2fea3683b81e4"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#abd60cdbb947fe63accc2fea3683b81e4">SVF::CDGBuilder::_controlDG</a></div><div class="ttdeci">CDG * _controlDG</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00098">CDGBuilder.h:98</a></div></div>
|
|
805
809
|
<div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
|
|
806
810
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00309">SVFUtil.h:309</a></div></div>
|
|
@@ -818,7 +822,7 @@ Private Attributes</h2></td></tr>
|
|
|
818
822
|
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00620">SVFValue.h:620</a></div></div>
|
|
819
823
|
<div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00054">SVFType.h:54</a></div></div>
|
|
820
824
|
<div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
|
|
821
|
-
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ac0b9dae9bae020608e293b1288bb988b"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ac0b9dae9bae020608e293b1288bb988b">SVF::CDGBuilder::extractBBS</a></div><div class="ttdeci">static void extractBBS(const SVFFunction *func, Map< const SVFBasicBlock *, std::vector< const SVFBasicBlock * >> &res)</div><div class="ttdoc">extract basic block edges to be processed</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#
|
|
825
|
+
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_ac0b9dae9bae020608e293b1288bb988b"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#ac0b9dae9bae020608e293b1288bb988b">SVF::CDGBuilder::extractBBS</a></div><div class="ttdeci">static void extractBBS(const SVFFunction *func, Map< const SVFBasicBlock *, std::vector< const SVFBasicBlock * >> &res)</div><div class="ttdoc">extract basic block edges to be processed</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00168">CDGBuilder.cpp:168</a></div></div>
|
|
822
826
|
<!-- start footer part -->
|
|
823
827
|
<hr class="footer"/><address class="footer"><small>
|
|
824
828
|
Generated by  <a href="http://www.doxygen.org/index.html">
|