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

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.

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: