LLVM API Documentation

Public Member Functions | Public Attributes
llvm::SplitAnalysis::BlockInfo Struct Reference

#include <SplitKit.h>

Collaboration diagram for llvm::SplitAnalysis::BlockInfo:
Collaboration graph
[legend]

List of all members.

Public Member Functions

bool isOneInstr () const

Public Attributes

MachineBasicBlockMBB
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.

Detailed 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.

Definition at line 67 of file SplitKit.h.


Member Function Documentation

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().


Member Data Documentation

First non-phi valno->def, or SlotIndex().

Definition at line 71 of file SplitKit.h.

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().


The documentation for this struct was generated from the following file: