-
Notifications
You must be signed in to change notification settings - Fork 0
/
AddressUsageMap_8h_source.html
454 lines (454 loc) · 124 KB
/
AddressUsageMap_8h_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ROSE: AddressUsageMap.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<link rel="search" href="search_opensearch.php?v=opensearch.xml" type="application/opensearchdescription+xml" title="ROSE"/>
<link href="roseDoxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">ROSE<span id="projectnumber"> 0.11.145.141</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,true,'search.html','Search');
$(document).ready(function() {
if ($('.searchresults').length > 0) { searchBox.DOMSearchField().focus(); }
});
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_9e62d0ec1b5e35066c963e582c20357f.html">Rose</a></li><li class="navelem"><a class="el" href="dir_b6b36e208517412b6f28695766cc080b.html">BinaryAnalysis</a></li><li class="navelem"><a class="el" href="dir_fa190f295ca00b091ad1987f0125a3ea.html">Partitioner2</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">AddressUsageMap.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef ROSE_BinaryAnalysis_Partitioner2_AddressUsageMap_H</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define ROSE_BinaryAnalysis_Partitioner2_AddressUsageMap_H</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include <featureTests.h></span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifdef ROSE_ENABLE_BINARY_ANALYSIS</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h></span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include <Rose/BinaryAnalysis/AddressIntervalSet.h></span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include <Sawyer/IntervalMap.h></span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <Sawyer/IntervalSet.h></span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <Sawyer/Optional.h></span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include <boost/serialization/access.hpp></span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include <algorithm></span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <ostream></span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include <string></span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">class </span><a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceRose.html">Rose</a> {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">namespace </span>BinaryAnalysis {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">namespace </span>Partitioner2 {</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">// AddressUser</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="foldopen" id="foldopen00036" data-start="{" data-end="};">
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html"> 36</a></span><span class="keyword">class </span><a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a> *insn_;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> std::vector<BasicBlockPtr> bblocks_; <span class="comment">// sorted and unique</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a> dblock_;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">friend</span> <span class="keyword">class </span>boost::serialization::access;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">template</span><<span class="keyword">class</span> S> <span class="keywordtype">void</span> serialize(S&, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> version);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ae407088931672e241cd17ee3923a0de1"> 49</a></span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ae407088931672e241cd17ee3923a0de1">AddressUser</a>();</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a354faeac85c07356fe3605510c2289ce"> 56</a></span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a354faeac85c07356fe3605510c2289ce">AddressUser</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>*, <span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ad8124f5362f273999a479edc2333b7c6"> 59</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ad8124f5362f273999a479edc2333b7c6">AddressUser</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">~AddressUser</a>();</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a7066990380de68b15ac932c05b87c21b"> 67</a></span> rose_addr_t <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a7066990380de68b15ac932c05b87c21b">address</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a22d82c4c3816bf06bc2b33e6925c54bc"> 70</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a22d82c4c3816bf06bc2b33e6925c54bc">isBasicBlock</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a86142ec885d406a5d0f60791840dca33"> 73</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a86142ec885d406a5d0f60791840dca33">isDataBlock</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a8b41e2992c0ac74ef4ced760f2a4060c"> 78</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a8b41e2992c0ac74ef4ced760f2a4060c">isEmpty</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ac7d2df49183a164838bdee48f50d7854"> 83</a></span> <a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>* <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ac7d2df49183a164838bdee48f50d7854">insn</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#adcf71115b154953a42c3dc2394d9821b"> 89</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#adcf71115b154953a42c3dc2394d9821b">firstBasicBlock</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ab432912037ec68d8e17f08d0a57963bf"> 96</a></span> <span class="keyword">const</span> std::vector<BasicBlockPtr>& <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ab432912037ec68d8e17f08d0a57963bf">basicBlocks</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a083fb8472148ce3bf0a0bf0dd446a0d9"> 99</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a083fb8472148ce3bf0a0bf0dd446a0d9">insertBasicBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a> &bblock);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a57e08d9d92e854b79f5e0d12f7137044"> 102</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a57e08d9d92e854b79f5e0d12f7137044">eraseBasicBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a> &bblock);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ac1a9d3211aa39e3defde99fa1127994a"> 107</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ac1a9d3211aa39e3defde99fa1127994a">dataBlock</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a5e5fde53554a234b56b5a82e5b751443"> 114</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a5e5fde53554a234b56b5a82e5b751443">isBlockEntry</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a07db47414c02c3eb42b1ad2b76da70b0"> 121</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a07db47414c02c3eb42b1ad2b76da70b0">operator==</a>(<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> &other) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#aaace34fa5debcf7a5209d41a04995cd5"> 129</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#aaace34fa5debcf7a5209d41a04995cd5">operator<</a>(<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a61933a7d1a1ff63779eff29293a5d188"> 132</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a61933a7d1a1ff63779eff29293a5d188">print</a>(std::ostream&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a52e66fe54f9bab3c64e8f80540c700f5"> 137</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a52e66fe54f9bab3c64e8f80540c700f5">isConsistent</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="foldopen" id="foldopen00142" data-start="{" data-end="}">
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a8492462feed1f3f98992a56282d6d36f"> 142</a></span> <span class="keyword">operator</span> bool()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a8b41e2992c0ac74ef4ced760f2a4060c">isEmpty</a>();</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> }</div>
</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span>};</div>
</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="comment">// AddressUsers</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div>
<div class="foldopen" id="foldopen00157" data-start="{" data-end="};">
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html"> 157</a></span><span class="keyword">class </span><a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> {</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> std::vector<AddressUser> users_; <span class="comment">// sorted</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="preprocessor">#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">friend</span> <span class="keyword">class </span>boost::serialization::access;</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">template</span><<span class="keyword">class</span> S> <span class="keywordtype">void</span> serialize(S&, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> version);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ae8caa7a28525415859b50e9beb194b0a"> 168</a></span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ae8caa7a28525415859b50e9beb194b0a">AddressUsers</a>();</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">~AddressUsers</a>();</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a2206029b2aa23284604263fef6f507e2"> 172</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a2206029b2aa23284604263fef6f507e2">AddressUsers</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a> *insn, <span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&);</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a8c00c66e1535f4694405b62f81fd4889"> 175</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a8c00c66e1535f4694405b62f81fd4889">AddressUsers</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&);</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a46c2191e941c27855df523f6eaa49763"> 184</a></span> <a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>* <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a46c2191e941c27855df523f6eaa49763">instructionExists</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>*) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a10a6e04c9547a13dfab90c587d503219"> 185</a></span> <a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>* <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a10a6e04c9547a13dfab90c587d503219">instructionExists</a>(rose_addr_t va) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a46703dce0e9ad2faa004cdee9d3e14fa"> 195</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a46703dce0e9ad2faa004cdee9d3e14fa">basicBlockExists</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a3fc88c516c1be590c1e5ac685e7c84b4"> 196</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a3fc88c516c1be590c1e5ac685e7c84b4">basicBlockExists</a>(rose_addr_t va) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ad315da90315c1e8d97a1134dc1d78b6e"> 206</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ad315da90315c1e8d97a1134dc1d78b6e">dataBlockExists</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a5475b5055384fe9f23dfea711710db11"> 207</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a5475b5055384fe9f23dfea711710db11">dataBlockExists</a>(rose_addr_t va, rose_addr_t <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a707d2010882940d7b54cc7e15520d05f">size</a>) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#af8bfe0958f1b38401b48caa3d869a97d"> 217</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#af8bfe0958f1b38401b48caa3d869a97d">findInstruction</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>*) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a1da9e22d8f81bf860ef4c9778aa95425"> 218</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a1da9e22d8f81bf860ef4c9778aa95425">findInstruction</a>(rose_addr_t va) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a7205f8b90bf073eb09a5cd4e5d6dc2e8"> 229</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a7205f8b90bf073eb09a5cd4e5d6dc2e8">findBasicBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a3c65bec2696c1fff479784079e2cfe31"> 230</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a3c65bec2696c1fff479784079e2cfe31">findBasicBlock</a>(rose_addr_t va) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#af9ec8466de906990b8142140422ae1b1"> 240</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#af9ec8466de906990b8142140422ae1b1">findDataBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a18d5c7217d2f7fc412291fb5437f5fbe"> 241</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a18d5c7217d2f7fc412291fb5437f5fbe">findDataBlock</a>(rose_addr_t va, rose_addr_t <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a707d2010882940d7b54cc7e15520d05f">size</a>) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#aa0ca6eaba7b01a59070de8f8503b449b"> 248</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#aa0ca6eaba7b01a59070de8f8503b449b">insertInstruction</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>*, <span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&);</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> </div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#aaad622068fe68ed88cad2f2f7c8398e7"> 254</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#aaad622068fe68ed88cad2f2f7c8398e7">insertDataBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&);</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> </div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4ee0904943aca55a25b22d09e251d0c5"> 257</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4ee0904943aca55a25b22d09e251d0c5">insert</a>(<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a>&);</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a71f81d951cb14ea24b24ef2e56aab38d"> 263</a></span> <a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>* <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a71f81d951cb14ea24b24ef2e56aab38d">eraseInstruction</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>*, <span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4898450ae5c8d538324d4fbc9c7e1497"> 269</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4898450ae5c8d538324d4fbc9c7e1497">eraseDataBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&);</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#aa90100e5f0ea143bd8be72b8f58a999f"> 274</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#aa90100e5f0ea143bd8be72b8f58a999f">selectAllUsers</a>(<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a>&);</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a55a9f942aba2ff0f51d13736091e75c2"> 280</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a55a9f942aba2ff0f51d13736091e75c2">selectBasicBlocks</a>(<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a>&);</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> </div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a5a0316959e656400f6786e6825992674"> 286</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a5a0316959e656400f6786e6825992674">selectDataBlocks</a>(<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a>&);</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keyword">template</span><<span class="keyword">class</span> UserPredicate></div>
<div class="foldopen" id="foldopen00292" data-start="{" data-end="}">
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#abb7c44245ec171b732fd9598cd0d41b5"> 292</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#abb7c44245ec171b732fd9598cd0d41b5">select</a>(UserPredicate predicate)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> retval;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> &user: users_) {</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">if</span> (predicate(user))</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> retval.users_.push_back(user);</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> }</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">return</span> retval;</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> }</div>
</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a5ca3709891849d2b2ce862a69e6e3b4c"> 304</a></span> <span class="keyword">const</span> std::vector<AddressUser>& <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a5ca3709891849d2b2ce862a69e6e3b4c">addressUsers</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ab7326c4870069d6da8c43d9210050300"> 309</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ab7326c4870069d6da8c43d9210050300">instructionUsers</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> </div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ac52dab24b4e3d6f00ded7510c035c2df"> 314</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ac52dab24b4e3d6f00ded7510c035c2df">dataBlockUsers</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> </div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a0f238c4554d578bf6375aa68e650aef5"> 321</a></span> std::vector<SgAsmInstruction*> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a0f238c4554d578bf6375aa68e650aef5">instructions</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> </div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a381c5bb32b888d33d6cf2ad73c06b5df"> 328</a></span> std::vector<BasicBlockPtr> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a381c5bb32b888d33d6cf2ad73c06b5df">instructionOwners</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> </div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ae2d01ce005b0646f91f9776e407cf4e9"> 333</a></span> std::vector<DataBlockPtr> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ae2d01ce005b0646f91f9776e407cf4e9">dataBlocks</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> </div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a707d2010882940d7b54cc7e15520d05f"> 336</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a707d2010882940d7b54cc7e15520d05f">size</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a0f7ac0a824c30ad966a03aa9af7d5ed8"> 341</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a0f7ac0a824c30ad966a03aa9af7d5ed8">isEmpty</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> </div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a6833490ce80bf95e09ae5d6c799fbe69"> 344</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a6833490ce80bf95e09ae5d6c799fbe69">intersection</a>(<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> </div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a35fb2c9e0f47caa33c3736d1c3ddbe5b"> 347</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a35fb2c9e0f47caa33c3736d1c3ddbe5b">union_</a>(<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> </div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4f6a3adcec33a830d841fc0cf345864f"> 350</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4f6a3adcec33a830d841fc0cf345864f">operator==</a>(<span class="keyword">const</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> &other) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a9f3fde192680f8c13ee2a4db65c9765e"> 353</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a9f3fde192680f8c13ee2a4db65c9765e">print</a>(std::ostream&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> </div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a6edf8ed137d6d3fde0530aac486f02b2"> 358</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a6edf8ed137d6d3fde0530aac486f02b2">isConsistent</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span>};</div>
</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> </div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> </div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span><span class="comment">// AddressUsageMap</span></div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> </div>
<div class="foldopen" id="foldopen00371" data-start="{" data-end="};">
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html"> 371</a></span><span class="keyword">class </span><a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html">AddressUsageMap</a> {</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <span class="keyword">using </span><a class="code hl_class" href="classSawyer_1_1Container_1_1IntervalMap.html">Map</a> = <a class="code hl_class" href="classSawyer_1_1Container_1_1IntervalMap.html">Sawyer::Container::IntervalMap<AddressInterval, AddressUsers></a>;</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1IntervalMap.html">Map</a> map_;</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span><span class="preprocessor">#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB</span></div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> <span class="keyword">friend</span> <span class="keyword">class </span>boost::serialization::access;</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> <span class="keyword">template</span><<span class="keyword">class</span> S> <span class="keywordtype">void</span> serialize(S&, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> version);</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> </div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html">AddressUsageMap</a>();</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html">~AddressUsageMap</a>();</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> </div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aca6be5362dbc1bad3d7b35c976f8a500"> 390</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aca6be5362dbc1bad3d7b35c976f8a500">isEmpty</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> </div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a342bd7c71b3de797bc181551e1d98d81"> 393</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a342bd7c71b3de797bc181551e1d98d81">clear</a>();</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> </div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#afe746c0c45ff5b356404831cb2a50fba"> 398</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#afe746c0c45ff5b356404831cb2a50fba">size</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aa583c8c9c821943595f34701f20146ec"> 404</a></span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Interval.html">AddressInterval</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aa583c8c9c821943595f34701f20146ec">hull</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> </div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a551b56038c1899f7d0c9c054a56c4730"> 409</a></span> <a class="code hl_class" href="classSawyer_1_1Container_1_1IntervalSet.html">AddressIntervalSet</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a551b56038c1899f7d0c9c054a56c4730">extent</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> </div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a16bb3d870b716b07ed1345174aff2249"> 416</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a16bb3d870b716b07ed1345174aff2249">exists</a>(rose_addr_t) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> </div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a23ca843b9a624e05d0a51289c3b3bf94"> 425</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a23ca843b9a624e05d0a51289c3b3bf94">anyExists</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Interval.html">AddressInterval</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a32e69288af4d8b549e0beace18e0ece6"> 426</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a32e69288af4d8b549e0beace18e0ece6">anyExists</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1IntervalSet.html">AddressIntervalSet</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ac374f1cbbfc3b9804a9c6cb8fc3f074f"> 436</a></span> <a class="code hl_class" href="classSawyer_1_1Container_1_1IntervalSet.html">AddressIntervalSet</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ac374f1cbbfc3b9804a9c6cb8fc3f074f">unusedExtent</a>(<span class="keywordtype">size_t</span> nBits) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a9f1d8b45284a0cad0476c08a20eca8c8"> 437</a></span> <a class="code hl_class" href="classSawyer_1_1Container_1_1IntervalSet.html">AddressIntervalSet</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a9f1d8b45284a0cad0476c08a20eca8c8">unusedExtent</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Interval.html">AddressInterval</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a02c95f51594a8c9b76a5efc280acfbed"> 438</a></span> <a class="code hl_class" href="classSawyer_1_1Container_1_1IntervalSet.html">AddressIntervalSet</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a02c95f51594a8c9b76a5efc280acfbed">unusedExtent</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1IntervalSet.html">AddressIntervalSet</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad1e84e0df29869ff17c27618875acaf1"> 446</a></span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Interval.html">AddressInterval</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad1e84e0df29869ff17c27618875acaf1">nextUnused</a>(rose_addr_t minVa) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> </div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#add0ddc34f5d79b8f0912ec1cc2ab48fe"> 453</a></span> <a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>* <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#add0ddc34f5d79b8f0912ec1cc2ab48fe">instructionExists</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>*) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aa770f50e46d3db46a119fdaf0b8961d1"> 454</a></span> <a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>* <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aa770f50e46d3db46a119fdaf0b8961d1">instructionExists</a>(rose_addr_t va) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad2171f82b7d9a6b821978a3ec7231699"> 465</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad2171f82b7d9a6b821978a3ec7231699">basicBlockExists</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a5b93e544af0414bbde53c9f73db95909"> 466</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a5b93e544af0414bbde53c9f73db95909">basicBlockExists</a>(rose_addr_t startOfBlock) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a096b86ea1c9a55d039e84a80b19ffbed"> 475</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a096b86ea1c9a55d039e84a80b19ffbed">dataBlockExists</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a0014d45a62e594a723ddec8f8f007501"> 476</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a0014d45a62e594a723ddec8f8f007501">dataBlockExists</a>(rose_addr_t va, rose_addr_t <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#afe746c0c45ff5b356404831cb2a50fba">size</a>) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ab92a93fd87cd8a2ce873b70a59c8960d"> 486</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ab92a93fd87cd8a2ce873b70a59c8960d">findInstruction</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>*) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a515458819be08635d3e4f444fdbb601b"> 487</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a515458819be08635d3e4f444fdbb601b">findInstruction</a>(rose_addr_t va) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad97e19dd69bfdb9fed43e192abf85de1"> 498</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad97e19dd69bfdb9fed43e192abf85de1">findBasicBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a93434e9b13cf794c2db28eb395c5dd40"> 499</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a93434e9b13cf794c2db28eb395c5dd40">findBasicBlock</a>(rose_addr_t va) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#afb294e0f4b759a68c46aa6824fc91d80"> 509</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#afb294e0f4b759a68c46aa6824fc91d80">findDataBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a036a3352284bdb6dfd966925ab428384"> 510</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a036a3352284bdb6dfd966925ab428384">findDataBlock</a>(rose_addr_t va, rose_addr_t <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#afe746c0c45ff5b356404831cb2a50fba">size</a>) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ae8a7a2956b099936ff3292ec5de42e06"> 518</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ae8a7a2956b099936ff3292ec5de42e06">insertInstruction</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>*, <span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&);</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> </div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a0fd147c6aa9b87110d01e9ebee815bb9"> 524</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">AddressUser</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a0fd147c6aa9b87110d01e9ebee815bb9">insertDataBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&);</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> </div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a03b2321f80754602f078b08c6f59ada0"> 531</a></span> <a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>* <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a03b2321f80754602f078b08c6f59ada0">eraseInstruction</a>(<a class="code hl_class" href="classSgAsmInstruction.html">SgAsmInstruction</a>*, <span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">BasicBlockPtr</a>&);</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> </div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a356322e37d7b6e1d4a4292c4c71b1232"> 536</a></span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a356322e37d7b6e1d4a4292c4c71b1232">eraseDataBlock</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">DataBlockPtr</a>&);</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> </div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a54afc1e6c988f82b68396a77fe4f4f85"> 546</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a54afc1e6c988f82b68396a77fe4f4f85">spanning</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Interval.html">AddressInterval</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> </div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <span class="keyword">template</span><<span class="keyword">class</span> UserPredicate></div>
<div class="foldopen" id="foldopen00549" data-start="{" data-end="}">
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a0aae655048152a59566b64b3ce8f045c"> 549</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a0aae655048152a59566b64b3ce8f045c">spanning</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Interval.html">AddressInterval</a> &interval, UserPredicate userPredicate)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> retval;</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keywordtype">size_t</span> nIters = 0;</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Map_1_1Node.html">Map::Node</a> &node: map_.<a class="code hl_function" href="classSawyer_1_1Container_1_1IntervalMap.html#aa4e9edf0de829a794a10703c21228de0">findAll</a>(interval)) {</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> users = node.value().<a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#abb7c44245ec171b732fd9598cd0d41b5">select</a>(userPredicate);</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> retval = 0==nIters++ ? users : retval.<a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a6833490ce80bf95e09ae5d6c799fbe69">intersection</a>(users);</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="keywordflow">if</span> (retval.<a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a0f7ac0a824c30ad966a03aa9af7d5ed8">isEmpty</a>())</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> }</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">return</span> retval;</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> }</div>
</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad71e8e7dc436ccc39ce7dab075134f51"> 571</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad71e8e7dc436ccc39ce7dab075134f51">overlapping</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Interval.html">AddressInterval</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> </div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> <span class="keyword">template</span><<span class="keyword">class</span> UserPredicate></div>
<div class="foldopen" id="foldopen00574" data-start="{" data-end="}">
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aa5d62551c81cf0df7357261e6443ff26"> 574</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aa5d62551c81cf0df7357261e6443ff26">overlapping</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Interval.html">AddressInterval</a> &interval, UserPredicate userPredicate)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> retval;</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Map_1_1Node.html">Map::Node</a> &node: map_.<a class="code hl_function" href="classSawyer_1_1Container_1_1IntervalMap.html#aa4e9edf0de829a794a10703c21228de0">findAll</a>(interval))</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> retval.<a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4ee0904943aca55a25b22d09e251d0c5">insert</a>(node.value().select(userPredicate));</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> <span class="keywordflow">return</span> retval;</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> }</div>
</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="comment">// FIXME[Robb P. Matzke 2014-08-26]: not implemented yet</span></div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a4c995c751faf8ceeaef57542f296254d"> 592</a></span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">AddressUsers</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a4c995c751faf8ceeaef57542f296254d">containedIn</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Interval.html">AddressInterval</a>&) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> </div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <span class="comment">//template<class UserPredicate></span></div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="comment">//AddressUsers containedIn(const AddressInterval &interval, UserPredicate userPredicate) const {...}</span></div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#af24082b068b5ec2ee605a8624ad7883e"> 603</a></span> <a class="code hl_class" href="classSawyer_1_1Optional.html">Sawyer::Optional<rose_addr_t></a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#af24082b068b5ec2ee605a8624ad7883e">leastUnmapped</a>(rose_addr_t startVa) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> </div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad3d44a0d7a1586df8982d62ac6ca605c"> 608</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad3d44a0d7a1586df8982d62ac6ca605c">print</a>(std::ostream&, <span class="keyword">const</span> std::string &prefix=<span class="stringliteral">""</span>) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> </div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a80e7b20c3d73cf8645341f258937c63b"> 613</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a80e7b20c3d73cf8645341f258937c63b">checkConsistency</a>() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span>};</div>
</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> </div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> </div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap</a></div><div class="ttdoc">Address usage map.</div><div class="ttdef"><b>Definition</b> <a href="AddressUsageMap_8h_source.html#l00371">AddressUsageMap.h:371</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a0014d45a62e594a723ddec8f8f007501"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a0014d45a62e594a723ddec8f8f007501">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::dataBlockExists</a></div><div class="ttdeci">DataBlockPtr dataBlockExists(rose_addr_t va, rose_addr_t size) const</div><div class="ttdoc">Determines if a data block exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a02c95f51594a8c9b76a5efc280acfbed"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a02c95f51594a8c9b76a5efc280acfbed">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::unusedExtent</a></div><div class="ttdeci">AddressIntervalSet unusedExtent(const AddressIntervalSet &) const</div><div class="ttdoc">Addresses not represented.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a036a3352284bdb6dfd966925ab428384"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a036a3352284bdb6dfd966925ab428384">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::findDataBlock</a></div><div class="ttdeci">AddressUser findDataBlock(rose_addr_t va, rose_addr_t size) const</div><div class="ttdoc">Find an AddressUser record for the specified data block, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a03b2321f80754602f078b08c6f59ada0"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a03b2321f80754602f078b08c6f59ada0">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::eraseInstruction</a></div><div class="ttdeci">SgAsmInstruction * eraseInstruction(SgAsmInstruction *, const BasicBlockPtr &)</div><div class="ttdoc">Remove the specified instruction/basic block pair.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a096b86ea1c9a55d039e84a80b19ffbed"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a096b86ea1c9a55d039e84a80b19ffbed">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::dataBlockExists</a></div><div class="ttdeci">DataBlockPtr dataBlockExists(const DataBlockPtr &) const</div><div class="ttdoc">Determines if a data block exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a0aae655048152a59566b64b3ce8f045c"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a0aae655048152a59566b64b3ce8f045c">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::spanning</a></div><div class="ttdeci">AddressUsers spanning(const AddressInterval &interval, UserPredicate userPredicate) const</div><div class="ttdoc">Find address users that span the entire interval.</div><div class="ttdef"><b>Definition</b> <a href="AddressUsageMap_8h_source.html#l00549">AddressUsageMap.h:549</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a0fd147c6aa9b87110d01e9ebee815bb9"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a0fd147c6aa9b87110d01e9ebee815bb9">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::insertDataBlock</a></div><div class="ttdeci">AddressUser insertDataBlock(const DataBlockPtr &)</div><div class="ttdoc">Insert the data block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a16bb3d870b716b07ed1345174aff2249"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a16bb3d870b716b07ed1345174aff2249">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::exists</a></div><div class="ttdeci">bool exists(rose_addr_t) const</div><div class="ttdoc">Predicate to determine whether an address is used.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a23ca843b9a624e05d0a51289c3b3bf94"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a23ca843b9a624e05d0a51289c3b3bf94">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::anyExists</a></div><div class="ttdeci">bool anyExists(const AddressInterval &) const</div><div class="ttdoc">Predicate to determine whether any of the specified addresses are used.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a32e69288af4d8b549e0beace18e0ece6"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a32e69288af4d8b549e0beace18e0ece6">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::anyExists</a></div><div class="ttdeci">bool anyExists(const AddressIntervalSet &) const</div><div class="ttdoc">Predicate to determine whether any of the specified addresses are used.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a342bd7c71b3de797bc181551e1d98d81"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a342bd7c71b3de797bc181551e1d98d81">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Reset map to initial empty state.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a356322e37d7b6e1d4a4292c4c71b1232"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a356322e37d7b6e1d4a4292c4c71b1232">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::eraseDataBlock</a></div><div class="ttdeci">DataBlockPtr eraseDataBlock(const DataBlockPtr &)</div><div class="ttdoc">Remove the specified data block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a4c995c751faf8ceeaef57542f296254d"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a4c995c751faf8ceeaef57542f296254d">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::containedIn</a></div><div class="ttdeci">AddressUsers containedIn(const AddressInterval &) const</div><div class="ttdoc">Users that are fully contained in the interval.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a515458819be08635d3e4f444fdbb601b"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a515458819be08635d3e4f444fdbb601b">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::findInstruction</a></div><div class="ttdeci">AddressUser findInstruction(rose_addr_t va) const</div><div class="ttdoc">Find an AddressUser record for the specified instruction, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a54afc1e6c988f82b68396a77fe4f4f85"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a54afc1e6c988f82b68396a77fe4f4f85">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::spanning</a></div><div class="ttdeci">AddressUsers spanning(const AddressInterval &) const</div><div class="ttdoc">Find address users that span the entire interval.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a551b56038c1899f7d0c9c054a56c4730"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a551b56038c1899f7d0c9c054a56c4730">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::extent</a></div><div class="ttdeci">AddressIntervalSet extent() const</div><div class="ttdoc">Addresses represented.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a5b93e544af0414bbde53c9f73db95909"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a5b93e544af0414bbde53c9f73db95909">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::basicBlockExists</a></div><div class="ttdeci">BasicBlockPtr basicBlockExists(rose_addr_t startOfBlock) const</div><div class="ttdoc">Determine if a basic block exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a80e7b20c3d73cf8645341f258937c63b"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a80e7b20c3d73cf8645341f258937c63b">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::checkConsistency</a></div><div class="ttdeci">void checkConsistency() const</div><div class="ttdoc">Check invariants.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a93434e9b13cf794c2db28eb395c5dd40"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a93434e9b13cf794c2db28eb395c5dd40">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::findBasicBlock</a></div><div class="ttdeci">AddressUser findBasicBlock(rose_addr_t va) const</div><div class="ttdoc">Find an AddressUser record for the specified basic block, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_a9f1d8b45284a0cad0476c08a20eca8c8"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#a9f1d8b45284a0cad0476c08a20eca8c8">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::unusedExtent</a></div><div class="ttdeci">AddressIntervalSet unusedExtent(const AddressInterval &) const</div><div class="ttdoc">Addresses not represented.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_aa583c8c9c821943595f34701f20146ec"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aa583c8c9c821943595f34701f20146ec">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::hull</a></div><div class="ttdeci">AddressInterval hull() const</div><div class="ttdoc">Minimum and maximum used addresses.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_aa5d62551c81cf0df7357261e6443ff26"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aa5d62551c81cf0df7357261e6443ff26">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::overlapping</a></div><div class="ttdeci">AddressUsers overlapping(const AddressInterval &interval, UserPredicate userPredicate) const</div><div class="ttdoc">Users that overlap the interval.</div><div class="ttdef"><b>Definition</b> <a href="AddressUsageMap_8h_source.html#l00574">AddressUsageMap.h:574</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_aa770f50e46d3db46a119fdaf0b8961d1"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aa770f50e46d3db46a119fdaf0b8961d1">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::instructionExists</a></div><div class="ttdeci">SgAsmInstruction * instructionExists(rose_addr_t va) const</div><div class="ttdoc">Determines whether the specified instruction or an equivalent exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_ab92a93fd87cd8a2ce873b70a59c8960d"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ab92a93fd87cd8a2ce873b70a59c8960d">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::findInstruction</a></div><div class="ttdeci">AddressUser findInstruction(SgAsmInstruction *) const</div><div class="ttdoc">Find an AddressUser record for the specified instruction, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_ac374f1cbbfc3b9804a9c6cb8fc3f074f"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ac374f1cbbfc3b9804a9c6cb8fc3f074f">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::unusedExtent</a></div><div class="ttdeci">AddressIntervalSet unusedExtent(size_t nBits) const</div><div class="ttdoc">Addresses not represented.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_aca6be5362dbc1bad3d7b35c976f8a500"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#aca6be5362dbc1bad3d7b35c976f8a500">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::isEmpty</a></div><div class="ttdeci">bool isEmpty() const</div><div class="ttdoc">Determines whether a map is empty.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_ad1e84e0df29869ff17c27618875acaf1"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad1e84e0df29869ff17c27618875acaf1">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::nextUnused</a></div><div class="ttdeci">AddressInterval nextUnused(rose_addr_t minVa) const</div><div class="ttdoc">Next unused address interval.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_ad2171f82b7d9a6b821978a3ec7231699"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad2171f82b7d9a6b821978a3ec7231699">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::basicBlockExists</a></div><div class="ttdeci">BasicBlockPtr basicBlockExists(const BasicBlockPtr &) const</div><div class="ttdoc">Determine if a basic block exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_ad3d44a0d7a1586df8982d62ac6ca605c"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad3d44a0d7a1586df8982d62ac6ca605c">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::print</a></div><div class="ttdeci">void print(std::ostream &, const std::string &prefix="") const</div><div class="ttdoc">Dump the contents of this AUM to a stream.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_ad71e8e7dc436ccc39ce7dab075134f51"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad71e8e7dc436ccc39ce7dab075134f51">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::overlapping</a></div><div class="ttdeci">AddressUsers overlapping(const AddressInterval &) const</div><div class="ttdoc">Users that overlap the interval.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_ad97e19dd69bfdb9fed43e192abf85de1"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ad97e19dd69bfdb9fed43e192abf85de1">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::findBasicBlock</a></div><div class="ttdeci">AddressUser findBasicBlock(const BasicBlockPtr &) const</div><div class="ttdoc">Find an AddressUser record for the specified basic block, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_add0ddc34f5d79b8f0912ec1cc2ab48fe"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#add0ddc34f5d79b8f0912ec1cc2ab48fe">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::instructionExists</a></div><div class="ttdeci">SgAsmInstruction * instructionExists(SgAsmInstruction *) const</div><div class="ttdoc">Determines whether the specified instruction or an equivalent exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_ae8a7a2956b099936ff3292ec5de42e06"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#ae8a7a2956b099936ff3292ec5de42e06">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::insertInstruction</a></div><div class="ttdeci">AddressUser insertInstruction(SgAsmInstruction *, const BasicBlockPtr &)</div><div class="ttdoc">Insert the instruction along with an owning basic block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_af24082b068b5ec2ee605a8624ad7883e"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#af24082b068b5ec2ee605a8624ad7883e">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::leastUnmapped</a></div><div class="ttdeci">Sawyer::Optional< rose_addr_t > leastUnmapped(rose_addr_t startVa) const</div><div class="ttdoc">Returns the least unmapped address with specified lower limit.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_afb294e0f4b759a68c46aa6824fc91d80"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#afb294e0f4b759a68c46aa6824fc91d80">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::findDataBlock</a></div><div class="ttdeci">AddressUser findDataBlock(const DataBlockPtr &) const</div><div class="ttdoc">Find an AddressUser record for the specified data block, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap_html_afe746c0c45ff5b356404831cb2a50fba"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsageMap.html#afe746c0c45ff5b356404831cb2a50fba">Rose::BinaryAnalysis::Partitioner2::AddressUsageMap::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">Number of addresses represented by the map.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html">Rose::BinaryAnalysis::Partitioner2::AddressUser</a></div><div class="ttdoc">Address usage item.</div><div class="ttdef"><b>Definition</b> <a href="AddressUsageMap_8h_source.html#l00036">AddressUsageMap.h:36</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a07db47414c02c3eb42b1ad2b76da70b0"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a07db47414c02c3eb42b1ad2b76da70b0">Rose::BinaryAnalysis::Partitioner2::AddressUser::operator==</a></div><div class="ttdeci">bool operator==(const AddressUser &other) const</div><div class="ttdoc">Compare two users for equality.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a083fb8472148ce3bf0a0bf0dd446a0d9"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a083fb8472148ce3bf0a0bf0dd446a0d9">Rose::BinaryAnalysis::Partitioner2::AddressUser::insertBasicBlock</a></div><div class="ttdeci">void insertBasicBlock(const BasicBlockPtr &bblock)</div><div class="ttdoc">Add another basic block to the set of basic blocks.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a22d82c4c3816bf06bc2b33e6925c54bc"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a22d82c4c3816bf06bc2b33e6925c54bc">Rose::BinaryAnalysis::Partitioner2::AddressUser::isBasicBlock</a></div><div class="ttdeci">bool isBasicBlock() const</div><div class="ttdoc">Predicate returning true if user is a basic block or instruction.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a354faeac85c07356fe3605510c2289ce"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a354faeac85c07356fe3605510c2289ce">Rose::BinaryAnalysis::Partitioner2::AddressUser::AddressUser</a></div><div class="ttdeci">AddressUser(SgAsmInstruction *, const BasicBlockPtr &)</div><div class="ttdoc">Constructs new user which is an instruction and its basic block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a52e66fe54f9bab3c64e8f80540c700f5"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a52e66fe54f9bab3c64e8f80540c700f5">Rose::BinaryAnalysis::Partitioner2::AddressUser::isConsistent</a></div><div class="ttdeci">bool isConsistent() const</div><div class="ttdoc">Perform logic consistency checks.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a57e08d9d92e854b79f5e0d12f7137044"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a57e08d9d92e854b79f5e0d12f7137044">Rose::BinaryAnalysis::Partitioner2::AddressUser::eraseBasicBlock</a></div><div class="ttdeci">void eraseBasicBlock(const BasicBlockPtr &bblock)</div><div class="ttdoc">Remove a basic block from the set of basic blocks.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a5e5fde53554a234b56b5a82e5b751443"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a5e5fde53554a234b56b5a82e5b751443">Rose::BinaryAnalysis::Partitioner2::AddressUser::isBlockEntry</a></div><div class="ttdeci">BasicBlockPtr isBlockEntry() const</div><div class="ttdoc">Determines if this user is a first instruction of a basic block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a61933a7d1a1ff63779eff29293a5d188"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a61933a7d1a1ff63779eff29293a5d188">Rose::BinaryAnalysis::Partitioner2::AddressUser::print</a></div><div class="ttdeci">void print(std::ostream &) const</div><div class="ttdoc">Print the pair on one line.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a7066990380de68b15ac932c05b87c21b"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a7066990380de68b15ac932c05b87c21b">Rose::BinaryAnalysis::Partitioner2::AddressUser::address</a></div><div class="ttdeci">rose_addr_t address() const</div><div class="ttdoc">Address of user.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a86142ec885d406a5d0f60791840dca33"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a86142ec885d406a5d0f60791840dca33">Rose::BinaryAnalysis::Partitioner2::AddressUser::isDataBlock</a></div><div class="ttdeci">bool isDataBlock() const</div><div class="ttdoc">Predicate returning true if user is a data block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_a8b41e2992c0ac74ef4ced760f2a4060c"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#a8b41e2992c0ac74ef4ced760f2a4060c">Rose::BinaryAnalysis::Partitioner2::AddressUser::isEmpty</a></div><div class="ttdeci">bool isEmpty() const</div><div class="ttdoc">True if this object was default constructed.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_aaace34fa5debcf7a5209d41a04995cd5"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#aaace34fa5debcf7a5209d41a04995cd5">Rose::BinaryAnalysis::Partitioner2::AddressUser::operator<</a></div><div class="ttdeci">bool operator<(const AddressUser &) const</div><div class="ttdoc">Compare two users for sorting.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_ab432912037ec68d8e17f08d0a57963bf"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ab432912037ec68d8e17f08d0a57963bf">Rose::BinaryAnalysis::Partitioner2::AddressUser::basicBlocks</a></div><div class="ttdeci">const std::vector< BasicBlockPtr > & basicBlocks() const</div><div class="ttdoc">Returns all basic blocks to which this instruction belongs.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_ac1a9d3211aa39e3defde99fa1127994a"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ac1a9d3211aa39e3defde99fa1127994a">Rose::BinaryAnalysis::Partitioner2::AddressUser::dataBlock</a></div><div class="ttdeci">DataBlockPtr dataBlock() const</div><div class="ttdoc">Returns the data block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_ac7d2df49183a164838bdee48f50d7854"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ac7d2df49183a164838bdee48f50d7854">Rose::BinaryAnalysis::Partitioner2::AddressUser::insn</a></div><div class="ttdeci">SgAsmInstruction * insn() const</div><div class="ttdoc">Return the instruction.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_ad8124f5362f273999a479edc2333b7c6"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ad8124f5362f273999a479edc2333b7c6">Rose::BinaryAnalysis::Partitioner2::AddressUser::AddressUser</a></div><div class="ttdeci">AddressUser(const DataBlockPtr &)</div><div class="ttdoc">Constructs a new user which is a data block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_adcf71115b154953a42c3dc2394d9821b"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#adcf71115b154953a42c3dc2394d9821b">Rose::BinaryAnalysis::Partitioner2::AddressUser::firstBasicBlock</a></div><div class="ttdeci">BasicBlockPtr firstBasicBlock() const</div><div class="ttdoc">Returns an arbitrary basic block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser_html_ae407088931672e241cd17ee3923a0de1"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUser.html#ae407088931672e241cd17ee3923a0de1">Rose::BinaryAnalysis::Partitioner2::AddressUser::AddressUser</a></div><div class="ttdeci">AddressUser()</div><div class="ttdoc">Default constructed user is empty.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html">Rose::BinaryAnalysis::Partitioner2::AddressUsers</a></div><div class="ttdoc">List of virtual address users.</div><div class="ttdef"><b>Definition</b> <a href="AddressUsageMap_8h_source.html#l00157">AddressUsageMap.h:157</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a0f238c4554d578bf6375aa68e650aef5"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a0f238c4554d578bf6375aa68e650aef5">Rose::BinaryAnalysis::Partitioner2::AddressUsers::instructions</a></div><div class="ttdeci">std::vector< SgAsmInstruction * > instructions() const</div><div class="ttdoc">Returns all instructions.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a0f7ac0a824c30ad966a03aa9af7d5ed8"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a0f7ac0a824c30ad966a03aa9af7d5ed8">Rose::BinaryAnalysis::Partitioner2::AddressUsers::isEmpty</a></div><div class="ttdeci">bool isEmpty() const</div><div class="ttdoc">Determines whether this address user list is empty.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a10a6e04c9547a13dfab90c587d503219"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a10a6e04c9547a13dfab90c587d503219">Rose::BinaryAnalysis::Partitioner2::AddressUsers::instructionExists</a></div><div class="ttdeci">SgAsmInstruction * instructionExists(rose_addr_t va) const</div><div class="ttdoc">Determines whether the specified instruction or an equivalent exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a18d5c7217d2f7fc412291fb5437f5fbe"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a18d5c7217d2f7fc412291fb5437f5fbe">Rose::BinaryAnalysis::Partitioner2::AddressUsers::findDataBlock</a></div><div class="ttdeci">AddressUser findDataBlock(rose_addr_t va, rose_addr_t size) const</div><div class="ttdoc">Find an AddressUser record for the specified data block, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a1da9e22d8f81bf860ef4c9778aa95425"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a1da9e22d8f81bf860ef4c9778aa95425">Rose::BinaryAnalysis::Partitioner2::AddressUsers::findInstruction</a></div><div class="ttdeci">AddressUser findInstruction(rose_addr_t va) const</div><div class="ttdoc">Find an AddressUser record for the specified instruction, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a2206029b2aa23284604263fef6f507e2"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a2206029b2aa23284604263fef6f507e2">Rose::BinaryAnalysis::Partitioner2::AddressUsers::AddressUsers</a></div><div class="ttdeci">AddressUsers(SgAsmInstruction *insn, const BasicBlockPtr &)</div><div class="ttdoc">Constructs a list having one instruction user.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a35fb2c9e0f47caa33c3736d1c3ddbe5b"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a35fb2c9e0f47caa33c3736d1c3ddbe5b">Rose::BinaryAnalysis::Partitioner2::AddressUsers::union_</a></div><div class="ttdeci">AddressUsers union_(const AddressUsers &) const</div><div class="ttdoc">Computes the union of this list with another.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a381c5bb32b888d33d6cf2ad73c06b5df"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a381c5bb32b888d33d6cf2ad73c06b5df">Rose::BinaryAnalysis::Partitioner2::AddressUsers::instructionOwners</a></div><div class="ttdeci">std::vector< BasicBlockPtr > instructionOwners() const</div><div class="ttdoc">Returns all basic blocks.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a3c65bec2696c1fff479784079e2cfe31"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a3c65bec2696c1fff479784079e2cfe31">Rose::BinaryAnalysis::Partitioner2::AddressUsers::findBasicBlock</a></div><div class="ttdeci">AddressUser findBasicBlock(rose_addr_t va) const</div><div class="ttdoc">Find an AddressUser record for the specified basic block, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a3fc88c516c1be590c1e5ac685e7c84b4"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a3fc88c516c1be590c1e5ac685e7c84b4">Rose::BinaryAnalysis::Partitioner2::AddressUsers::basicBlockExists</a></div><div class="ttdeci">BasicBlockPtr basicBlockExists(rose_addr_t va) const</div><div class="ttdoc">Determines whether the specified basic block or an equivalent exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a46703dce0e9ad2faa004cdee9d3e14fa"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a46703dce0e9ad2faa004cdee9d3e14fa">Rose::BinaryAnalysis::Partitioner2::AddressUsers::basicBlockExists</a></div><div class="ttdeci">BasicBlockPtr basicBlockExists(const BasicBlockPtr &) const</div><div class="ttdoc">Determines whether the specified basic block or an equivalent exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a46c2191e941c27855df523f6eaa49763"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a46c2191e941c27855df523f6eaa49763">Rose::BinaryAnalysis::Partitioner2::AddressUsers::instructionExists</a></div><div class="ttdeci">SgAsmInstruction * instructionExists(SgAsmInstruction *) const</div><div class="ttdoc">Determines whether the specified instruction or an equivalent exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a4898450ae5c8d538324d4fbc9c7e1497"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4898450ae5c8d538324d4fbc9c7e1497">Rose::BinaryAnalysis::Partitioner2::AddressUsers::eraseDataBlock</a></div><div class="ttdeci">DataBlockPtr eraseDataBlock(const DataBlockPtr &)</div><div class="ttdoc">Erase a data block from this list.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a4ee0904943aca55a25b22d09e251d0c5"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4ee0904943aca55a25b22d09e251d0c5">Rose::BinaryAnalysis::Partitioner2::AddressUsers::insert</a></div><div class="ttdeci">void insert(const AddressUsers &)</div><div class="ttdoc">Insert one set of address users into another.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a4f6a3adcec33a830d841fc0cf345864f"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a4f6a3adcec33a830d841fc0cf345864f">Rose::BinaryAnalysis::Partitioner2::AddressUsers::operator==</a></div><div class="ttdeci">bool operator==(const AddressUsers &other) const</div><div class="ttdoc">True if two lists are equal.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a5475b5055384fe9f23dfea711710db11"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a5475b5055384fe9f23dfea711710db11">Rose::BinaryAnalysis::Partitioner2::AddressUsers::dataBlockExists</a></div><div class="ttdeci">DataBlockPtr dataBlockExists(rose_addr_t va, rose_addr_t size) const</div><div class="ttdoc">Determines whether the specified data block or an equivalent exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a55a9f942aba2ff0f51d13736091e75c2"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a55a9f942aba2ff0f51d13736091e75c2">Rose::BinaryAnalysis::Partitioner2::AddressUsers::selectBasicBlocks</a></div><div class="ttdeci">static bool selectBasicBlocks(const AddressUser &)</div><div class="ttdoc">Selector to select instructions and basic blocks.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a5a0316959e656400f6786e6825992674"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a5a0316959e656400f6786e6825992674">Rose::BinaryAnalysis::Partitioner2::AddressUsers::selectDataBlocks</a></div><div class="ttdeci">static bool selectDataBlocks(const AddressUser &)</div><div class="ttdoc">Selector to select data blocks.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a5ca3709891849d2b2ce862a69e6e3b4c"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a5ca3709891849d2b2ce862a69e6e3b4c">Rose::BinaryAnalysis::Partitioner2::AddressUsers::addressUsers</a></div><div class="ttdeci">const std::vector< AddressUser > & addressUsers() const</div><div class="ttdoc">Return all address users.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a6833490ce80bf95e09ae5d6c799fbe69"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a6833490ce80bf95e09ae5d6c799fbe69">Rose::BinaryAnalysis::Partitioner2::AddressUsers::intersection</a></div><div class="ttdeci">AddressUsers intersection(const AddressUsers &) const</div><div class="ttdoc">Computes the intersection of this list with another.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a6edf8ed137d6d3fde0530aac486f02b2"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a6edf8ed137d6d3fde0530aac486f02b2">Rose::BinaryAnalysis::Partitioner2::AddressUsers::isConsistent</a></div><div class="ttdeci">bool isConsistent() const</div><div class="ttdoc">Check logical consistency.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a707d2010882940d7b54cc7e15520d05f"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a707d2010882940d7b54cc7e15520d05f">Rose::BinaryAnalysis::Partitioner2::AddressUsers::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">Number of address users.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a71f81d951cb14ea24b24ef2e56aab38d"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a71f81d951cb14ea24b24ef2e56aab38d">Rose::BinaryAnalysis::Partitioner2::AddressUsers::eraseInstruction</a></div><div class="ttdeci">SgAsmInstruction * eraseInstruction(SgAsmInstruction *, const BasicBlockPtr &)</div><div class="ttdoc">Erase an instruction/basic block pair from this list.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a7205f8b90bf073eb09a5cd4e5d6dc2e8"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a7205f8b90bf073eb09a5cd4e5d6dc2e8">Rose::BinaryAnalysis::Partitioner2::AddressUsers::findBasicBlock</a></div><div class="ttdeci">AddressUser findBasicBlock(const BasicBlockPtr &) const</div><div class="ttdoc">Find an AddressUser record for the specified basic block, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a8c00c66e1535f4694405b62f81fd4889"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a8c00c66e1535f4694405b62f81fd4889">Rose::BinaryAnalysis::Partitioner2::AddressUsers::AddressUsers</a></div><div class="ttdeci">AddressUsers(const DataBlockPtr &)</div><div class="ttdoc">Constructs a list having one data block user.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_a9f3fde192680f8c13ee2a4db65c9765e"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#a9f3fde192680f8c13ee2a4db65c9765e">Rose::BinaryAnalysis::Partitioner2::AddressUsers::print</a></div><div class="ttdeci">void print(std::ostream &) const</div><div class="ttdoc">Prints pairs space separated on a single line.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_aa0ca6eaba7b01a59070de8f8503b449b"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#aa0ca6eaba7b01a59070de8f8503b449b">Rose::BinaryAnalysis::Partitioner2::AddressUsers::insertInstruction</a></div><div class="ttdeci">AddressUser insertInstruction(SgAsmInstruction *, const BasicBlockPtr &)</div><div class="ttdoc">Insert an instruction/basic block pair.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_aa90100e5f0ea143bd8be72b8f58a999f"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#aa90100e5f0ea143bd8be72b8f58a999f">Rose::BinaryAnalysis::Partitioner2::AddressUsers::selectAllUsers</a></div><div class="ttdeci">static bool selectAllUsers(const AddressUser &)</div><div class="ttdoc">Selector to select all users.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_aaad622068fe68ed88cad2f2f7c8398e7"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#aaad622068fe68ed88cad2f2f7c8398e7">Rose::BinaryAnalysis::Partitioner2::AddressUsers::insertDataBlock</a></div><div class="ttdeci">AddressUser insertDataBlock(const DataBlockPtr &)</div><div class="ttdoc">Insert a data block.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_ab7326c4870069d6da8c43d9210050300"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ab7326c4870069d6da8c43d9210050300">Rose::BinaryAnalysis::Partitioner2::AddressUsers::instructionUsers</a></div><div class="ttdeci">AddressUsers instructionUsers() const</div><div class="ttdoc">Returns all instruction users.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_abb7c44245ec171b732fd9598cd0d41b5"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#abb7c44245ec171b732fd9598cd0d41b5">Rose::BinaryAnalysis::Partitioner2::AddressUsers::select</a></div><div class="ttdeci">AddressUsers select(UserPredicate predicate) const</div><div class="ttdoc">Selects certain users from a list.</div><div class="ttdef"><b>Definition</b> <a href="AddressUsageMap_8h_source.html#l00292">AddressUsageMap.h:292</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_ac52dab24b4e3d6f00ded7510c035c2df"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ac52dab24b4e3d6f00ded7510c035c2df">Rose::BinaryAnalysis::Partitioner2::AddressUsers::dataBlockUsers</a></div><div class="ttdeci">AddressUsers dataBlockUsers() const</div><div class="ttdoc">Returns all data block users.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_ad315da90315c1e8d97a1134dc1d78b6e"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ad315da90315c1e8d97a1134dc1d78b6e">Rose::BinaryAnalysis::Partitioner2::AddressUsers::dataBlockExists</a></div><div class="ttdeci">DataBlockPtr dataBlockExists(const DataBlockPtr &) const</div><div class="ttdoc">Determines whether the specified data block or an equivalent exists.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_ae2d01ce005b0646f91f9776e407cf4e9"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ae2d01ce005b0646f91f9776e407cf4e9">Rose::BinaryAnalysis::Partitioner2::AddressUsers::dataBlocks</a></div><div class="ttdeci">std::vector< DataBlockPtr > dataBlocks() const</div><div class="ttdoc">Returns all data blocks.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_ae8caa7a28525415859b50e9beb194b0a"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#ae8caa7a28525415859b50e9beb194b0a">Rose::BinaryAnalysis::Partitioner2::AddressUsers::AddressUsers</a></div><div class="ttdeci">AddressUsers()</div><div class="ttdoc">Constructs an empty list.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_af8bfe0958f1b38401b48caa3d869a97d"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#af8bfe0958f1b38401b48caa3d869a97d">Rose::BinaryAnalysis::Partitioner2::AddressUsers::findInstruction</a></div><div class="ttdeci">AddressUser findInstruction(SgAsmInstruction *) const</div><div class="ttdoc">Find an AddressUser record for the specified instruction, or equivalent.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers_html_af9ec8466de906990b8142140422ae1b1"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1Partitioner2_1_1AddressUsers.html#af9ec8466de906990b8142140422ae1b1">Rose::BinaryAnalysis::Partitioner2::AddressUsers::findDataBlock</a></div><div class="ttdeci">AddressUser findDataBlock(const DataBlockPtr &) const</div><div class="ttdoc">Find an AddressUser record for the specified data block, or equivalent.</div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1IntervalMap_html"><div class="ttname"><a href="classSawyer_1_1Container_1_1IntervalMap.html">Sawyer::Container::IntervalMap< AddressInterval, AddressUsers ></a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1IntervalMap_html_aa4e9edf0de829a794a10703c21228de0"><div class="ttname"><a href="classSawyer_1_1Container_1_1IntervalMap.html#aa4e9edf0de829a794a10703c21228de0">Sawyer::Container::IntervalMap::findAll</a></div><div class="ttdeci">boost::iterator_range< NodeIterator > findAll(const Interval &interval)</div><div class="ttdoc">Finds all nodes overlapping the specified interval.</div><div class="ttdef"><b>Definition</b> <a href="IntervalMap_8h_source.html#l00413">IntervalMap.h:413</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1IntervalSet_html"><div class="ttname"><a href="classSawyer_1_1Container_1_1IntervalSet.html">Sawyer::Container::IntervalSet< AddressInterval ></a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Interval_html"><div class="ttname"><a href="classSawyer_1_1Container_1_1Interval.html">Sawyer::Container::Interval< Address ></a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Map_1_1Node_html"><div class="ttname"><a href="classSawyer_1_1Container_1_1Map_1_1Node.html">Sawyer::Container::Map::Node</a></div><div class="ttdoc">Type for stored nodes.</div><div class="ttdef"><b>Definition</b> <a href="Sawyer_2Map_8h_source.html#l00107">Sawyer/Map.h:107</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Optional_html"><div class="ttname"><a href="classSawyer_1_1Optional.html">Sawyer::Optional</a></div><div class="ttdoc">Holds a value or nothing.</div><div class="ttdef"><b>Definition</b> <a href="Optional_8h_source.html#l00056">Optional.h:56</a></div></div>
<div class="ttc" id="aclassSawyer_1_1SharedPointer_html"><div class="ttname"><a href="classSawyer_1_1SharedPointer.html">Sawyer::SharedPointer< DataBlock ></a></div></div>
<div class="ttc" id="aclassSgAsmInstruction_html"><div class="ttname"><a href="classSgAsmInstruction.html">SgAsmInstruction</a></div><div class="ttdoc">Base class for machine instructions.</div><div class="ttdef"><b>Definition</b> <a href="binaryInstruction_8C_source.html#l43208">binaryInstruction.C:43208</a></div></div>
<div class="ttc" id="anamespaceRose_html"><div class="ttname"><a href="namespaceRose.html">Rose</a></div><div class="ttdoc">The ROSE library.</div><div class="ttdef"><b>Definition</b> <a href="BinaryTutorial_8dox_source.html#l00003">BinaryTutorial.dox:3</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Oct 2 2024 00:08:24 for ROSE by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>