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
|
@@ -183,105 +183,105 @@ Static Public Attributes</h2></td></tr>
|
|
|
183
183
|
</table>
|
|
184
184
|
</div><div class="memdoc">
|
|
185
185
|
|
|
186
|
-
<p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8cpp_source.html#
|
|
187
|
-
<div class="fragment"><div class="line"><a name="
|
|
188
|
-
<div class="line"><a name="
|
|
189
|
-
<div class="line"><a name="
|
|
190
|
-
<div class="line"><a name="
|
|
191
|
-
<div class="line"><a name="
|
|
192
|
-
<div class="line"><a name="
|
|
193
|
-
<div class="line"><a name="
|
|
194
|
-
<div class="line"><a name="
|
|
195
|
-
<div class="line"><a name="
|
|
196
|
-
<div class="line"><a name="
|
|
197
|
-
<div class="line"><a name="
|
|
198
|
-
<div class="line"><a name="
|
|
199
|
-
<div class="line"><a name="
|
|
200
|
-
<div class="line"><a name="
|
|
201
|
-
<div class="line"><a name="
|
|
202
|
-
<div class="line"><a name="
|
|
203
|
-
<div class="line"><a name="
|
|
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="
|
|
210
|
-
<div class="line"><a name="
|
|
211
|
-
<div class="line"><a name="
|
|
212
|
-
<div class="line"><a name="
|
|
213
|
-
<div class="line"><a name="
|
|
214
|
-
<div class="line"><a name="
|
|
215
|
-
<div class="line"><a name="
|
|
216
|
-
<div class="line"><a name="
|
|
217
|
-
<div class="line"><a name="
|
|
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="
|
|
224
|
-
<div class="line"><a name="
|
|
225
|
-
<div class="line"><a name="
|
|
226
|
-
<div class="line"><a name="
|
|
227
|
-
<div class="line"><a name="
|
|
228
|
-
<div class="line"><a name="
|
|
229
|
-
<div class="line"><a name="
|
|
230
|
-
<div class="line"><a name="
|
|
231
|
-
<div class="line"><a name="
|
|
232
|
-
<div class="line"><a name="
|
|
233
|
-
<div class="line"><a name="
|
|
234
|
-
<div class="line"><a name="
|
|
235
|
-
<div class="line"><a name="
|
|
236
|
-
<div class="line"><a name="
|
|
237
|
-
<div class="line"><a name="
|
|
238
|
-
<div class="line"><a name="
|
|
239
|
-
<div class="line"><a name="
|
|
240
|
-
<div class="line"><a name="
|
|
241
|
-
<div class="line"><a name="
|
|
242
|
-
<div class="line"><a name="
|
|
243
|
-
<div class="line"><a name="
|
|
244
|
-
<div class="line"><a name="
|
|
245
|
-
<div class="line"><a name="
|
|
246
|
-
<div class="line"><a name="
|
|
247
|
-
<div class="line"><a name="
|
|
248
|
-
<div class="line"><a name="
|
|
249
|
-
<div class="line"><a name="
|
|
250
|
-
<div class="line"><a name="
|
|
251
|
-
<div class="line"><a name="
|
|
252
|
-
<div class="line"><a name="
|
|
253
|
-
<div class="line"><a name="
|
|
254
|
-
<div class="line"><a name="
|
|
255
|
-
<div class="line"><a name="
|
|
256
|
-
<div class="line"><a name="
|
|
257
|
-
<div class="line"><a name="
|
|
258
|
-
<div class="line"><a name="
|
|
259
|
-
<div class="line"><a name="
|
|
260
|
-
<div class="line"><a name="
|
|
261
|
-
<div class="line"><a name="
|
|
262
|
-
<div class="line"><a name="
|
|
263
|
-
<div class="line"><a name="
|
|
264
|
-
<div class="line"><a name="
|
|
265
|
-
<div class="line"><a name="
|
|
266
|
-
<div class="line"><a name="
|
|
267
|
-
<div class="line"><a name="
|
|
268
|
-
<div class="line"><a name="
|
|
269
|
-
<div class="line"><a name="
|
|
270
|
-
<div class="line"><a name="
|
|
271
|
-
<div class="line"><a name="
|
|
272
|
-
<div class="line"><a name="
|
|
273
|
-
<div class="line"><a name="
|
|
274
|
-
<div class="line"><a name="
|
|
275
|
-
<div class="line"><a name="
|
|
276
|
-
<div class="line"><a name="
|
|
277
|
-
<div class="line"><a name="
|
|
278
|
-
<div class="line"><a name="
|
|
279
|
-
<div class="line"><a name="
|
|
280
|
-
<div class="line"><a name="
|
|
281
|
-
<div class="line"><a name="
|
|
282
|
-
<div class="line"><a name="
|
|
283
|
-
<div class="line"><a name="
|
|
284
|
-
<div class="line"><a name="
|
|
186
|
+
<p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8cpp_source.html#l00186">186</a> of file <a class="el" href="BreakConstantExpr_8cpp_source.html">BreakConstantExpr.cpp</a>.</p>
|
|
187
|
+
<div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> {</div>
|
|
188
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordtype">bool</span> modified = <span class="keyword">false</span>;</div>
|
|
189
|
+
<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>
|
|
190
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  {</div>
|
|
191
|
+
<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>
|
|
192
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  std::vector<Instruction* > Worklist;</div>
|
|
193
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
|
|
194
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">//</span></div>
|
|
195
|
+
<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>
|
|
196
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// operands containing a constant GEP expression.</span></div>
|
|
197
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">//</span></div>
|
|
198
|
+
<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>
|
|
199
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  {</div>
|
|
200
|
+
<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>
|
|
201
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div>
|
|
202
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">//</span></div>
|
|
203
|
+
<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>
|
|
204
|
+
<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>
|
|
205
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">//</span></div>
|
|
206
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* I = &(*i);</div>
|
|
207
|
+
<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>
|
|
208
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div>
|
|
209
|
+
<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>
|
|
210
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div>
|
|
211
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  Worklist.push_back (I);</div>
|
|
212
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
|
|
213
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
|
214
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div>
|
|
215
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div>
|
|
216
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
|
|
217
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="comment">//</span></div>
|
|
218
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// Determine whether we will modify anything.</span></div>
|
|
219
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">//</span></div>
|
|
220
|
+
<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>
|
|
221
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
|
222
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">//</span></div>
|
|
223
|
+
<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>
|
|
224
|
+
<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>
|
|
225
|
+
<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>
|
|
226
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">//</span></div>
|
|
227
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">while</span> (Worklist.size())</div>
|
|
228
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  {</div>
|
|
229
|
+
<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>
|
|
230
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  Worklist.pop_back();</div>
|
|
231
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
|
|
232
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="comment">//</span></div>
|
|
233
|
+
<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>
|
|
234
|
+
<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>
|
|
235
|
+
<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>
|
|
236
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">// appropriate predecessor block.</span></div>
|
|
237
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">//</span></div>
|
|
238
|
+
<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>
|
|
239
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  {</div>
|
|
240
|
+
<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>
|
|
241
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div>
|
|
242
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="comment">//</span></div>
|
|
243
|
+
<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>
|
|
244
|
+
<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>
|
|
245
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="comment">//</span></div>
|
|
246
|
+
<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>
|
|
247
|
+
<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>
|
|
248
|
+
<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>
|
|
249
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">//</span></div>
|
|
250
|
+
<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>
|
|
251
|
+
<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>
|
|
252
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div>
|
|
253
|
+
<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>
|
|
254
|
+
<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>
|
|
255
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div>
|
|
256
|
+
<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>
|
|
257
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  PHI->setIncomingValue (i2, NewInst);</div>
|
|
258
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div>
|
|
259
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  Worklist.push_back (NewInst);</div>
|
|
260
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div>
|
|
261
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div>
|
|
262
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div>
|
|
263
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span></div>
|
|
264
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  {</div>
|
|
265
|
+
<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>
|
|
266
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div>
|
|
267
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">//</span></div>
|
|
268
|
+
<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>
|
|
269
|
+
<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>
|
|
270
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// constant expression.</span></div>
|
|
271
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="comment">//</span></div>
|
|
272
|
+
<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>
|
|
273
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div>
|
|
274
|
+
<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>
|
|
275
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  I->replaceUsesOfWith (CE, NewInst);</div>
|
|
276
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  Worklist.push_back (NewInst);</div>
|
|
277
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div>
|
|
278
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div>
|
|
279
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div>
|
|
280
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div>
|
|
281
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </div>
|
|
282
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div>
|
|
283
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">return</span> modified;</div>
|
|
284
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> }</div>
|
|
285
285
|
</div><!-- fragment -->
|
|
286
286
|
</div>
|
|
287
287
|
</div>
|
|
@@ -315,15 +315,16 @@ Static Public Attributes</h2></td></tr>
|
|
|
315
315
|
<li>/home/runner/work/SVF/SVF/svf-llvm/lib/<a class="el" href="BreakConstantExpr_8cpp_source.html">BreakConstantExpr.cpp</a></li>
|
|
316
316
|
</ul>
|
|
317
317
|
</div><!-- contents -->
|
|
318
|
+
<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>
|
|
318
319
|
<div class="ttc" id="anamespaceSVF_html_ac226d84f86637126d17f6814632c8a90"><div class="ttname"><a href="namespaceSVF.html#ac226d84f86637126d17f6814632c8a90">SVF::ModulePass</a></div><div class="ttdeci">llvm::ModulePass ModulePass</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
|
|
319
320
|
<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>
|
|
320
321
|
<div class="ttc" id="acJSON_8h_html_a750b5d744c39a06bfb13e6eb010e35d0"><div class="ttname"><a href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a></div><div class="ttdeci">int index</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00170">cJSON.h:170</a></div></div>
|
|
321
322
|
<div class="ttc" id="anamespaceSVF_html_ac8d4990439af7a2ecca7e15383119674"><div class="ttname"><a href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">SVF::PHINode</a></div><div class="ttdeci">llvm::PHINode PHINode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00163">BasicTypes.h:163</a></div></div>
|
|
322
323
|
<div class="ttc" id="anamespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
|
|
323
|
-
<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#
|
|
324
|
-
<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>
|
|
324
|
+
<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>
|
|
325
325
|
<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>
|
|
326
326
|
<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>
|
|
327
|
+
<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>
|
|
327
328
|
<!-- start footer part -->
|
|
328
329
|
<hr class="footer"/><address class="footer"><small>
|
|
329
330
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
@@ -67,6 +67,12 @@ $(function() {
|
|
|
67
67
|
<li>handleThunkFunction()
|
|
68
68
|
: <a class="el" href="CppUtil_8cpp.html#a264d15523be2c695d9cee8d49ae87ebe">CppUtil.cpp</a>
|
|
69
69
|
</li>
|
|
70
|
+
<li>hasConstantBinaryOrUnaryOp()
|
|
71
|
+
: <a class="el" href="BreakConstantExpr_8cpp.html#a7ba88bf4cda44accf0eba327da8ab716">BreakConstantExpr.cpp</a>
|
|
72
|
+
</li>
|
|
73
|
+
<li>hasConstantExpr()
|
|
74
|
+
: <a class="el" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">BreakConstantExpr.cpp</a>
|
|
75
|
+
</li>
|
|
70
76
|
<li>hasConstantGEP()
|
|
71
77
|
: <a class="el" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">BreakConstantExpr.cpp</a>
|
|
72
78
|
</li>
|
|
@@ -73,6 +73,12 @@ $(function() {
|
|
|
73
73
|
<li>HAS_CLZLL
|
|
74
74
|
: <a class="el" href="SparseBitVector_8h.html#ad66fb43b1e40d6e22629fcd889d4bfab">SparseBitVector.h</a>
|
|
75
75
|
</li>
|
|
76
|
+
<li>hasConstantBinaryOrUnaryOp()
|
|
77
|
+
: <a class="el" href="BreakConstantExpr_8cpp.html#a7ba88bf4cda44accf0eba327da8ab716">BreakConstantExpr.cpp</a>
|
|
78
|
+
</li>
|
|
79
|
+
<li>hasConstantExpr()
|
|
80
|
+
: <a class="el" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">BreakConstantExpr.cpp</a>
|
|
81
|
+
</li>
|
|
76
82
|
<li>hasConstantGEP()
|
|
77
83
|
: <a class="el" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">BreakConstantExpr.cpp</a>
|
|
78
84
|
</li>
|