Lines Matching refs:spill

76 // Map BasicType to spill size in 32-bit words, matching VMReg's notion of words
235 assert(_unused_spill_slot == -1, "wasting a spill slot");
257 // spill slot here (altough this value and the later used location name
267 // assign the canonical spill slot of the parent (if a part of the interval
268 // is already spilled) or allocate a new spill slot
272 int spill = allocate_spill_slot(type2spill_size[it->type()] == 2);
273 it->set_canonical_spill_slot(spill);
274 it->assign_reg(spill);
321 // ********** spill move optimization
338 // second definition found, so no spill optimization possible for this interval
402 TRACE_LINEAR_SCAN(3, tty->print_cr("***** Eliminating unnecessary spill moves"));
414 assert(temp->spill_definition_pos() > 0, "invalid spill definition pos");
420 assert(temp->canonical_spill_slot() >= LinearScan::nof_regs, "interval has no spill slot assigned");
2159 assert(interval->canonical_spill_slot() >= nof_regs, "canonical spill slot not set");
2173 // check if spill moves could have been appended at the end of this block, but
2415 assert(interval->canonical_spill_slot() >= LinearScan::nof_regs, "no spill slot assigned");
2799 // if this instruction is a branch, spill moves are inserted before this branch
2800 // and so the wrong operand would be returned (spill moves at block boundaries are not
2931 if (op == NULL) { // this can happen when spill-moves are removed in eliminate_spill_moves
3058 // fill in number of spill slots into frame_map
3914 // create a new spill interval and assign a stack slot to it
3923 // do not allocate a new spill slot for temporary interval, but
3924 // use spill slot assigned to from_interval. Otherwise moves from
4165 assert(op_id >= 0, "invalid op_id (method can not be called for spill moves)");
4238 assert(op_id >= 0, "invalid op_id (method can not be called for spill moves)");
4526 const char* SpillState2Name[] = { "no definition", "no spill store", "one spill store", "store at definition", "start in memory", "no optimization" };
4982 // the minimal index (for a block with no spill moves) can be calculated because the
4984 // When the block already contains spill moves, the index must be increased until the
5180 assert(it->state() == activeState, "why spill interval that is not active?");
5187 // the whole interval is never used, so spill it entirely to memory
5214 // search optimal split pos, split interval and spill only the right hand part
5270 // the interval is currently inactive, so no spill slot is needed for now.
5419 // (when one register is found for the whole interval, split&spill is only
5513 // Split an Interval and spill it to memory so that cur can be placed in a register
5515 TRACE_LINEAR_SCAN(2, tty->print("need to split and spill to get register for "); cur->print());
5588 // the first use of cur is later than the spilling position -> spill cur
5589 TRACE_LINEAR_SCAN(4, tty->print_cr("able to spill current interval. first_usage(register): %d, use_pos: %d", cur->first_usage(mustHaveRegister), use_pos));
5592 assert(false, "cannot spill interval that is used in first instruction (possible reason: no register found)");
5672 // assign same spill slot to non-intersecting intervals
5687 // combining the stack slots for intervals where spill move optimization is applied
5717 // register_hint is not spilled at begin_pos, so it would not be benefitial to immediately spill cur
5741 TRACE_LINEAR_SCAN(4, tty->print_cr(" interval has spill slot assigned (method parameter) -> split it before first use"));
5761 // assign same spill slot to non-intersecting intervals
5767 // split and spill another interval so that this interval gets a register
6362 case counter_spill_slots: return "spill slots";