Lines Matching defs:bb_data
3038 static bool is_new_basic_block(struct basic_block_data *bb_data,
3043 if (basic_block_has_offset(&bb_data->visited, offset))
3045 if (basic_block_has_offset(&bb_data->queue, offset))
3051 static int add_basic_block(struct basic_block_data *bb_data,
3061 if (!is_new_basic_block(bb_data, dl))
3080 list_add_tail(&link->node, &bb_data->queue);
3085 static bool process_basic_block(struct basic_block_data *bb_data,
3095 if (basic_block_has_offset(&bb_data->visited, dl->al.offset))
3131 add_basic_block(bb_data, link, next_dl);
3141 add_basic_block(bb_data, link, next_dl);
3168 static void delete_basic_blocks(struct basic_block_data *bb_data)
3172 list_for_each_entry_safe(link, tmp, &bb_data->queue, node) {
3178 list_for_each_entry_safe(link, tmp, &bb_data->visited, node) {
3200 struct basic_block_data bb_data = {
3201 .queue = LIST_HEAD_INIT(bb_data.queue),
3202 .visited = LIST_HEAD_INIT(bb_data.visited),
3212 if (add_basic_block(&bb_data, /*parent=*/NULL, dl) < 0)
3216 while (!list_empty(&bb_data.queue)) {
3217 link = list_first_entry(&bb_data.queue, struct basic_block_link, node);
3219 if (process_basic_block(&bb_data, link, sym, dst)) {
3224 list_move(&link->node, &bb_data.visited);
3226 delete_basic_blocks(&bb_data);