Lines Matching full:live
1 //===-- LiveVariables.cpp - Live Variable Analysis for Machine Code -------===//
16 // This class computes live variables using a sparse implementation based on
17 // the machine code SSA form. This class computes live variable information for
19 // uses the dominance properties of SSA form to efficiently compute live
21 // live within a single basic block (allowing it to do a single local analysis
55 OS << "Live variables in machine function: " << MF.getName() << '\n';
63 "Live Variable Analysis", false, false)
66 "Live Variable Analysis", false, false)
136 return; // We already know the block is live
168 // live range by updating the kill instruction.
203 // Update all dominating blocks to mark them as "known live".
441 // Call HandlePhysRegKill() for all live registers clobbered by Mask.
465 SmallSet<unsigned, 32> Live;
468 Live.insert(SubReg);
477 if (Live.count(SubReg))
481 Live.insert(SS);
491 if (!Live.count(SubReg))
576 // Mark live-in registers as live-in.
580 "Cannot have a live-in virtual register!");
616 // Ignore other live-ins, e.g. those that are live into landing pads.
646 // Calculate live variable information in depth first order on the CFG of the
694 // Initialize a worklist of BBs that Reg is live-to-end of. (Here
695 // "live-to-end" means Reg is live at the end of a block even if it is only
696 // live because of phi uses in a successor. This is different from isLiveOut()
710 // If Reg is used in a phi then it is live-to-end of the corresponding
717 // Otherwise Reg must be live-to-end of all predecessors.
745 // live-through, find the last instruction that uses Reg. Ignore phi nodes
812 // Reg is live-through.
816 // Registers defined in MBB cannot be live in.
833 // the value is either live in the block, or if it is killed in the block.
839 // Or is it live because there is a use in a successor that kills it?
848 /// variables that are live out of DomBB will be marked as passing live through
862 // All registers used by PHI nodes in SuccBB must be live through BB.
880 // Update info for all live variables
884 // If the Defs is defined in the successor it can't be live in BB.
888 // If the register is either killed in or live through SuccBB it's also live
897 /// variables that are live out of DomBB will be marked as passing live through
912 // All registers used by PHI nodes in SuccBB must be live through BB.