LLVM: llvm::SplitAnalysis Class Reference (original) (raw)

SplitAnalysis - Analyze a LiveInterval, looking for live range splitting opportunities. More...

#include "[CodeGen/SplitKit.h](SplitKit%5F8h%5Fsource.html)"

Classes
struct BlockInfo
Additional information about basic blocks where the current variable is live. More...
Public Member Functions
SplitAnalysis (const VirtRegMap &vrm, const LiveIntervals &lis, const MachineLoopInfo &mli)
void analyze (const LiveInterval *li)
analyze - set CurLI to the specified interval, and analyze how it may be split.
void clear ()
clear - clear all data structures so SplitAnalysis is ready to analyze a new interval.
const LiveInterval & getParent () const
getParent - Return the last analyzed interval.
bool isOriginalEndpoint (SlotIndex Idx) const
isOriginalEndpoint - Return true if the original live range was killed or (re-)defined at Idx.
ArrayRef< SlotIndex > getUseSlots () const
getUseSlots - Return an array of SlotIndexes of instructions using CurLI.
ArrayRef< BlockInfo > getUseBlocks () const
getUseBlocks - Return an array of BlockInfo objects for the basic blocks where CurLI has uses.
unsigned getNumThroughBlocks () const
getNumThroughBlocks - Return the number of through blocks.
bool isThroughBlock (unsigned MBB) const
isThroughBlock - Return true if CurLI is live through MBB without uses.
const BitVector & getThroughBlocks () const
getThroughBlocks - Return the set of through blocks.
unsigned getNumLiveBlocks () const
getNumLiveBlocks - Return the number of blocks where CurLI is live.
bool looksLikeLoopIV () const
unsigned countLiveBlocks (const LiveInterval *li) const
countLiveBlocks - Return the number of blocks where li is live.
bool shouldSplitSingleBlock (const BlockInfo &BI, bool SingleInstrs) const
shouldSplitSingleBlock - Returns true if it would help to create a local live range for the instructions in BI.
SlotIndex getLastSplitPoint (unsigned Num)
SlotIndex getLastSplitPoint (MachineBasicBlock *BB)
MachineBasicBlock::iterator getLastSplitPointIter (MachineBasicBlock *BB)
SlotIndex getFirstSplitPoint (unsigned Num)
Public Attributes
const MachineFunction & MF
const VirtRegMap & VRM
const LiveIntervals & LIS
const MachineLoopInfo & Loops
const TargetInstrInfo & TII

SplitAnalysis - Analyze a LiveInterval, looking for live range splitting opportunities.

Definition at line 96 of file SplitKit.h.

BlockPtrSet

analyze()

analyze - set CurLI to the specified interval, and analyze how it may be split.

Definition at line 347 of file SplitKit.cpp.

References clear().

clear()

void SplitAnalysis::clear ( )

countLiveBlocks()

getFirstSplitPoint()

getLastSplitPoint() [1/2]

getLastSplitPoint() [2/2]

getLastSplitPointIter()

getNumLiveBlocks()

unsigned llvm::SplitAnalysis::getNumLiveBlocks ( ) const inline

getNumThroughBlocks()

unsigned llvm::SplitAnalysis::getNumThroughBlocks ( ) const inline

getParent()

getParent - Return the last analyzed interval.

Definition at line 185 of file SplitKit.h.

getThroughBlocks()

const BitVector & llvm::SplitAnalysis::getThroughBlocks ( ) const inline

getThroughBlocks - Return the set of through blocks.

Definition at line 209 of file SplitKit.h.

getUseBlocks()

getUseSlots()

getUseSlots - Return an array of SlotIndexes of instructions using CurLI.

This include both use and def operands, at most one entry per instruction.

Definition at line 196 of file SplitKit.h.

isOriginalEndpoint()

isThroughBlock()

bool llvm::SplitAnalysis::isThroughBlock ( unsigned MBB) const inline

isThroughBlock - Return true if CurLI is live through MBB without uses.

Definition at line 206 of file SplitKit.h.

References MBB.

looksLikeLoopIV()

bool llvm::SplitAnalysis::looksLikeLoopIV ( ) const inline

shouldSplitSingleBlock()

LIS

Loops

MF

TII

VRM


The documentation for this class was generated from the following files: