Lines Matching refs:spilled
483 /* first block, nothing was spilled before */
498 /* check how many live-through variables should be spilled */
508 for (auto spilled : ctx.spills_exit[block_idx - 1]) {
509 auto it = next_use_distances.find(spilled.first);
515 /* keep constants and live-through variables spilled */
516 if (it->second.first >= loop_end || ctx.remat.count(spilled.first)) {
517 ctx.spills_entry[block_idx][spilled.first] = spilled.second;
518 spilled_registers += spilled.first;
519 loop_demand -= spilled.first;
597 /* keep variables spilled if they are alive and not used in the current block */
625 /* if register demand is still too high, we just keep all spilled live vars
653 /* keep variables spilled on all incoming paths */
657 /* If it can be rematerialized, keep the variable spilled if all predecessors do not reload
722 /* if reg pressure at first instruction is still too high, add partially spilled variables */
776 /* still spilled */
789 /* variable is spilled at predecessor and live at current block: create reload instruction */
810 /* still spilled */
823 /* variable is spilled at predecessor and live at current block:
859 /* if the phi is not spilled, add to instructions */
886 /* check if variable is already spilled at predecessor */
887 auto spilled = ctx.spills_exit[pred_idx].find(var);
888 if (spilled != ctx.spills_exit[pred_idx].end()) {
889 if (spilled->second != def_spill_id)
890 ctx.add_affinity(def_spill_id, spilled->second);
929 /* iterate all (other) spilled variables for which to spill at the predecessor */
936 /* variable is already spilled at predecessor */
937 auto spilled = ctx.spills_exit[pred_idx].find(pair.first);
938 if (spilled != ctx.spills_exit[pred_idx].end()) {
939 if (spilled->second != pair.second)
940 ctx.add_affinity(pair.second, spilled->second);
948 /* add interferences between spilled variable and predecessors exit spills */
955 /* variable is in register at predecessor and has to be spilled */
1025 /* reload spilled exec mask directly to exec */
1041 // TODO: reload at current block if variable is spilled on all predecessors
1044 /* skip spilled variables */
1059 /* the variable is not spilled at the predecessor */
1063 /* variable is spilled at predecessor and has to be reloaded */
1198 /* the Operand is spilled: add it to reloads */
1240 /* add interferences with currently spilled variables */
1281 /* determine set of variables which are spilled at the beginning of the block */
1284 /* add interferences for spilled variables */
1374 /* we can stop with this block as soon as the variable is spilled */
1611 /* check if any spilled variables use a created linear vgpr, otherwise destroy them */