struct SplitAnalysis::BlockInfo
Declaration
struct SplitAnalysis::BlockInfo { /* full declaration omitted */ };
Description
Additional information about basic blocks where the current variable is live. Such a block will look like one of these templates: 1. | o---x | Internal to block. Variable is only live in this block. 2. |---x | Live-in, kill. 3. | o---| Def, live-out. 4. |---x o---| Live-in, kill, def, live-out. Counted by NumGapBlocks. 5. |---o---o---| Live-through with uses or defs. 6. |-----------| Live-through without uses. Counted by NumThroughBlocks. Two BlockInfo entries are created for template 4. One for the live-in segment, and one for the live-out segment. These entries look as if the block were split in the middle where the live range isn't live. Live-through blocks without any uses don't get BlockInfo entries. They are simply listed in ThroughBlocks instead.
Declared at: llvm/lib/CodeGen/SplitKit.h:120
Member Variables
- public llvm::MachineBasicBlock* MBB
- public llvm::SlotIndex FirstInstr
- First instr accessing current reg.
- public llvm::SlotIndex LastInstr
- Last instr accessing current reg.
- public llvm::SlotIndex FirstDef
- First non-phi valno->def, or SlotIndex().
- public bool LiveIn
- Current reg is live in.
- public bool LiveOut
- Current reg is live out.
Method Overview
- public bool isOneInstr() const
Methods
ΒΆbool isOneInstr() const
bool isOneInstr() const
Description
isOneInstr - Returns true when this BlockInfo describes a single instruction.
Declared at: llvm/lib/CodeGen/SplitKit.h:130