Lines Matching defs:spill

105   /// siblings. To hoist a spill to another BB, we need to find out a live
106 /// sibling there and use it as the source of the new spill.
153 // Variables that are valid during spill(), but used by multiple methods.
159 // All registers to spill to StackSlot, including the main register.
193 void spill(LiveRangeEdit &) override;
240 // When spilling a virtual register, we also spill any snippets it is connected
246 // spill slots which can be important in tight loops.
401 LLVM_DEBUG(dbgs() << "\talso spill snippet " << SnipLI << '\n');
410 /// It is beneficial to spill to earlier place in the same BB in case
413 /// Hoist the spill as far as possible in SpillMBB. This can ease
420 /// Hoisting the spill of s to immediately after the def removes the
424 /// spill x
455 // We are going to spill SrcVNI immediately after its def, so clear out
470 // Insert spill without kill flag immediately after def.
479 // If there is only 1 store instruction is required for spill, add it
503 // Regs to spill are taken care of.
536 LLVM_DEBUG(dbgs() << "Redundant spill " << Idx << '\t' << MI);
594 // * However, since we may try to spill vregs in any order, we can end up
595 // trying to spill each operand to the instruction, and then rematting it
807 << " registers to spill after remat.\n");
907 // We always want to spill subregs for stackmap/patchpoint pseudos.
1062 // If there is only 1 store instruction is required for spill, add it
1101 /// insertSpill - Insert a spill of NewVReg after MI.
1106 assert(!MI->isTerminator() && "Inserting a spill after a terminator");
1117 // Don't spill undef value.
1130 dumpMachineInstrRangeWithSlotIndex(Spill, MIS.end(), LIS, "spill"));
1132 // If there is only 1 store instruction is required for spill, add it
1139 /// spillAroundUses - insert spill code around each use of Reg.
1148 // Modify DBG_VALUE now that the value is in a spill slot.
1150 LLVM_DEBUG(dbgs() << "Modifying debug info due to spill:\t" << MI);
1206 // Create a new virtual register for spill/fill.
1285 void InlineSpiller::spill(LiveRangeEdit &edit) {
1289 "Trying to spill a stack slot.");
1300 "Attempting to spill already spilled value.");
1301 assert(DeadDefs.empty() && "Previous spill didn't remove dead defs");
1316 /// When a spill is inserted, add the spill to MergeableSpills map.
1334 /// When a spill is removed, remove the spill from MergeableSpills map.
1335 /// Return true if the spill is removed successfully.
1347 /// Check BB to see if it is a possible target BB to place a hoisted spill,
1356 // we could hoist spill after LIP.
1357 LLVM_DEBUG(dbgs() << "can't spill in root block - def after LIP\n");
1376 /// SpillsToRm, and save the spill to keep and its BB in SpillBBToSpill map.
1381 // For each spill saw, check SpillBBToSpill[] and see if its BB already has
1382 // another spill inside. If a BB contains more than one spill, only keep the
1383 // earlier spill with smaller SlotIndex.
1419 // non-redundant spill to the Root node.
1426 // For every node on the dominator tree with spill, walk up on the dominator
1428 // containing spill in the middle of the path, the previous spill saw will
1430 // the path starting from the first node with non-redundant spill to the Root
1438 // If Node dominates Block, and it already contains a spill, the spill in
1444 /// the Root node must already be traversed by another spill.
1501 // during hoisting. If the spill to be inserted is an original spill
1502 // (not a hoisted one), the value of the map entry is 0. If the spill
1503 // is a hoisted spill, the value of the map entry is the VReg to be used
1504 // as the source of the spill.
1506 // Map from BB to the first spill inside of it.
1525 // children have already been visited and the spill locations in the
1531 // If Block contains an original spill, simply continue.
1534 // SpillsInSubTreeMap[*RIt].second contains the cost of spill.
1566 // Check whether Block is a possible candidate to insert spill.
1572 // to hoist the spill.
1579 // When SpillBB is a BB contains original spill, insert the spill
1586 // SpillBB will not contain spill anymore, remove it from SpillsToKeep.
1589 // Current Block is the BB containing the new hoisted spill. Add it to
1590 // SpillsToKeep. LiveReg is the source of the new spill.
1604 // For spills in SpillsToKeep with LiveReg set (i.e., not original spill),
1616 /// MergeableSpills when spill is inserted. These equal spills are originated
1639 // Each entry in MergeableSpills contains a spill set with equal values.
1651 for (const auto spill : EqValSpills)
1652 dbgs() << spill->getParent()->getNumber() << " ";
1656 // SpillsToRm is the spill set to be removed from EqValSpills.
1658 // SpillsToIns is the spill set to be newly inserted after hoisting.