LLVM API Documentation
#include <SplitKit.h>
Public Member Functions | |
bool | isOneInstr () const |
Public Attributes | |
MachineBasicBlock * | MBB |
SlotIndex | FirstInstr |
First instr accessing current reg. | |
SlotIndex | LastInstr |
Last instr accessing current reg. | |
SlotIndex | FirstDef |
First non-phi valno->def, or SlotIndex(). | |
bool | LiveIn |
Current reg is live in. | |
bool | LiveOut |
Current reg is live out. |
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.
Definition at line 67 of file SplitKit.h.
bool llvm::SplitAnalysis::BlockInfo::isOneInstr | ( | ) | const [inline] |
isOneInstr - Returns true when this BlockInfo describes a single instruction.
Definition at line 77 of file SplitKit.h.
References FirstInstr, llvm::SlotIndex::isSameInstr(), and LastInstr.
Referenced by llvm::SplitAnalysis::shouldSplitSingleBlock().
First non-phi valno->def, or SlotIndex().
Definition at line 71 of file SplitKit.h.
First instr accessing current reg.
Definition at line 69 of file SplitKit.h.
Referenced by isOneInstr(), llvm::SplitAnalysis::shouldSplitSingleBlock(), llvm::SplitEditor::splitRegInBlock(), llvm::SplitEditor::splitRegOutBlock(), and llvm::SplitEditor::splitSingleBlock().
Last instr accessing current reg.
Definition at line 70 of file SplitKit.h.
Referenced by isOneInstr(), llvm::SplitEditor::splitRegInBlock(), llvm::SplitEditor::splitRegOutBlock(), and llvm::SplitEditor::splitSingleBlock().
Current reg is live in.
Definition at line 72 of file SplitKit.h.
Referenced by llvm::SplitAnalysis::shouldSplitSingleBlock(), llvm::SplitEditor::splitRegInBlock(), and llvm::SplitEditor::splitRegOutBlock().
Current reg is live out.
Definition at line 73 of file SplitKit.h.
Referenced by llvm::SplitAnalysis::shouldSplitSingleBlock(), llvm::SplitEditor::splitRegInBlock(), llvm::SplitEditor::splitRegOutBlock(), and llvm::SplitEditor::splitSingleBlock().
Definition at line 68 of file SplitKit.h.
Referenced by llvm::SplitEditor::splitRegInBlock(), llvm::SplitEditor::splitRegOutBlock(), and llvm::SplitEditor::splitSingleBlock().