svf-tools 1.0.802 → 1.0.803
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/BreakConstantExpr_8cpp.html +109 -14
- package/SVF-doxygen/html/BreakConstantExpr_8cpp_source.html +188 -141
- package/SVF-doxygen/html/BreakConstantExpr_8h_source.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1BreakConstantGEPs.html +102 -101
- package/SVF-doxygen/html/globals_func_h.html +6 -0
- package/SVF-doxygen/html/globals_h.html +6 -0
- package/SVF-doxygen/html/search/all_10.js +324 -324
- package/SVF-doxygen/html/search/all_11.js +222 -222
- package/SVF-doxygen/html/search/all_12.js +542 -542
- package/SVF-doxygen/html/search/all_13.js +191 -191
- 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_8.js +135 -133
- package/SVF-doxygen/html/search/all_9.js +610 -610
- 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 +55 -55
- 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 +359 -359
- 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 -277
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- 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 +851 -851
- package/SVF-doxygen/html/search/functions_8.js +148 -146
- package/SVF-doxygen/html/search/functions_9.js +428 -428
- 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 +151 -151
- 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 +44 -44
- 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 +36 -36
- 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/package.json +1 -1
- package/svf-llvm/lib/BreakConstantExpr.cpp +53 -9
|
@@ -165,7 +165,7 @@ $(function() {
|
|
|
165
165
|
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div>
|
|
166
166
|
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">else</span></div>
|
|
167
167
|
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div>
|
|
168
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">for</span> (<
|
|
168
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> < CE->getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
|
|
169
169
|
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div>
|
|
170
170
|
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (CE->getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
|
|
171
171
|
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> CE;</div>
|
|
@@ -173,147 +173,192 @@ $(function() {
|
|
|
173
173
|
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
|
|
174
174
|
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div>
|
|
175
175
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
|
|
176
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span>
|
|
176
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
177
177
|
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div>
|
|
178
178
|
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
|
|
179
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
180
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"
|
|
181
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">//
|
|
182
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="
|
|
183
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <
|
|
184
|
-
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> 
|
|
185
|
-
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> 
|
|
186
|
-
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> 
|
|
187
|
-
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> 
|
|
188
|
-
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> 
|
|
189
|
-
<div class="line"><a name="l00118"></a><span class="lineno"
|
|
190
|
-
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> 
|
|
191
|
-
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> 
|
|
192
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> 
|
|
193
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> 
|
|
194
|
-
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> 
|
|
195
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> 
|
|
196
|
-
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> 
|
|
197
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> 
|
|
198
|
-
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> 
|
|
199
|
-
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> 
|
|
200
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> 
|
|
201
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
|
|
202
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> 
|
|
203
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> 
|
|
204
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment"
|
|
205
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">//
|
|
206
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="
|
|
207
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <
|
|
208
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> 
|
|
209
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> 
|
|
210
|
-
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> 
|
|
211
|
-
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> 
|
|
212
|
-
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> 
|
|
213
|
-
<div class="line"><a name="l00142"></a><span class="lineno"
|
|
214
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> {</div>
|
|
215
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> 
|
|
216
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> 
|
|
217
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> 
|
|
218
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> 
|
|
219
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> 
|
|
220
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> 
|
|
221
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> 
|
|
222
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> 
|
|
223
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> 
|
|
224
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> 
|
|
225
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> 
|
|
226
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> 
|
|
227
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> 
|
|
228
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> 
|
|
229
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> 
|
|
230
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> 
|
|
231
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> 
|
|
232
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> 
|
|
233
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> 
|
|
234
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> 
|
|
235
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> 
|
|
236
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
237
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> 
|
|
238
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> 
|
|
239
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
240
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> 
|
|
241
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> 
|
|
242
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> 
|
|
243
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
|
|
244
|
-
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> 
|
|
245
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> 
|
|
246
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> 
|
|
247
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> 
|
|
248
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> 
|
|
249
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> 
|
|
250
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> 
|
|
251
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> 
|
|
252
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> 
|
|
253
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> 
|
|
254
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> 
|
|
255
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> 
|
|
256
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> 
|
|
257
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> 
|
|
258
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> 
|
|
259
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> 
|
|
260
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> 
|
|
261
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> 
|
|
262
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> 
|
|
263
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
264
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
265
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> 
|
|
266
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> 
|
|
267
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> 
|
|
268
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> 
|
|
269
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> 
|
|
270
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> 
|
|
271
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> 
|
|
272
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> 
|
|
273
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
|
|
274
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> 
|
|
275
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> 
|
|
276
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> 
|
|
277
|
-
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> 
|
|
278
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> 
|
|
279
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
|
|
280
|
-
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> 
|
|
281
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> 
|
|
282
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> 
|
|
283
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> 
|
|
284
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> 
|
|
285
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> 
|
|
286
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> 
|
|
287
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> 
|
|
288
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> 
|
|
289
|
-
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> 
|
|
290
|
-
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> 
|
|
291
|
-
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> 
|
|
292
|
-
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> 
|
|
293
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> 
|
|
294
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> 
|
|
295
|
-
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> 
|
|
296
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> 
|
|
297
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> 
|
|
298
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> 
|
|
299
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
300
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> 
|
|
301
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
|
|
302
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> 
|
|
303
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> 
|
|
304
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> 
|
|
305
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> 
|
|
306
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> 
|
|
307
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> 
|
|
308
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> 
|
|
309
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> 
|
|
310
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> 
|
|
311
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> 
|
|
312
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 
|
|
313
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> 
|
|
314
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
|
|
315
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> 
|
|
179
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// Description:</span></div>
|
|
180
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// This function determines whether the given value is a constant expression</span></div>
|
|
181
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// that has a constant binary or unary operator expression embedded within it.</span></div>
|
|
182
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *</div>
|
|
183
|
+
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="BreakConstantExpr_8cpp.html#a7ba88bf4cda44accf0eba327da8ab716"> 112</a></span> <a class="code" href="BreakConstantExpr_8cpp.html#a7ba88bf4cda44accf0eba327da8ab716">hasConstantBinaryOrUnaryOp</a> (<a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* V)</div>
|
|
184
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> {</div>
|
|
185
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = SVFUtil::dyn_cast<ConstantExpr>(V))</div>
|
|
186
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  {</div>
|
|
187
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span> (Instruction::isBinaryOp(CE->getOpcode()) || Instruction::isUnaryOp(CE->getOpcode()))</div>
|
|
188
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  {</div>
|
|
189
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> CE;</div>
|
|
190
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div>
|
|
191
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">else</span></div>
|
|
192
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  {</div>
|
|
193
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> < CE->getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
|
|
194
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  {</div>
|
|
195
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a7ba88bf4cda44accf0eba327da8ab716">hasConstantBinaryOrUnaryOp</a> (CE->getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
|
|
196
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> CE;</div>
|
|
197
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div>
|
|
198
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div>
|
|
199
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div>
|
|
200
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div>
|
|
201
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
202
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div>
|
|
203
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div>
|
|
204
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// Description:</span></div>
|
|
205
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">// Return true if this is a constant Gep or binaryOp or UnaryOp expression</span></div>
|
|
206
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *</div>
|
|
207
|
+
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93"> 136</a></span> <a class="code" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">hasConstantExpr</a> (<a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* V)</div>
|
|
208
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> {</div>
|
|
209
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * gep = <a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a>(V))</div>
|
|
210
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div>
|
|
211
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> gep;</div>
|
|
212
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div>
|
|
213
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * buop = <a class="code" href="BreakConstantExpr_8cpp.html#a7ba88bf4cda44accf0eba327da8ab716">hasConstantBinaryOrUnaryOp</a>(V))</div>
|
|
214
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div>
|
|
215
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> buop;</div>
|
|
216
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
|
|
217
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">else</span></div>
|
|
218
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  {</div>
|
|
219
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
|
|
220
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div>
|
|
221
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div>
|
|
222
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
|
|
223
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
|
|
224
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="comment">//</span></div>
|
|
225
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="comment">// Function: convertExpression()</span></div>
|
|
226
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="comment">//</span></div>
|
|
227
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="comment">// Description:</span></div>
|
|
228
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment">// Convert a constant expression into an instruction. This routine does *not*</span></div>
|
|
229
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// perform any recursion, so the resulting instruction may have constant</span></div>
|
|
230
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// expression operands.</span></div>
|
|
231
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">//</span></div>
|
|
232
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>*</div>
|
|
233
|
+
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1"> 162</a></span> <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE, <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* InsertPt)</div>
|
|
234
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> {</div>
|
|
235
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="comment">//</span></div>
|
|
236
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// Convert this constant expression into a regular instruction.</span></div>
|
|
237
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">//</span></div>
|
|
238
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (CE->getOpcode() == Instruction::GetElementPtr)</div>
|
|
239
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  ++GEPChanges;</div>
|
|
240
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  ++TotalChanges;</div>
|
|
241
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* Result = CE->getAsInstruction();</div>
|
|
242
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  Result->insertBefore(InsertPt);</div>
|
|
243
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> Result;</div>
|
|
244
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> }</div>
|
|
245
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div>
|
|
246
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">//</span></div>
|
|
247
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// Method: runOnFunction()</span></div>
|
|
248
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">//</span></div>
|
|
249
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// Description:</span></div>
|
|
250
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// Entry point for this LLVM pass.</span></div>
|
|
251
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">//</span></div>
|
|
252
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// Return value:</span></div>
|
|
253
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// true - The function was modified.</span></div>
|
|
254
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// false - The function was not modified.</span></div>
|
|
255
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">//</span></div>
|
|
256
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keywordtype">bool</span></div>
|
|
257
|
+
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a"> 186</a></span> <a class="code" href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a">BreakConstantGEPs::runOnModule</a> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> & module)</div>
|
|
258
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> {</div>
|
|
259
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordtype">bool</span> modified = <span class="keyword">false</span>;</div>
|
|
260
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">for</span> (Module::iterator <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> = module.begin(), E = module.end(); <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> != E; ++<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
261
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  {</div>
|
|
262
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="comment">// Worklist of values to check for constant GEP expressions</span></div>
|
|
263
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  std::vector<Instruction* > Worklist;</div>
|
|
264
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
|
|
265
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">//</span></div>
|
|
266
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">// Initialize the worklist by finding all instructions that have one or more</span></div>
|
|
267
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// operands containing a constant GEP expression.</span></div>
|
|
268
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">//</span></div>
|
|
269
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">for</span> (Function::iterator BB = (*F).begin(); BB != (*F).end(); ++BB)</div>
|
|
270
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  {</div>
|
|
271
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">for</span> (BasicBlock::iterator i = BB->begin(); i != BB->end(); ++i)</div>
|
|
272
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div>
|
|
273
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">//</span></div>
|
|
274
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="comment">// Scan through the operands of this instruction. If it is a constant</span></div>
|
|
275
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">// expression GEP, insert an instruction GEP before the instruction.</span></div>
|
|
276
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">//</span></div>
|
|
277
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* I = &(*i);</div>
|
|
278
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> < I->getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
|
|
279
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div>
|
|
280
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">hasConstantExpr</a>(I->getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
|
|
281
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div>
|
|
282
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  Worklist.push_back (I);</div>
|
|
283
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
|
|
284
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
|
285
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div>
|
|
286
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div>
|
|
287
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
|
|
288
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="comment">//</span></div>
|
|
289
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// Determine whether we will modify anything.</span></div>
|
|
290
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">//</span></div>
|
|
291
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">if</span> (Worklist.size()) modified = <span class="keyword">true</span>;</div>
|
|
292
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
|
293
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">//</span></div>
|
|
294
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// While the worklist is not empty, take an item from it, convert the</span></div>
|
|
295
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="comment">// operands into instructions if necessary, and determine if the newly</span></div>
|
|
296
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="comment">// added instructions need to be processed as well.</span></div>
|
|
297
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">//</span></div>
|
|
298
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">while</span> (Worklist.size())</div>
|
|
299
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  {</div>
|
|
300
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* I = Worklist.back();</div>
|
|
301
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  Worklist.pop_back();</div>
|
|
302
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
|
|
303
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="comment">//</span></div>
|
|
304
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="comment">// Scan through the operands of this instruction and convert each into an</span></div>
|
|
305
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="comment">// instruction. Note that this works a little differently for phi</span></div>
|
|
306
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// instructions because the new instruction must be added to the</span></div>
|
|
307
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">// appropriate predecessor block.</span></div>
|
|
308
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">//</span></div>
|
|
309
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">PHINode</a> * PHI = SVFUtil::dyn_cast<PHINode>(I))</div>
|
|
310
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  {</div>
|
|
311
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> < PHI->getNumIncomingValues(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
|
|
312
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div>
|
|
313
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="comment">//</span></div>
|
|
314
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="comment">// For PHI Nodes, if an operand is a constant expression with a GEP, we</span></div>
|
|
315
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="comment">// want to insert the new instructions in the predecessor basic block.</span></div>
|
|
316
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="comment">//</span></div>
|
|
317
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="comment">// Note: It seems that it's possible for a phi to have the same</span></div>
|
|
318
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="comment">// incoming basic block listed multiple times; this seems okay as long</span></div>
|
|
319
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">// the same value is listed for the incoming block.</span></div>
|
|
320
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">//</span></div>
|
|
321
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* InsertPt = PHI->getIncomingBlock(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)->getTerminator();</div>
|
|
322
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">hasConstantExpr</a>(PHI->getIncomingValue(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
|
|
323
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div>
|
|
324
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, InsertPt);</div>
|
|
325
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i2 = <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>; i2 < PHI->getNumIncomingValues(); ++i2)</div>
|
|
326
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div>
|
|
327
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">if</span> ((PHI->getIncomingBlock (i2)) == PHI->getIncomingBlock (<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>))</div>
|
|
328
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  PHI->setIncomingValue (i2, NewInst);</div>
|
|
329
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div>
|
|
330
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  Worklist.push_back (NewInst);</div>
|
|
331
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div>
|
|
332
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div>
|
|
333
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div>
|
|
334
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span></div>
|
|
335
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  {</div>
|
|
336
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> < I->getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
|
|
337
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div>
|
|
338
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">//</span></div>
|
|
339
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="comment">// For other instructions, we want to insert instructions replacing</span></div>
|
|
340
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="comment">// constant expressions immediately before the instruction using the</span></div>
|
|
341
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// constant expression.</span></div>
|
|
342
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="comment">//</span></div>
|
|
343
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">hasConstantExpr</a>(I->getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
|
|
344
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div>
|
|
345
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, I);</div>
|
|
346
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  I->replaceUsesOfWith (CE, NewInst);</div>
|
|
347
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  Worklist.push_back (NewInst);</div>
|
|
348
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div>
|
|
349
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div>
|
|
350
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div>
|
|
351
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div>
|
|
352
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </div>
|
|
353
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div>
|
|
354
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">return</span> modified;</div>
|
|
355
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> }</div>
|
|
356
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
|
|
357
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  </div>
|
|
358
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  </div>
|
|
359
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div>
|
|
316
360
|
</div><!-- fragment --></div><!-- contents -->
|
|
361
|
+
<div class="ttc" id="aBreakConstantExpr_8cpp_html_a7b06934734ebef30b8f24221e1380f93"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">hasConstantExpr</a></div><div class="ttdeci">static ConstantExpr * hasConstantExpr(Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00136">BreakConstantExpr.cpp:136</a></div></div>
|
|
317
362
|
<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>
|
|
318
363
|
<div class="ttc" id="aclassSVF_1_1BreakConstantGEPs_html_a8010c4f5824ed5ebcb7ae283473ada22"><div class="ttname"><a href="classSVF_1_1BreakConstantGEPs.html#a8010c4f5824ed5ebcb7ae283473ada22">SVF::BreakConstantGEPs::ID</a></div><div class="ttdeci">static char ID</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00038">BreakConstantExpr.h:38</a></div></div>
|
|
319
364
|
<div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
|
|
@@ -325,11 +370,13 @@ $(function() {
|
|
|
325
370
|
<div class="ttc" id="aBasicTypes_8h_html"><div class="ttname"><a href="BasicTypes_8h.html">BasicTypes.h</a></div></div>
|
|
326
371
|
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
327
372
|
<div class="ttc" id="aclassSVF_1_1MergeFunctionRets_html_a7a763ae6c9d3c72345495f01b0b4b458"><div class="ttname"><a href="classSVF_1_1MergeFunctionRets.html#a7a763ae6c9d3c72345495f01b0b4b458">SVF::MergeFunctionRets::ID</a></div><div class="ttdeci">static char ID</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00062">BreakConstantExpr.h:62</a></div></div>
|
|
328
|
-
<div class="ttc" id="aBreakConstantExpr_8cpp_html_a25cf7d9aff084a1cd1aa51c85a4a17e1"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a></div><div class="ttdeci">static Instruction * convertExpression(ConstantExpr *CE, Instruction *InsertPt)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#
|
|
373
|
+
<div class="ttc" id="aBreakConstantExpr_8cpp_html_a25cf7d9aff084a1cd1aa51c85a4a17e1"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a></div><div class="ttdeci">static Instruction * convertExpression(ConstantExpr *CE, Instruction *InsertPt)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00162">BreakConstantExpr.cpp:162</a></div></div>
|
|
329
374
|
<div class="ttc" id="aBreakConstantExpr_8cpp_html_a81381bb19688464256bd09ef22e965e4"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a></div><div class="ttdeci">static ConstantExpr * hasConstantGEP(Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00087">BreakConstantExpr.cpp:87</a></div></div>
|
|
330
375
|
<div class="ttc" id="anamespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00118">BasicTypes.h:118</a></div></div>
|
|
331
376
|
<div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
|
|
332
|
-
<div class="ttc" id="
|
|
377
|
+
<div class="ttc" id="aBreakConstantExpr_8cpp_html_a7ba88bf4cda44accf0eba327da8ab716"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a7ba88bf4cda44accf0eba327da8ab716">hasConstantBinaryOrUnaryOp</a></div><div class="ttdeci">static ConstantExpr * hasConstantBinaryOrUnaryOp(Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00112">BreakConstantExpr.cpp:112</a></div></div>
|
|
378
|
+
<div class="ttc" id="aclassSVF_1_1BreakConstantGEPs_html_ae99ceb7923161d54e7d0a687f4f68e1a"><div class="ttname"><a href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a">SVF::BreakConstantGEPs::runOnModule</a></div><div class="ttdeci">virtual bool runOnModule(Module &M)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00186">BreakConstantExpr.cpp:186</a></div></div>
|
|
379
|
+
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
333
380
|
<!-- start footer part -->
|
|
334
381
|
<hr class="footer"/><address class="footer"><small>
|
|
335
382
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
@@ -179,7 +179,7 @@ $(function() {
|
|
|
179
179
|
<div class="ttc" id="aclassSVF_1_1BreakConstantGEPs_html_a5397ce21e78d09c8d1cdc3f912d53a7f"><div class="ttname"><a href="classSVF_1_1BreakConstantGEPs.html#a5397ce21e78d09c8d1cdc3f912d53a7f">SVF::BreakConstantGEPs::BreakConstantGEPs</a></div><div class="ttdeci">BreakConstantGEPs()</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00039">BreakConstantExpr.h:39</a></div></div>
|
|
180
180
|
<div class="ttc" id="aclassSVF_1_1MergeFunctionRets_html_a8c04750179ee48d283c5db4d84b3eca1"><div class="ttname"><a href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">SVF::MergeFunctionRets::UnifyFunctionExit</a></div><div class="ttdeci">void UnifyFunctionExit(Module &module)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00073">BreakConstantExpr.h:73</a></div></div>
|
|
181
181
|
<div class="ttc" id="aSVFValue_8h_html"><div class="ttname"><a href="SVFValue_8h.html">SVFValue.h</a></div></div>
|
|
182
|
-
<div class="ttc" id="aclassSVF_1_1BreakConstantGEPs_html_ae99ceb7923161d54e7d0a687f4f68e1a"><div class="ttname"><a href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a">SVF::BreakConstantGEPs::runOnModule</a></div><div class="ttdeci">virtual bool runOnModule(Module &M)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#
|
|
182
|
+
<div class="ttc" id="aclassSVF_1_1BreakConstantGEPs_html_ae99ceb7923161d54e7d0a687f4f68e1a"><div class="ttname"><a href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a">SVF::BreakConstantGEPs::runOnModule</a></div><div class="ttdeci">virtual bool runOnModule(Module &M)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00186">BreakConstantExpr.cpp:186</a></div></div>
|
|
183
183
|
<div class="ttc" id="aclassSVF_1_1MergeFunctionRets_html_a0644ac0f560911632855d9129f3d71ca"><div class="ttname"><a href="classSVF_1_1MergeFunctionRets.html#a0644ac0f560911632855d9129f3d71ca">SVF::MergeFunctionRets::getUnifyExit</a></div><div class="ttdeci">UnifyFunctionExitNodes * getUnifyExit(const Function &fn)</div><div class="ttdoc">Get Unified Exit basic block node.</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00085">BreakConstantExpr.h:85</a></div></div>
|
|
184
184
|
<!-- start footer part -->
|
|
185
185
|
<hr class="footer"/><address class="footer"><small>
|