Lines Matching defs:spill

107   /// siblings. To hoist a spill to another BB, we need to find out a live
108 /// sibling there and use it as the source of the new spill.
161 // Variables that are valid during spill(), but used by multiple methods.
167 // All registers to spill to StackSlot, including the main register.
201 void spill(LiveRangeEdit &) override;
245 // When spilling a virtual register, we also spill any snippets it is connected
251 // spill slots which can be important in tight loops.
405 LLVM_DEBUG(dbgs() << "\talso spill snippet " << SnipLI << '\n');
414 /// It is beneficial to spill to earlier place in the same BB in case
417 /// Hoist the spill as far as possible in SpillMBB. This can ease
424 /// Hoisting the spill of s to immediately after the def removes the
428 /// spill x
459 // We are going to spill SrcVNI immediately after its def, so clear out
474 // Insert spill without kill flag immediately after def.
483 // If there is only 1 store instruction is required for spill, add it
507 // Regs to spill are taken care of.
540 LLVM_DEBUG(dbgs() << "Redundant spill " << Idx << '\t' << MI);
598 // * However, since we may try to spill vregs in any order, we can end up
599 // trying to spill each operand to the instruction, and then rematting it
810 << " registers to spill after remat.\n");
910 // We always want to spill subregs for stackmap/patchpoint pseudos.
1065 // If there is only 1 store instruction is required for spill, add it
1104 /// insertSpill - Insert a spill of NewVReg after MI.
1109 assert(!MI->isTerminator() && "Inserting a spill after a terminator");
1120 // Don't spill undef value.
1133 dumpMachineInstrRangeWithSlotIndex(Spill, MIS.end(), LIS, "spill"));
1135 // If there is only 1 store instruction is required for spill, add it
1142 /// spillAroundUses - insert spill code around each use of Reg.
1151 // Modify DBG_VALUE now that the value is in a spill slot.
1153 LLVM_DEBUG(dbgs() << "Modifying debug info due to spill:\t" << MI);
1209 // Create a new virtual register for spill/fill.
1283 void InlineSpiller::spill(LiveRangeEdit &edit) {
1287 "Trying to spill a stack slot.");
1298 "Attempting to spill already spilled value.");
1299 assert(DeadDefs.empty() && "Previous spill didn't remove dead defs");
1314 /// When a spill is inserted, add the spill to MergeableSpills map.
1332 /// When a spill is removed, remove the spill from MergeableSpills map.
1333 /// Return true if the spill is removed successfully.
1345 /// Check BB to see if it is a possible target BB to place a hoisted spill,
1354 // we could hoist spill after LIP.
1355 LLVM_DEBUG(dbgs() << "can't spill in root block - def after LIP\n");
1374 /// SpillsToRm, and save the spill to keep and its BB in SpillBBToSpill map.
1379 // For each spill saw, check SpillBBToSpill[] and see if its BB already has
1380 // another spill inside. If a BB contains more than one spill, only keep the
1381 // earlier spill with smaller SlotIndex.
1417 // non-redundant spill to the Root node.
1424 // For every node on the dominator tree with spill, walk up on the dominator
1426 // containing spill in the middle of the path, the previous spill saw will
1428 // the path starting from the first node with non-redundant spill to the Root
1436 // If Node dominates Block, and it already contains a spill, the spill in
1442 /// the Root node must already be traversed by another spill.
1499 // during hoisting. If the spill to be inserted is an original spill
1500 // (not a hoisted one), the value of the map entry is 0. If the spill
1501 // is a hoisted spill, the value of the map entry is the VReg to be used
1502 // as the source of the spill.
1504 // Map from BB to the first spill inside of it.
1523 // children have already been visited and the spill locations in the
1529 // If Block contains an original spill, simply continue.
1532 // SpillsInSubTreeMap[*RIt].second contains the cost of spill.
1564 // Check whether Block is a possible candidate to insert spill.
1570 // to hoist the spill.
1577 // When SpillBB is a BB contains original spill, insert the spill
1583 // SpillBB will not contain spill anymore, remove it from SpillsToKeep.
1586 // Current Block is the BB containing the new hoisted spill. Add it to
1587 // SpillsToKeep. LiveReg is the source of the new spill.
1601 // For spills in SpillsToKeep with LiveReg set (i.e., not original spill),
1613 /// MergeableSpills when spill is inserted. These equal spills are originated
1636 // Each entry in MergeableSpills contains a spill set with equal values.
1648 for (const auto spill : EqValSpills)
1649 dbgs() << spill->getParent()->getNumber() << " ";
1653 // SpillsToRm is the spill set to be removed from EqValSpills.
1655 // SpillsToIns is the spill set to be newly inserted after hoisting.