Lines Matching refs:entry
21 struct block_range *entry = rb_entry(rb, struct block_range, node); in block_range__debug() local
23 assert(old < entry->start); in block_range__debug()
24 assert(entry->start <= entry->end); /* single instruction block; jump to a jump */ in block_range__debug()
26 old = entry->end; in block_range__debug()
35 struct block_range *entry; in block_range__find() local
39 entry = rb_entry(parent, struct block_range, node); in block_range__find()
41 if (addr < entry->start) in block_range__find()
43 else if (addr > entry->end) in block_range__find()
46 return entry; in block_range__find()
83 struct block_range *next, *entry = NULL; in block_range__create() local
88 entry = rb_entry(parent, struct block_range, node); in block_range__create()
90 if (start < entry->start) in block_range__create()
92 else if (start > entry->end) in block_range__create()
103 if (!entry) /* tree empty */ in block_range__create()
110 if (entry->end < start) { in block_range__create()
141 entry = malloc(sizeof(struct block_range)); in block_range__create()
142 if (!entry) in block_range__create()
145 *entry = (struct block_range){ in block_range__create()
152 rb_link_node(&entry->node, parent, p); in block_range__create()
153 rb_insert_color(&entry->node, &block_ranges.root); in block_range__create()
156 iter.start = entry; in block_range__create()
157 iter.end = entry; in block_range__create()
164 if (entry->start < start) { /* split: [e->start...][start...] */ in block_range__create()
170 .start = entry->start, in block_range__create()
172 .is_target = entry->is_target, in block_range__create()
175 .coverage = entry->coverage, in block_range__create()
176 .entry = entry->entry, in block_range__create()
179 entry->start = start; in block_range__create()
180 entry->is_target = 1; in block_range__create()
181 entry->entry = 0; in block_range__create()
183 rb_link_left_of_node(&head->node, &entry->node); in block_range__create()
187 } else if (entry->start == start) in block_range__create()
188 entry->is_target = 1; in block_range__create()
190 iter.start = entry; in block_range__create()
197 entry = iter.start; in block_range__create()
202 if (end < entry->end) { /* split: [...end][...e->end] */ in block_range__create()
209 .end = entry->end, in block_range__create()
211 .is_branch = entry->is_branch, in block_range__create()
213 .coverage = entry->coverage, in block_range__create()
214 .taken = entry->taken, in block_range__create()
215 .pred = entry->pred, in block_range__create()
218 entry->end = end; in block_range__create()
219 entry->is_branch = 1; in block_range__create()
220 entry->taken = 0; in block_range__create()
221 entry->pred = 0; in block_range__create()
223 rb_link_right_of_node(&tail->node, &entry->node); in block_range__create()
227 iter.end = entry; in block_range__create()
234 if (end == entry->end) { in block_range__create()
235 entry->is_branch = 1; in block_range__create()
236 iter.end = entry; in block_range__create()
240 next = block_range__next(entry); in block_range__create()
255 .start = entry->end + 1, in block_range__create()
261 rb_link_right_of_node(&tail->node, &entry->node); in block_range__create()
272 if (entry->end + 1 != next->start) { in block_range__create()
278 .start = entry->end + 1, in block_range__create()
289 entry = next; in block_range__create()