svf-tools 1.0.785 → 1.0.787
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/CDGBuilder_8cpp_source.html +128 -122
- package/SVF-doxygen/html/CDGBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/CFBasicBlockG_8cpp_source.html +63 -66
- package/SVF-doxygen/html/CFBasicBlockG_8h_source.html +250 -282
- package/SVF-doxygen/html/CHG_8cpp.html +2 -2
- package/SVF-doxygen/html/CHG_8cpp_source.html +3 -3
- 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/SVFUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFValue_8cpp_source.html +144 -141
- package/SVF-doxygen/html/SVFValue_8h_source.html +9 -9
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CDGBuilder.html +119 -113
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGBuilder.html +69 -72
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph-members.html +28 -33
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGraph.html +109 -274
- package/SVF-doxygen/html/classSVF_1_1CHGraph.html +2 -2
- 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_1SVFBasicBlock.html +63 -63
- package/SVF-doxygen/html/classSVF_1_1SVFFunction.html +28 -28
- 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_1SVFLoopAndDomInfo.html +25 -22
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
- package/SVF-doxygen/html/functions.html +0 -3
- package/SVF-doxygen/html/functions_func_g.html +20 -23
- package/SVF-doxygen/html/functions_func_h.html +3 -3
- package/SVF-doxygen/html/functions_func_s.html +22 -25
- package/SVF-doxygen/html/functions_g.html +12 -15
- package/SVF-doxygen/html/functions_h.html +4 -4
- package/SVF-doxygen/html/functions_n.html +4 -4
- package/SVF-doxygen/html/functions_o.html +18 -18
- package/SVF-doxygen/html/functions_p.html +17 -21
- package/SVF-doxygen/html/functions_r.html +5 -5
- package/SVF-doxygen/html/functions_s.html +23 -24
- package/SVF-doxygen/html/functions_t.html +7 -7
- package/SVF-doxygen/html/functions_v.html +3 -3
- package/SVF-doxygen/html/functions_vars.html +0 -3
- package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +2 -2
- package/SVF-doxygen/html/search/all_0.js +141 -142
- package/SVF-doxygen/html/search/all_1.js +484 -484
- package/SVF-doxygen/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/search/all_11.js +224 -224
- package/SVF-doxygen/html/search/all_12.js +542 -543
- package/SVF-doxygen/html/search/all_13.js +190 -190
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +172 -172
- package/SVF-doxygen/html/search/all_2.js +167 -167
- package/SVF-doxygen/html/search/all_3.js +640 -640
- package/SVF-doxygen/html/search/all_4.js +233 -233
- package/SVF-doxygen/html/search/all_5.js +121 -121
- package/SVF-doxygen/html/search/all_6.js +225 -225
- package/SVF-doxygen/html/search/all_7.js +1038 -1039
- package/SVF-doxygen/html/search/all_8.js +195 -195
- package/SVF-doxygen/html/search/all_9.js +607 -607
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +116 -116
- package/SVF-doxygen/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +80 -80
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +21 -21
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +53 -53
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +12 -12
- package/SVF-doxygen/html/search/functions_1.js +356 -356
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +138 -138
- package/SVF-doxygen/html/search/functions_12.js +277 -278
- package/SVF-doxygen/html/search/functions_13.js +58 -58
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +172 -172
- package/SVF-doxygen/html/search/functions_2.js +86 -86
- package/SVF-doxygen/html/search/functions_3.js +257 -257
- package/SVF-doxygen/html/search/functions_4.js +75 -75
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +59 -59
- package/SVF-doxygen/html/search/functions_7.js +849 -850
- package/SVF-doxygen/html/search/functions_8.js +147 -147
- package/SVF-doxygen/html/search/functions_9.js +425 -425
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +26 -26
- package/SVF-doxygen/html/search/functions_d.js +77 -77
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +61 -61
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +55 -55
- package/SVF-doxygen/html/search/typedefs_7.js +42 -42
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +152 -153
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/search/variables_12.js +92 -92
- package/SVF-doxygen/html/search/variables_13.js +75 -75
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +37 -37
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +55 -55
- package/SVF-doxygen/html/search/variables_5.js +39 -39
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +40 -40
- package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFBasicBlockNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFBasicBlockNode_01_5_01_4.html +1 -1
- package/package.json +1 -1
- package/svf/include/Graphs/CFBasicBlockG.h +0 -27
- package/svf/lib/Graphs/CFBasicBlockG.cpp +0 -2
- package/svf/lib/SVFIR/SVFValue.cpp +2 -0
- package/svf/lib/Util/CDGBuilder.cpp +5 -0
|
@@ -128,123 +128,128 @@ $(function() {
|
|
|
128
128
|
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1CDGBuilder.html#a6a7139139b2f0124e1729036490886db"> 64</a></span> <a class="code" href="classSVF_1_1CDGBuilder.html#a6a7139139b2f0124e1729036490886db">CDGBuilder::extractNodesBetweenPdomNodes</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *succ, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *LCA,</div>
|
|
129
129
|
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  std::vector<const SVFBasicBlock *> &tgtNodes)</div>
|
|
130
130
|
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> {</div>
|
|
131
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (
|
|
132
|
-
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> 
|
|
133
|
-
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> 
|
|
134
|
-
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> 
|
|
135
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div>
|
|
136
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
|
|
137
|
-
<div class="line"><a name="
|
|
138
|
-
<div class="line"><a name="
|
|
139
|
-
<div class="line"><a name="
|
|
140
|
-
<div class="line"><a name="
|
|
141
|
-
<div class="line"><a name="
|
|
142
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> 
|
|
143
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> 
|
|
144
|
-
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> 
|
|
145
|
-
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
|
146
|
-
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
|
|
147
|
-
<div class="line"><a name="l00086"></a><span class="lineno"
|
|
148
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> 
|
|
149
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> 
|
|
150
|
-
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> 
|
|
151
|
-
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> 
|
|
152
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> 
|
|
153
|
-
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> 
|
|
154
|
-
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> 
|
|
155
|
-
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> 
|
|
156
|
-
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> 
|
|
157
|
-
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> 
|
|
158
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> 
|
|
159
|
-
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> 
|
|
160
|
-
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> 
|
|
161
|
-
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> 
|
|
162
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> 
|
|
163
|
-
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> 
|
|
164
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> 
|
|
165
|
-
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> 
|
|
166
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> 
|
|
167
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> 
|
|
131
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (LCA == <a class="code" href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a>)</div>
|
|
132
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  {</div>
|
|
133
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  tgtNodes.push_back(succ);</div>
|
|
134
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span>;</div>
|
|
135
|
+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div>
|
|
136
|
+
<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>
|
|
137
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  std::vector<const SVFBasicBlock *> path;</div>
|
|
138
|
+
<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>
|
|
139
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  dfsNodesBetweenPdomNodes(LCA, succ, path, tgtNodes, ld);</div>
|
|
140
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div>
|
|
141
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
|
|
142
|
+
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1CDGBuilder.html#aeeb38d897babfeff1844c643dda8ae97"> 81</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CDGBuilder.html#aeeb38d897babfeff1844c643dda8ae97">CDGBuilder::build</a>()</div>
|
|
143
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div>
|
|
144
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span> (_controlDG->getTotalNodeNum() > 0)</div>
|
|
145
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span>;</div>
|
|
146
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</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>
|
|
147
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  buildControlDependence(pag-><a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>());</div>
|
|
148
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  buildICFGNodeControlMap();</div>
|
|
149
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> }</div>
|
|
150
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
|
|
151
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
|
152
|
+
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1CDGBuilder.html#af65f6090142a61d13e1510c771baaeb1"> 91</a></span> <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="classSVF_1_1CDGBuilder.html#af65f6090142a61d13e1510c771baaeb1">CDGBuilder::getBBSuccessorBranchID</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *BB, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *Succ)</div>
|
|
153
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div>
|
|
154
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</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>
|
|
155
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</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>
|
|
156
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *edge = <span class="keyword">nullptr</span>;</div>
|
|
157
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</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>
|
|
158
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div>
|
|
159
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</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>
|
|
160
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  {</div>
|
|
161
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  edge = e;</div>
|
|
162
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">break</span>;</div>
|
|
163
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
|
|
164
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div>
|
|
165
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</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>
|
|
166
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div>
|
|
167
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> intraEdge->getSuccessorCondValue();</div>
|
|
168
168
|
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div>
|
|
169
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
170
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 
|
|
171
|
-
<div class="line"><a name="
|
|
172
|
-
<div class="line"><a name="
|
|
173
|
-
<div class="line"><a name="
|
|
174
|
-
<div class="line"><a name="
|
|
175
|
-
<div class="line"><a name="
|
|
176
|
-
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> 
|
|
177
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> 
|
|
178
|
-
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> 
|
|
179
|
-
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> 
|
|
180
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">
|
|
181
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> 
|
|
182
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> 
|
|
183
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> 
|
|
184
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> 
|
|
185
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> 
|
|
186
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> 
|
|
187
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> 
|
|
188
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> 
|
|
189
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> 
|
|
190
|
-
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> 
|
|
191
|
-
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> 
|
|
192
|
-
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> 
|
|
193
|
-
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> 
|
|
194
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">
|
|
195
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> 
|
|
196
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> 
|
|
197
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> 
|
|
198
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> 
|
|
199
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> 
|
|
200
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> 
|
|
201
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> 
|
|
202
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> 
|
|
203
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> 
|
|
204
|
-
<div class="line"><a name="
|
|
205
|
-
<div class="line"><a name="
|
|
206
|
-
<div class="line"><a name="
|
|
207
|
-
<div class="line"><a name="
|
|
208
|
-
<div class="line"><a name="
|
|
209
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> 
|
|
210
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
211
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> 
|
|
212
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> 
|
|
213
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
214
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> 
|
|
215
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> 
|
|
216
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> 
|
|
217
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
|
|
218
|
-
<div class="line"><a name="
|
|
219
|
-
<div class="line"><a name="
|
|
220
|
-
<div class="line"><a name="
|
|
221
|
-
<div class="line"><a name="
|
|
222
|
-
<div class="line"><a name="
|
|
223
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> 
|
|
224
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> 
|
|
225
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> 
|
|
226
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> 
|
|
227
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> 
|
|
228
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> 
|
|
229
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> 
|
|
230
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keyword">const</span> <a class="code" href="
|
|
231
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="
|
|
232
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">//
|
|
233
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="
|
|
234
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
235
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
236
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> 
|
|
237
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> 
|
|
238
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> 
|
|
239
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> 
|
|
240
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> 
|
|
241
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> 
|
|
242
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> 
|
|
243
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> 
|
|
244
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
|
|
245
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> 
|
|
246
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> 
|
|
247
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> 
|
|
169
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">else</span></div>
|
|
170
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div>
|
|
171
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not intra edge?"</span>);</div>
|
|
172
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  abort();</div>
|
|
173
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div>
|
|
174
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div>
|
|
175
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
|
|
176
|
+
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1CDGBuilder.html#aa57921c1c3002e7e35cfb6b113cd8031"> 125</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CDGBuilder.html#aa57921c1c3002e7e35cfb6b113cd8031">CDGBuilder::buildControlDependence</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a> *svfgModule)</div>
|
|
177
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> {</div>
|
|
178
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &svfFun: *svfgModule)</div>
|
|
179
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div>
|
|
180
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</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>
|
|
181
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// extract basic block edges to be processed</span></div>
|
|
182
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock *, std::vector<const SVFBasicBlock *></a>> BBS;</div>
|
|
183
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  extractBBS(svfFun, BBS);</div>
|
|
184
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
|
185
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</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>
|
|
186
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div>
|
|
187
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</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>
|
|
188
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="comment">// for each bb pair</span></div>
|
|
189
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</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>
|
|
190
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div>
|
|
191
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</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>
|
|
192
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  getLoopAndDomInfo()->findNearestCommonPDominator(pred, succ);</div>
|
|
193
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  std::vector<const SVFBasicBlock *> tgtNodes;</div>
|
|
194
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">if</span> (SVFLCA == pred) tgtNodes.push_back(SVFLCA);</div>
|
|
195
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// from succ to LCA</span></div>
|
|
196
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  extractNodesBetweenPdomNodes(succ, SVFLCA, tgtNodes);</div>
|
|
197
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
|
198
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> pos = getBBSuccessorBranchID(pred, succ);</div>
|
|
199
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *bb: tgtNodes)</div>
|
|
200
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  {</div>
|
|
201
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  updateMap(pred, bb, pos);</div>
|
|
202
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div>
|
|
203
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div>
|
|
204
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div>
|
|
205
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div>
|
|
206
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> }</div>
|
|
207
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div>
|
|
208
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div>
|
|
209
|
+
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1CDGBuilder.html#ac0b9dae9bae020608e293b1288bb988b"> 164</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CDGBuilder.html#ac0b9dae9bae020608e293b1288bb988b">CDGBuilder::extractBBS</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a> *func,</div>
|
|
210
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a><<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a> *, std::vector<const SVFBasicBlock *>> &res)</div>
|
|
211
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> {</div>
|
|
212
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &bb: *func)</div>
|
|
213
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div>
|
|
214
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &succ: bb->getSuccessors())</div>
|
|
215
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {</div>
|
|
216
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (func->postDominate(succ, bb))</div>
|
|
217
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">continue</span>;</div>
|
|
218
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  res[bb].push_back(succ);</div>
|
|
219
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div>
|
|
220
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  }</div>
|
|
221
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> }</div>
|
|
222
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div>
|
|
223
|
+
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d"> 181</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CDGBuilder.html#ab56c8f3ab29a907d420622dd8e933f0d">CDGBuilder::buildICFGNodeControlMap</a>()</div>
|
|
224
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> {</div>
|
|
225
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</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>
|
|
226
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: _svfcontrolMap)</div>
|
|
227
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  {</div>
|
|
228
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it2: it.second)</div>
|
|
229
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  {</div>
|
|
230
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a> *controllingBB = it2.first;</div>
|
|
231
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">// const ICFGNode *controlNode = _bbToNode[it.first].first;</span></div>
|
|
232
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">// if(!controlNode) continue;</span></div>
|
|
233
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a> *terminator = it.first->getInstructionList().back();</div>
|
|
234
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">if</span> (!terminator) <span class="keywordflow">continue</span>;</div>
|
|
235
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</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>
|
|
236
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">if</span> (!controlNode) <span class="keywordflow">continue</span>;</div>
|
|
237
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">// controlNode control at pos</span></div>
|
|
238
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &inst: *controllingBB)</div>
|
|
239
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div>
|
|
240
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</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>
|
|
241
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  _nodeControlMap[controlNode][controllee].insert(it2.second.begin(), it2.second.end());</div>
|
|
242
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  _nodeDependentOnMap[controllee][controlNode].insert(it2.second.begin(), it2.second.end());</div>
|
|
243
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> pos: it2.second)</div>
|
|
244
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div>
|
|
245
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  _controlDG->addCDGEdgeFromSrcDst(controlNode, controllee,</div>
|
|
246
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  SVFUtil::dyn_cast<IntraICFGNode>(controlNode)->getInst(),</div>
|
|
247
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  pos);</div>
|
|
248
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div>
|
|
249
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div>
|
|
250
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div>
|
|
251
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div>
|
|
252
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> }</div>
|
|
248
253
|
</div><!-- fragment --></div><!-- contents -->
|
|
249
254
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a6efa510f946ea8befebbc94bed241395"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a6efa510f946ea8befebbc94bed241395">SVF::CDGBuilder::dfsNodesBetweenPdomNodes</a></div><div class="ttdeci">void dfsNodesBetweenPdomNodes(const SVFBasicBlock *cur, const SVFBasicBlock *tgt, std::vector< const SVFBasicBlock * > &path, std::vector< const SVFBasicBlock * > &tgtNodes, SVFLoopAndDomInfo *ld)</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00034">CDGBuilder.cpp:34</a></div></div>
|
|
250
255
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html">SVF::SVFLoopAndDomInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00050">SVFValue.h:50</a></div></div>
|
|
@@ -252,23 +257,24 @@ $(function() {
|
|
|
252
257
|
<div class="ttc" id="aCDGBuilder_8h_html"><div class="ttname"><a href="CDGBuilder_8h.html">CDGBuilder.h</a></div></div>
|
|
253
258
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_aeaa9b2b4e802d9e6bed138eaf3186d09"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#aeaa9b2b4e802d9e6bed138eaf3186d09">SVF::SVFBasicBlock::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00582">SVFValue.h:582</a></div></div>
|
|
254
259
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
255
|
-
<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#
|
|
260
|
+
<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#l00091">CDGBuilder.cpp:91</a></div></div>
|
|
256
261
|
<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>
|
|
257
262
|
<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>
|
|
258
263
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</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="SVFIR_8h_source.html#l00114">SVFIR.h:114</a></div></div>
|
|
259
264
|
<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>
|
|
260
265
|
<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>
|
|
261
|
-
<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#
|
|
266
|
+
<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#l00225">SVFValue.cpp:225</a></div></div>
|
|
262
267
|
<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>
|
|
263
|
-
<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#
|
|
268
|
+
<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#l00181">CDGBuilder.cpp:181</a></div></div>
|
|
264
269
|
<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>
|
|
265
|
-
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_aeeb38d897babfeff1844c643dda8ae97"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#aeeb38d897babfeff1844c643dda8ae97">SVF::CDGBuilder::build</a></div><div class="ttdeci">void build()</div><div class="ttdoc">start here</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#
|
|
266
|
-
<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#
|
|
270
|
+
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_aeeb38d897babfeff1844c643dda8ae97"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#aeeb38d897babfeff1844c643dda8ae97">SVF::CDGBuilder::build</a></div><div class="ttdeci">void build()</div><div class="ttdoc">start here</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00081">CDGBuilder.cpp:81</a></div></div>
|
|
271
|
+
<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#l00125">CDGBuilder.cpp:125</a></div></div>
|
|
267
272
|
<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>
|
|
268
273
|
<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>
|
|
269
274
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_abda052b73e869ed6d7c139ad1528da11"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00170">SVFIR.h:170</a></div></div>
|
|
270
275
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00160">SVFIR.h:160</a></div></div>
|
|
271
276
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
|
|
277
|
+
<div class="ttc" id="acJSON_8cpp_html_a1a05ede2ad100bf5de5dfa7ccdfa4397"><div class="ttname"><a href="cJSON_8cpp.html#a1a05ede2ad100bf5de5dfa7ccdfa4397">NULL</a></div><div class="ttdeci">return NULL</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01173">cJSON.cpp:1173</a></div></div>
|
|
272
278
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a8cb9cc170c9693b9bfe9a0f7a65a618e"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a8cb9cc170c9693b9bfe9a0f7a65a618e">SVF::SVFBasicBlock::getInstructionList</a></div><div class="ttdeci">const std::vector< const SVFInstruction * > & getInstructionList() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00562">SVFValue.h:562</a></div></div>
|
|
273
279
|
<div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
|
|
274
280
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad07f95e790b5c3a50c864155aa20a083"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad07f95e790b5c3a50c864155aa20a083">SVF::SVFLoopAndDomInfo::getPostDomTreeMap</a></div><div class="ttdeci">const Map< const SVFBasicBlock *, BBSet > & getPostDomTreeMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00108">SVFValue.h:108</a></div></div>
|
|
@@ -278,7 +284,7 @@ $(function() {
|
|
|
278
284
|
<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>
|
|
279
285
|
<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>
|
|
280
286
|
<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>
|
|
281
|
-
<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#
|
|
287
|
+
<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#l00164">CDGBuilder.cpp:164</a></div></div>
|
|
282
288
|
<!-- start footer part -->
|
|
283
289
|
<hr class="footer"/><address class="footer"><small>
|
|
284
290
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
@@ -175,17 +175,17 @@ $(function() {
|
|
|
175
175
|
<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>
|
|
176
176
|
<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>
|
|
177
177
|
<div class="ttc" id="aclassSVF_1_1CDG_html"><div class="ttname"><a href="classSVF_1_1CDG.html">SVF::CDG</a></div><div class="ttdef"><b>Definition:</b> <a href="CDG_8h_source.html#l00125">CDG.h:125</a></div></div>
|
|
178
|
-
<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#
|
|
178
|
+
<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#l00091">CDGBuilder.cpp:91</a></div></div>
|
|
179
179
|
<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>
|
|
180
180
|
<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>
|
|
181
181
|
<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>
|
|
182
182
|
<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>
|
|
183
|
-
<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#
|
|
183
|
+
<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#l00181">CDGBuilder.cpp:181</a></div></div>
|
|
184
184
|
<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>
|
|
185
185
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html">SVF::CDGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00038">CDGBuilder.h:38</a></div></div>
|
|
186
|
-
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_aeeb38d897babfeff1844c643dda8ae97"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#aeeb38d897babfeff1844c643dda8ae97">SVF::CDGBuilder::build</a></div><div class="ttdeci">void build()</div><div class="ttdoc">start here</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#
|
|
186
|
+
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_aeeb38d897babfeff1844c643dda8ae97"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#aeeb38d897babfeff1844c643dda8ae97">SVF::CDGBuilder::build</a></div><div class="ttdeci">void build()</div><div class="ttdoc">start here</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8cpp_source.html#l00081">CDGBuilder.cpp:81</a></div></div>
|
|
187
187
|
<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>
|
|
188
|
-
<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#
|
|
188
|
+
<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#l00125">CDGBuilder.cpp:125</a></div></div>
|
|
189
189
|
<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>
|
|
190
190
|
<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>
|
|
191
191
|
<div class="ttc" id="aCDG_8h_html"><div class="ttname"><a href="CDG_8h.html">CDG.h</a></div></div>
|
|
@@ -195,7 +195,7 @@ $(function() {
|
|
|
195
195
|
<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>
|
|
196
196
|
<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>
|
|
197
197
|
<div class="ttc" id="aclassSVF_1_1CDGBuilder_html_a7789807452c1bbb206fd6bb4e4f00b46"><div class="ttname"><a href="classSVF_1_1CDGBuilder.html#a7789807452c1bbb206fd6bb4e4f00b46">SVF::CDGBuilder::CDGBuilder</a></div><div class="ttdeci">CDGBuilder()</div><div class="ttdoc">constructor</div><div class="ttdef"><b>Definition:</b> <a href="CDGBuilder_8h_source.html#l00043">CDGBuilder.h:43</a></div></div>
|
|
198
|
-
<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#
|
|
198
|
+
<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#l00164">CDGBuilder.cpp:164</a></div></div>
|
|
199
199
|
<!-- start footer part -->
|
|
200
200
|
<hr class="footer"/><address class="footer"><small>
|
|
201
201
|
Generated by  <a href="http://www.doxygen.org/index.html">
|