Lines Matching refs:live

40  * 2. When two values are live at the same time, part of the same merge
55 * register allocation we may have to split the live interval.
164 * it means that at any given point in the program, the live values in a
165 * given merge set will form a tree. If they didn't, then one live value
166 * would partially overlap another, and they would have overlapping live
167 * ranges because they're live at the same point. This simplifies register
249 merge_sets_interfere(struct ir3_liveness *live, struct ir3_merge_set *a,
253 return merge_sets_interfere(live, b, a, -b_offset);
310 * whether dom[i] is live after current.
312 if (ir3_def_live_after(live, dom[i].reg, current.reg->instr))
323 try_merge_defs(struct ir3_liveness *live, struct ir3_register *a,
339 if (!merge_sets_interfere(live, a_set, b_set, b_set_offset))
357 coalesce_phi(struct ir3_liveness *live, struct ir3_instruction *phi)
361 try_merge_defs(live, phi->dsts[0], phi->srcs[i]->def, 0);
366 aggressive_coalesce_parallel_copy(struct ir3_liveness *live,
372 try_merge_defs(live, pcopy->dsts[i], pcopy->srcs[i]->def, 0);
377 aggressive_coalesce_split(struct ir3_liveness *live,
380 try_merge_defs(live, split->srcs[0]->def, split->dsts[0],
385 aggressive_coalesce_collect(struct ir3_liveness *live,
392 try_merge_defs(live, collect->dsts[0], collect->srcs[i]->def, offset);
479 index_merge_sets(struct ir3_liveness *live, struct ir3 *ir)
507 live->interval_offset = offset;
545 ir3_merge_regs(struct ir3_liveness *live, struct ir3 *ir)
555 coalesce_phi(live, instr);
564 aggressive_coalesce_split(live, instr);
567 aggressive_coalesce_collect(live, instr);
570 aggressive_coalesce_parallel_copy(live, instr);
578 index_merge_sets(live, ir);