Lines Matching defs:bblock_t
36 struct bblock_t;
60 bblock_link(bblock_t *block, enum bblock_link_kind kind)
67 struct bblock_t *block;
79 struct bblock_t {
81 DECLARE_RALLOC_CXX_OPERATORS(bblock_t)
83 explicit bblock_t(cfg_t *cfg);
85 void add_successor(void *mem_ctx, bblock_t *successor,
87 bool is_predecessor_of(const bblock_t *block,
89 bool is_successor_of(const bblock_t *block,
91 bool can_combine_with(const bblock_t *that) const;
92 void combine_with(bblock_t *that);
100 bblock_t *next();
101 const bblock_t *next() const;
102 bblock_t *prev();
103 const bblock_t *prev() const;
130 bblock_start(struct bblock_t *block)
136 bblock_start_const(const struct bblock_t *block)
142 bblock_end(struct bblock_t *block)
148 bblock_end_const(const struct bblock_t *block)
153 static inline struct bblock_t *
154 bblock_next(struct bblock_t *block)
159 return (struct bblock_t *)block->link.next;
162 static inline const struct bblock_t *
163 bblock_next_const(const struct bblock_t *block)
168 return (const struct bblock_t *)block->link.next;
171 static inline struct bblock_t *
172 bblock_prev(struct bblock_t *block)
177 return (struct bblock_t *)block->link.prev;
180 static inline const struct bblock_t *
181 bblock_prev_const(const struct bblock_t *block)
186 return (const struct bblock_t *)block->link.prev;
190 bblock_starts_with_control_flow(const struct bblock_t *block)
197 bblock_ends_with_control_flow(const struct bblock_t *block)
208 bblock_first_non_control_flow_inst(struct bblock_t *block)
221 bblock_last_non_control_flow_inst(struct bblock_t *block)
235 bblock_t::start()
241 bblock_t::start() const
247 bblock_t::end()
253 bblock_t::end() const
258 inline bblock_t *
259 bblock_t::next()
264 inline const bblock_t *
265 bblock_t::next() const
270 inline bblock_t *
271 bblock_t::prev()
276 inline const bblock_t *
277 bblock_t::prev() const
283 bblock_t::starts_with_control_flow() const
289 bblock_t::ends_with_control_flow() const
295 bblock_t::first_non_control_flow_inst()
301 bblock_t::last_non_control_flow_inst()
314 void remove_block(bblock_t *block);
316 bblock_t *first_block();
317 const bblock_t *first_block() const;
318 bblock_t *last_block();
319 const bblock_t *last_block() const;
321 bblock_t *new_block();
322 void set_next_block(bblock_t **cur, bblock_t *block, int ip);
329 * Propagate bblock_t::end_ip_delta data through the CFG.
339 struct bblock_t **blocks;
343 static inline struct bblock_t *
346 return (struct bblock_t *)exec_list_get_head(&cfg->block_list);
349 static inline const struct bblock_t *
352 return (const struct bblock_t *)exec_list_get_head_const(&cfg->block_list);
355 static inline struct bblock_t *
358 return (struct bblock_t *)exec_list_get_tail(&cfg->block_list);
361 static inline const struct bblock_t *
364 return (const struct bblock_t *)exec_list_get_tail_const(&cfg->block_list);
368 inline bblock_t *
374 const inline bblock_t *
380 inline bblock_t *
386 const inline bblock_t *
408 foreach_list_typed (bblock_t, __block, link, &(__cfg)->block_list)
411 foreach_list_typed_reverse (bblock_t, __block, link, &(__cfg)->block_list)
414 foreach_list_typed_safe (bblock_t, __block, link, &(__cfg)->block_list)
417 foreach_list_typed_reverse_safe (bblock_t, __block, link, &(__cfg)->block_list)
482 const bblock_t *
483 parent(const bblock_t *b) const
489 bblock_t *
490 parent(bblock_t *b) const
496 bblock_t *
497 intersect(bblock_t *b1, bblock_t *b2) const;
504 bblock_t **parents;