Lines Matching refs:bi
46 struct block_info *block_info__get(struct block_info *bi) in block_info__get() argument
48 if (bi) in block_info__get()
49 refcount_inc(&bi->refcnt); in block_info__get()
50 return bi; in block_info__get()
53 void block_info__put(struct block_info *bi) in block_info__put() argument
55 if (bi && refcount_dec_and_test(&bi->refcnt)) in block_info__put()
56 free(bi); in block_info__put()
61 struct block_info *bi = zalloc(sizeof(*bi)); in block_info__new() local
63 if (bi) in block_info__new()
64 refcount_set(&bi->refcnt, 1); in block_info__new()
65 return bi; in block_info__new()
99 static void init_block_info(struct block_info *bi, struct symbol *sym, in init_block_info() argument
103 bi->sym = sym; in init_block_info()
104 bi->start = ch->start; in init_block_info()
105 bi->end = offset; in init_block_info()
106 bi->cycles = ch->cycles; in init_block_info()
107 bi->cycles_aggr = ch->cycles_aggr; in init_block_info()
108 bi->num = ch->num; in init_block_info()
109 bi->num_aggr = ch->num_aggr; in init_block_info()
110 bi->total_cycles = total_cycles; in init_block_info()
112 memcpy(bi->cycles_spark, ch->cycles_spark, in init_block_info()
137 struct block_info *bi; in block_info__process_sym() local
140 bi = block_info__new(); in block_info__process_sym()
141 if (!bi) in block_info__process_sym()
144 init_block_info(bi, he->ms.sym, &ch[i], i, in block_info__process_sym()
146 cycles += bi->cycles_aggr / bi->num_aggr; in block_info__process_sym()
149 &al, bi); in block_info__process_sym()
151 block_info__put(bi); in block_info__process_sym()
200 struct block_info *bi = he->block_info; in block_total_cycles_pct_entry() local
204 ratio = (double)bi->cycles_aggr / (double)block_fmt->total_cycles; in block_total_cycles_pct_entry()
243 struct block_info *bi = he->block_info; in block_cycles_lbr_entry() local
246 cycles_string(bi->cycles_aggr, cycles_buf, sizeof(cycles_buf)); in block_cycles_lbr_entry()
256 struct block_info *bi = he->block_info; in block_cycles_pct_entry() local
260 if (block_fmt->block_cycles && bi->num_aggr) { in block_cycles_pct_entry()
261 avg = bi->cycles_aggr / bi->num_aggr; in block_cycles_pct_entry()
273 struct block_info *bi = he->block_info; in block_avg_cycles_entry() local
276 cycles_string(bi->cycles_aggr / bi->num_aggr, cycles_buf, in block_avg_cycles_entry()
287 struct block_info *bi = he->block_info; in block_range_entry() local
293 start_line = map__srcline(he->ms.map, bi->sym->start + bi->start, in block_range_entry()
296 end_line = map__srcline(he->ms.map, bi->sym->start + bi->end, in block_range_entry()
305 bi->start, bi->end); in block_range_entry()
492 struct block_info *bi = he->block_info; in block_info__total_cycles_percent() local
494 if (bi->total_cycles) in block_info__total_cycles_percent()
495 return bi->cycles * 100.0 / bi->total_cycles; in block_info__total_cycles_percent()