Lines Matching refs:spill
91 * This map only contains values which we didn't spill, so it also serves as
110 /* rb tree of live intervals that we can spill, ordered by next-use distance.
112 * case. We use this list to determine what to spill.
656 spill(struct ra_spill_ctx *ctx, const struct reg_or_immed *val,
674 struct ir3_instruction *spill =
676 ir3_src_create(spill, INVALID_REG, ctx->base_reg->flags)->def = ctx->base_reg;
680 struct ir3_register *src = ir3_src_create(spill, INVALID_REG, src_flags);
681 ir3_src_create(spill, INVALID_REG, IR3_REG_IMMED)->uim_val = elems;
682 spill->cat6.dst_offset = spill_slot;
683 spill->cat6.type = (reg->flags & IR3_REG_HALF) ? TYPE_U16 : TYPE_U32;
695 ir3_instr_move_before(spill, instr);
702 spill(ctx, &interval->dst, get_spill_slot(ctx, interval->interval.reg),
743 d("can't spill");
1069 * spill slot as its corresponding destination. We do this by decomposing the
1085 * own spill slot created for them. Similarly, we don't actually emit any copy
1089 * TODO: in order to reduce the number of temporaries and therefore spill slots,
1115 * the destination. Crucially this means that we also don't reload/spill
1116 * it if it's been spilled, because it shares the same spill slot.
1310 spill(ctx, pred_def, get_spill_slot(ctx, def), NULL, pred);
1328 /* Note: in the paper they explicitly spill live-through values first, but we
1332 * TODO: Keep track of pressure in each block and preemptively spill
1504 * successors so we can't choose what's live in and we can't spill/restore
1560 spill(ctx, &interval->dst, get_spill_slot(ctx, def), NULL, block);
1902 * and we spill "baz":
1906 * spill(foo)
1909 * spill(bar)