Lines Matching defs:live
42 * merge set is what a more "classic" graph-coloring or live-range based
44 * hint, except when multiple overlapping values are live at the same time.
316 /* State for inter-block tracking. When we split a live range to make space
318 * predecessors that have moved the same live value to different registers.
362 struct ir3_liveness *live;
782 * also is implicitly true for tied destinations whose source is live-through.
964 * | live-through | destination | killed | killed | destination | live-through |
1008 /* Treat tied destinations as-if they are live-through sources, and normal
1033 /* "Compress" all the live intervals so that there is enough space for the
1178 /* We have two lists of intervals to process, live intervals and destination
1231 /* If this is live-through and we've processed the destinations, we
1846 * most two, and there should be no other live values by the time we get to
1855 * which is still live -- this breaks our assumption that splits don't incur
1953 * arguments. Even though phi arguments are live out, they are only
1976 * size. However they may be coalesced with other live-in values/phi
2016 /* When we split a live range, we sometimes need to emit fixup code at the end
2105 * register for all live-ins from the normal edge, which should
2129 BITSET_WORD *live_in = ctx->live->live_in[ctx->block->index];
2133 * because we may have to move live-ins around to make space for phi
2158 /* If not all predecessors are visited, insert live-in regs so that
2232 /* Handle live-ins, phis, and input meta-instructions. These all appear
2233 * live at the beginning of the block, and interfere with each other
2239 * inputs don't overwrite them. We shouldn't have both live-ins/phi nodes
2253 BITSET_FOREACH_SET (name, ctx->live->live_in[block->index],
2254 ctx->live->definitions_count) {
2255 struct ir3_register *reg = ctx->live->definitions[name];
2269 /* After this point, every live-in/phi/input has an interval assigned to
2279 d("after live-in block %u:\n", block->index);
2283 /* Now we're done with processing live-ins, and can handle the body of the
2311 BITSET_FOREACH_SET (name, ctx->live->live_out[block->index],
2312 ctx->live->definitions_count) {
2313 struct ir3_register *reg = ctx->live->definitions[name];
2380 struct ir3_liveness *live,
2386 rzalloc_array(ctx, struct ir3_reg_interval, live->definitions_count);
2426 BITSET_FOREACH_SET (name, live->live_in[block->index],
2427 live->definitions_count) {
2428 struct ir3_register *reg = live->definitions[name];
2554 struct ir3_liveness *live = ir3_calc_liveness(ctx, v->ir);
2558 ir3_merge_regs(live, v->ir);
2561 ir3_calc_pressure(v, live, &max_pressure);
2587 calc_min_limit_pressure(v, live, &limit_pressure);
2603 IR3_PASS(v->ir, ir3_spill, v, &live, &limit_pressure);
2604 ir3_calc_pressure(v, live, &max_pressure);
2610 ctx->live = live;
2612 rzalloc_array(ctx, struct ra_interval, live->definitions_count);
2613 ctx->blocks = rzalloc_array(ctx, struct ra_block_state, live->block_count);
2628 ir3_ra_validate(v, ctx->full.size, ctx->half.size, live->block_count);
2632 * example, we need to preserve array-ness so that array live-ins have the