LLVM API Documentation

llvm::LiveIntervals Class Reference

#include <LiveIntervalAnalysis.h>

Inheritance diagram for llvm::LiveIntervals:
[legend]
Collaboration diagram for llvm::LiveIntervals:
[legend]

List of all members.

Public Types

typedef Reg2IntervalMap::iterator iterator
typedef
Reg2IntervalMap::const_iterator 
const_iterator

Public Member Functions

 LiveIntervals ()
const_iterator begin () const
const_iterator end () const
iterator begin ()
iterator end ()
unsigned getNumIntervals () const
LiveInterval & getInterval (unsigned reg)
const LiveInterval & getInterval (unsigned reg) const
bool hasInterval (unsigned reg) const
unsigned getMBBStartIdx (MachineBasicBlock *MBB) const
unsigned getMBBStartIdx (unsigned MBBNo) const
unsigned getMBBEndIdx (MachineBasicBlock *MBB) const
unsigned getMBBEndIdx (unsigned MBBNo) const
double getScaledIntervalSize (LiveInterval &I)
unsigned getApproximateInstructionCount (LiveInterval &I)
MachineBasicBlock * getMBBFromIndex (unsigned index) const
unsigned getInstructionIndex (MachineInstr *instr) const
 getInstructionIndex - returns the base index of instr
MachineInstr * getInstructionFromIndex (unsigned index) const
bool hasGapBeforeInstr (unsigned Index)
unsigned findGapBeforeInstr (unsigned Index, bool Furthest=false)
void InsertMachineInstrInMaps (MachineInstr *MI, unsigned Index)
bool conflictsWithPhysRegDef (const LiveInterval &li, VirtRegMap &vrm, unsigned reg)
bool conflictsWithPhysRegRef (LiveInterval &li, unsigned Reg, bool CheckUse, SmallPtrSet< MachineInstr *, 32 > &JoinedCopies)
bool findLiveInMBBs (unsigned Start, unsigned End, SmallVectorImpl< MachineBasicBlock * > &MBBs) const
bool findReachableMBBs (unsigned Start, unsigned End, SmallVectorImpl< MachineBasicBlock * > &MBBs) const
LiveInterval & getOrCreateInterval (unsigned reg)
LiveInterval * dupInterval (LiveInterval *li)
LiveRange addLiveRangeToEndOfBlock (unsigned reg, MachineInstr *startInst)
void removeInterval (unsigned Reg)
bool isRemoved (MachineInstr *instr) const
void RemoveMachineInstrFromMaps (MachineInstr *MI)
void ReplaceMachineInstrInMaps (MachineInstr *MI, MachineInstr *NewMI)
BumpPtrAllocator & getVNInfoAllocator ()
unsigned getVNInfoSourceReg (const VNInfo *VNI) const
virtual void getAnalysisUsage (AnalysisUsage &AU) const
virtual void releaseMemory ()
virtual bool runOnMachineFunction (MachineFunction &)
 runOnMachineFunction - pass entry point
virtual void print (std::ostream &O, const Module *=0) const
 print - Implement the dump method.
void print (std::ostream *O, const Module *M=0) const
std::vector< LiveInterval * > addIntervalsForSpills (const LiveInterval &i, SmallVectorImpl< LiveInterval * > &SpillIs, const MachineLoopInfo *loopInfo, VirtRegMap &vrm, float &SSWeight)
std::vector< LiveInterval * > addIntervalsForSpillsFast (const LiveInterval &li, const MachineLoopInfo *loopInfo, VirtRegMap &vrm, float &SSWeight)
void spillPhysRegAroundRegDefsUses (const LiveInterval &li, unsigned PhysReg, VirtRegMap &vrm)
bool isReMaterializable (const LiveInterval &li, SmallVectorImpl< LiveInterval * > &SpillIs, bool &isLoad)
bool isReMaterializable (const LiveInterval &li, const VNInfo *ValNo, MachineInstr *MI)
unsigned getRepresentativeReg (unsigned Reg) const
unsigned getNumConflictsWithPhysReg (const LiveInterval &li, unsigned PhysReg) const
void computeNumbering ()
 computeNumbering - Compute the index numbering.
bool intervalIsInOneMBB (const LiveInterval &li) const

Static Public Member Functions

static unsigned getBaseIndex (unsigned index)
static unsigned getBoundaryIndex (unsigned index)
static unsigned getLoadIndex (unsigned index)
static unsigned getUseIndex (unsigned index)
static unsigned getDefIndex (unsigned index)
static unsigned getStoreIndex (unsigned index)
static float getSpillWeight (bool isDef, bool isUse, unsigned loopDepth)

Static Public Attributes

static char ID = 0

Classes

struct  InstrSlots
struct  SRInfo
 SRInfo - Spill / restore info.


Detailed Description

Definition at line 58 of file LiveIntervalAnalysis.h.


Member Typedef Documentation

typedef Reg2IntervalMap::iterator llvm::LiveIntervals::iterator

Definition at line 132 of file LiveIntervalAnalysis.h.

typedef Reg2IntervalMap::const_iterator llvm::LiveIntervals::const_iterator

Definition at line 133 of file LiveIntervalAnalysis.h.


Constructor & Destructor Documentation

llvm::LiveIntervals::LiveIntervals (  )  [inline]

Definition at line 97 of file LiveIntervalAnalysis.h.


Member Function Documentation

static unsigned llvm::LiveIntervals::getBaseIndex ( unsigned  index  )  [inline, static]

static unsigned llvm::LiveIntervals::getBoundaryIndex ( unsigned  index  )  [inline, static]

Definition at line 112 of file LiveIntervalAnalysis.h.

References getBaseIndex(), and llvm::LiveIntervals::InstrSlots::NUM.

static unsigned llvm::LiveIntervals::getLoadIndex ( unsigned  index  )  [inline, static]

static unsigned llvm::LiveIntervals::getUseIndex ( unsigned  index  )  [inline, static]

static unsigned llvm::LiveIntervals::getDefIndex ( unsigned  index  )  [inline, static]

static unsigned llvm::LiveIntervals::getStoreIndex ( unsigned  index  )  [inline, static]

static float llvm::LiveIntervals::getSpillWeight ( bool  isDef,
bool  isUse,
unsigned  loopDepth 
) [inline, static]

const_iterator llvm::LiveIntervals::begin (  )  const [inline]

const_iterator llvm::LiveIntervals::end (  )  const [inline]

iterator llvm::LiveIntervals::begin (  )  [inline]

Definition at line 136 of file LiveIntervalAnalysis.h.

iterator llvm::LiveIntervals::end (  )  [inline]

Definition at line 137 of file LiveIntervalAnalysis.h.

unsigned llvm::LiveIntervals::getNumIntervals (  )  const [inline]

Definition at line 138 of file LiveIntervalAnalysis.h.

Referenced by runOnMachineFunction().

LiveInterval& llvm::LiveIntervals::getInterval ( unsigned  reg  )  [inline]

const LiveInterval& llvm::LiveIntervals::getInterval ( unsigned  reg  )  const [inline]

Definition at line 146 of file LiveIntervalAnalysis.h.

bool llvm::LiveIntervals::hasInterval ( unsigned  reg  )  const [inline]

unsigned llvm::LiveIntervals::getMBBStartIdx ( MachineBasicBlock *  MBB  )  const [inline]

getMBBStartIdx - Return the base index of the first instruction in the specified MachineBasicBlock.

Definition at line 158 of file LiveIntervalAnalysis.h.

References llvm::MachineBasicBlock::getNumber().

Referenced by computeNumbering(), and isLiveIn().

unsigned llvm::LiveIntervals::getMBBStartIdx ( unsigned  MBBNo  )  const [inline]

Definition at line 161 of file LiveIntervalAnalysis.h.

unsigned llvm::LiveIntervals::getMBBEndIdx ( MachineBasicBlock *  MBB  )  const [inline]

getMBBEndIdx - Return the store index of the last instruction in the specified MachineBasicBlock.

Definition at line 168 of file LiveIntervalAnalysis.h.

References llvm::MachineBasicBlock::getNumber().

Referenced by addLiveRangeToEndOfBlock(), computeNumbering(), findReachableMBBs(), and getMBBFromIndex().

unsigned llvm::LiveIntervals::getMBBEndIdx ( unsigned  MBBNo  )  const [inline]

Definition at line 171 of file LiveIntervalAnalysis.h.

double llvm::LiveIntervals::getScaledIntervalSize ( LiveInterval &  I  )  [inline]

getScaledIntervalSize - get the size of an interval in "units," where every function is composed of one thousand units. This measure scales properly with empty index slots in the function.

Definition at line 179 of file LiveIntervalAnalysis.h.

References llvm::LiveInterval::getSize(), and llvm::LiveIntervals::InstrSlots::NUM.

Referenced by getApproximateInstructionCount().

unsigned llvm::LiveIntervals::getApproximateInstructionCount ( LiveInterval &  I  )  [inline]

getApproximateInstructionCount - computes an estimate of the number of instructions in a given LiveInterval.

Definition at line 185 of file LiveIntervalAnalysis.h.

References getScaledIntervalSize().

Referenced by addIntervalsForSpills(), llvm::SimpleRegisterCoalescing::getRepIntervalSize(), and llvm::SimpleRegisterCoalescing::runOnMachineFunction().

MachineBasicBlock* llvm::LiveIntervals::getMBBFromIndex ( unsigned  index  )  const [inline]

getMBBFromIndex - given an index in any instruction of an MBB return a pointer the MBB

Definition at line 192 of file LiveIntervalAnalysis.h.

References getMBBEndIdx().

unsigned llvm::LiveIntervals::getInstructionIndex ( MachineInstr *  instr  )  const [inline]

getInstructionIndex - returns the base index of instr

Definition at line 207 of file LiveIntervalAnalysis.h.

Referenced by addIntervalsForSpillsFast(), addLiveRangeToEndOfBlock(), getConflictWeight(), getNumConflictsWithPhysReg(), print(), and spillPhysRegAroundRegDefsUses().

MachineInstr* llvm::LiveIntervals::getInstructionFromIndex ( unsigned  index  )  const [inline]

getInstructionFromIndex - given an index in any slot of an instruction return a pointer the instruction

Definition at line 215 of file LiveIntervalAnalysis.h.

References llvm::LiveIntervals::InstrSlots::NUM.

Referenced by addIntervalsForSpills(), conflictsWithPhysRegDef(), conflictsWithPhysRegRef(), findGapBeforeInstr(), hasGapBeforeInstr(), isReMaterializable(), and PropagateDeadness().

bool llvm::LiveIntervals::hasGapBeforeInstr ( unsigned  Index  )  [inline]

hasGapBeforeInstr - Return true if the previous instruction slot, i.e. Index - InstrSlots::NUM, is not occupied.

Definition at line 224 of file LiveIntervalAnalysis.h.

References getBaseIndex(), getInstructionFromIndex(), and llvm::LiveIntervals::InstrSlots::NUM.

unsigned llvm::LiveIntervals::findGapBeforeInstr ( unsigned  Index,
bool  Furthest = false 
) [inline]

findGapBeforeInstr - Find an empty instruction slot before the specified index. If "Furthest" is true, find one that's furthest away from the index (but before any index that's occupied).

Definition at line 232 of file LiveIntervalAnalysis.h.

References getBaseIndex(), getInstructionFromIndex(), and llvm::LiveIntervals::InstrSlots::NUM.

void llvm::LiveIntervals::InsertMachineInstrInMaps ( MachineInstr *  MI,
unsigned  Index 
) [inline]

InsertMachineInstrInMaps - Insert the specified machine instruction into the instruction index map at the given index.

Definition at line 248 of file LiveIntervalAnalysis.h.

References llvm::LiveIntervals::InstrSlots::NUM.

bool LiveIntervals::conflictsWithPhysRegDef ( const LiveInterval &  li,
VirtRegMap &  vrm,
unsigned  reg 
)

conflictsWithPhysRegDef - Returns true if the specified register is defined during the duration of the specified interval.

conflictsWithPhysRegDef - Returns true if the specified register is defined during the duration of the specified interval.

Definition at line 288 of file LiveIntervalAnalysis.cpp.

References E, end(), getBaseIndex(), getInstructionFromIndex(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::VirtRegMap::getPhys(), llvm::MachineOperand::getReg(), llvm::VirtRegMap::hasPhys(), index, llvm::TargetInstrInfo::isMoveInstr(), llvm::MachineOperand::isReg(), llvm::TargetRegisterInfo::isVirtualRegister(), MI, llvm::LiveIntervals::InstrSlots::NUM, llvm::LiveInterval::ranges, llvm::LiveInterval::reg, and llvm::TargetRegisterInfo::regsOverlap().

bool LiveIntervals::conflictsWithPhysRegRef ( LiveInterval &  li,
unsigned  Reg,
bool  CheckUse,
SmallPtrSet< MachineInstr *, 32 > &  JoinedCopies 
)

bool LiveIntervals::findLiveInMBBs ( unsigned  Start,
unsigned  End,
SmallVectorImpl< MachineBasicBlock * > &  MBBs 
) const

findLiveInMBBs - Given a live range, if the value of the range is live in any MBB returns true as well as the list of basic blocks in which the value is live.

Definition at line 789 of file LiveIntervalAnalysis.cpp.

References llvm::SmallVectorImpl< T >::push_back().

bool LiveIntervals::findReachableMBBs ( unsigned  Start,
unsigned  End,
SmallVectorImpl< MachineBasicBlock * > &  MBBs 
) const

findReachableMBBs - Return a list MBB that can be reached via any branch or fallthroughs. Return true if the list is not empty.

Definition at line 805 of file LiveIntervalAnalysis.cpp.

References getMBBEndIdx(), llvm::SmallVectorImpl< T >::push_back(), SE, llvm::MachineBasicBlock::succ_begin(), and llvm::MachineBasicBlock::succ_end().

LiveInterval& llvm::LiveIntervals::getOrCreateInterval ( unsigned  reg  )  [inline]

LiveInterval * LiveIntervals::dupInterval ( LiveInterval *  li  ) 

dupInterval - Duplicate a live interval. The caller is responsible for managing the allocated memory.

dupInterval - Duplicate a live interval. The caller is responsible for managing the allocated memory.

Definition at line 833 of file LiveIntervalAnalysis.cpp.

References llvm::LiveInterval::Copy(), getVNInfoAllocator(), and llvm::LiveInterval::reg.

LiveRange LiveIntervals::addLiveRangeToEndOfBlock ( unsigned  reg,
MachineInstr *  startInst 
)

void llvm::LiveIntervals::removeInterval ( unsigned  Reg  )  [inline]

Definition at line 297 of file LiveIntervalAnalysis.h.

Referenced by removeIntervalIfEmpty().

bool llvm::LiveIntervals::isRemoved ( MachineInstr *  instr  )  const [inline]

isRemoved - returns true if the specified machine instr has been removed.

Definition at line 305 of file LiveIntervalAnalysis.h.

void llvm::LiveIntervals::RemoveMachineInstrFromMaps ( MachineInstr *  MI  )  [inline]

RemoveMachineInstrFromMaps - This marks the specified machine instr as deleted.

Definition at line 311 of file LiveIntervalAnalysis.h.

References llvm::LiveIntervals::InstrSlots::NUM.

Referenced by llvm::SimpleRegisterCoalescing::runOnMachineFunction().

void llvm::LiveIntervals::ReplaceMachineInstrInMaps ( MachineInstr *  MI,
MachineInstr *  NewMI 
) [inline]

ReplaceMachineInstrInMaps - Replacing a machine instr with a new one in maps used by register allocator.

Definition at line 323 of file LiveIntervalAnalysis.h.

References Index, and llvm::LiveIntervals::InstrSlots::NUM.

BumpPtrAllocator& llvm::LiveIntervals::getVNInfoAllocator (  )  [inline]

unsigned LiveIntervals::getVNInfoSourceReg ( const VNInfo *  VNI  )  const

getVNInfoSourceReg - Helper function that parses the specified VNInfo copy field and returns the source register that defines it.

getVNInfoSourceReg - Helper function that parses the specified VNInfo copy field and returns the source register that defines it.

Definition at line 841 of file LiveIntervalAnalysis.cpp.

References llvm::VNInfo::copy, llvm::TargetInstrInfo::EXTRACT_SUBREG, llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::TargetRegisterInfo::getSubReg(), llvm::TargetInstrInfo::INSERT_SUBREG, llvm::TargetInstrInfo::isMoveInstr(), llvm::TargetRegisterInfo::isPhysicalRegister(), and Reg.

void LiveIntervals::getAnalysisUsage ( AnalysisUsage &   )  const [virtual]

getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. If a pass specifies that it uses a particular analysis result to this function, it can then use the getAnalysis<AnalysisType>() function, below.

Reimplemented from llvm::Pass.

Definition at line 63 of file LiveIntervalAnalysis.cpp.

References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addPreservedID(), llvm::AnalysisUsage::addRequired(), llvm::AnalysisUsage::addRequiredID(), llvm::Pass::getAnalysisUsage(), llvm::MachineDominatorsID, llvm::MachineLoopInfoID, llvm::PHIEliminationID, llvm::StrongPHIElim, and llvm::TwoAddressInstructionPassID.

void LiveIntervals::releaseMemory (  )  [virtual]

releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. The default behavior of passes is to hold onto memory for the entire duration of their lifetime (which is the entire compile time). For pipelined passes, this is not a big deal because that memory gets recycled every time the pass is invoked on another program unit. For IP passes, it is more important to free memory when it is unused.

Optionally implement this function to release pass memory when it is no longer used.

Reimplemented from llvm::Pass.

Definition at line 80 of file LiveIntervalAnalysis.cpp.

References llvm::MachineFunction::DeleteMachineInstr(), E, MI, and llvm::BumpPtrAllocator::Reset().

bool LiveIntervals::runOnMachineFunction ( MachineFunction &  fn  )  [virtual]

void LiveIntervals::print ( std::ostream &  O,
const Module *  = 0 
) const [virtual]

print - Implement the dump method.

Reimplemented from llvm::Pass.

Definition at line 268 of file LiveIntervalAnalysis.cpp.

References llvm::MachineFunction::begin(), begin(), E, llvm::MachineFunction::end(), end(), getInstructionIndex(), and llvm::Intrinsic::getName().

Referenced by llvm::SimpleRegisterCoalescing::print(), and print().

void llvm::LiveIntervals::print ( std::ostream *  O,
const Module *  M = 0 
) const [inline]

Reimplemented from llvm::Pass.

Definition at line 349 of file LiveIntervalAnalysis.h.

References M, and print().

std::vector< LiveInterval * > LiveIntervals::addIntervalsForSpills ( const LiveInterval &  i,
SmallVectorImpl< LiveInterval * > &  SpillIs,
const MachineLoopInfo *  loopInfo,
VirtRegMap &  vrm,
float &  SSWeight 
)

addIntervalsForSpills - Create new intervals for spilled defs / uses of the given interval. FIXME: It also returns the weight of the spill slot (if any is created) by reference. This is temporary.

Definition at line 1840 of file LiveIntervalAnalysis.cpp.

References addIntervalsForSpillsFast(), llvm::VirtRegMap::addKillPoint(), llvm::MachineInstr::addOperand(), llvm::VirtRegMap::addRestorePoint(), llvm::VirtRegMap::addSpillPoint(), llvm::VirtRegMap::assignVirt2StackSlot(), llvm::TargetInstrDesc::canFoldAsLoad(), llvm::SmallVectorImpl< T >::clear(), llvm::MachineFunction::CloneMachineInstr(), llvm::SmallPtrSet< PtrType, SmallSize >::count(), llvm::MachineOperand::CreateReg(), llvm::VNInfo::def, DOUT, E, llvm::LiveInterval::empty(), llvm::SmallVectorImpl< T >::empty(), EnableFastSpilling, llvm::LiveRange::end, llvm::BitVector::find_first(), llvm::BitVector::find_next(), llvm::MachineInstr::findRegisterUseOperandIdx(), getApproximateInstructionCount(), getBaseIndex(), llvm::MachineFunction::getBlockNumbered(), getDefIndex(), llvm::MachineInstr::getDesc(), getInstructionFromIndex(), getInterval(), llvm::VirtRegMap::getKillPoint(), getLoadIndex(), llvm::MachineLoopInfo::getLoopDepth(), llvm::MachineFunction::getNumBlockIDs(), llvm::MachineInstr::getNumOperands(), llvm::LiveInterval::getNumValNums(), llvm::MachineInstr::getOperand(), llvm::TargetInstrDesc::getOperandConstraint(), getOrCreateInterval(), llvm::VirtRegMap::getPreSplitReg(), llvm::MachineOperand::getReg(), llvm::MachineRegisterInfo::getRegClass(), llvm::VirtRegMap::getReMaterializedMI(), getSpillWeight(), llvm::VirtRegMap::getStackSlot(), getStoreIndex(), getUseIndex(), llvm::VNInfo::hasPHIKill, HUGE_VALF, llvm::VNInfo::id, llvm::SmallPtrSet< PtrType, SmallSize >::insert(), intervalIsInOneMBB(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isImplicit(), llvm::TargetInstrInfo::isLoadFromStackSlot(), llvm::MachineOperand::isReg(), isReMaterializable(), llvm::VirtRegMap::isReMaterialized(), LI, llvm::VirtRegMap::MAX_STACK_SLOT, llvm::LiveIntervals::InstrSlots::NUM, llvm::LiveInterval::print(), llvm::SmallVectorImpl< T >::push_back(), llvm::LiveInterval::ranges, llvm::LiveInterval::reg, llvm::MachineInstr::registerDefIsDead(), llvm::VirtRegMap::removeKillPoint(), llvm::LiveInterval::removeRange(), llvm::SmallVectorImpl< T >::resize(), llvm::BitVector::set(), llvm::MachineOperand::setIsKill(), llvm::VirtRegMap::setIsSplitFromReg(), SplitAtBB, SplitLimit, llvm::TOI::TIED_TO, VN, llvm::LiveInterval::vni_begin(), llvm::LiveInterval::vni_end(), and llvm::LiveInterval::weight.

std::vector< LiveInterval * > LiveIntervals::addIntervalsForSpillsFast ( const LiveInterval &  li,
const MachineLoopInfo *  loopInfo,
VirtRegMap &  vrm,
float &  SSWeight 
)

void LiveIntervals::spillPhysRegAroundRegDefsUses ( const LiveInterval &  li,
unsigned  PhysReg,
VirtRegMap &  vrm 
)

bool LiveIntervals::isReMaterializable ( const LiveInterval &  li,
SmallVectorImpl< LiveInterval * > &  SpillIs,
bool &  isLoad 
)

isReMaterializable - Returns true if every definition of MI of every val# of the specified interval is re-materializable. Also returns true by reference if all of the defs are load instructions.

isReMaterializable - Returns true if every definition of MI of every val# of the specified interval is re-materializable.

Definition at line 1030 of file LiveIntervalAnalysis.cpp.

References llvm::VNInfo::def, getInstructionFromIndex(), llvm::LiveInterval::vni_begin(), and llvm::LiveInterval::vni_end().

Referenced by addIntervalsForSpills(), isReMaterializable(), and llvm::SimpleRegisterCoalescing::runOnMachineFunction().

bool LiveIntervals::isReMaterializable ( const LiveInterval &  li,
const VNInfo *  ValNo,
MachineInstr *  MI 
)

isReMaterializable - Returns true if the definition MI of the specified val# of the specified interval is re-materializable.

isReMaterializable - Returns true if the definition MI of the specified val# of the specified interval is re-materializable.

Definition at line 1021 of file LiveIntervalAnalysis.cpp.

References isReMaterializable().

unsigned LiveIntervals::getRepresentativeReg ( unsigned  Reg  )  const

getRepresentativeReg - Find the largest super register of the specified physical register.

getRepresentativeReg - Find the largest super register of the specified physical register.

Definition at line 2183 of file LiveIntervalAnalysis.cpp.

References llvm::TargetRegisterInfo::getSuperRegisters(), and hasInterval().

Referenced by getNumConflictsWithPhysReg(), and spillPhysRegAroundRegDefsUses().

unsigned LiveIntervals::getNumConflictsWithPhysReg ( const LiveInterval &  li,
unsigned  PhysReg 
) const

getNumConflictsWithPhysReg - Return the number of uses and defs of the specified interval that conflicts with the specified physical register.

getNumConflictsWithPhysReg - Return the number of uses and defs of the specified interval that conflicts with the specified physical register.

Definition at line 2198 of file LiveIntervalAnalysis.cpp.

References E, getInstructionIndex(), getInterval(), llvm::MachineOperand::getParent(), getRepresentativeReg(), llvm::LiveInterval::liveAt(), llvm::LiveInterval::reg, llvm::MachineRegisterInfo::reg_begin(), and llvm::MachineRegisterInfo::reg_end().

void LiveIntervals::computeNumbering (  ) 

bool LiveIntervals::intervalIsInOneMBB ( const LiveInterval &  li  )  const

intervalIsInOneMBB - Returns true if the specified interval is entirely within a single basic block.

Definition at line 1159 of file LiveIntervalAnalysis.cpp.

References E, II, llvm::SmallPtrSet< PtrType, SmallSize >::insert(), llvm::LiveInterval::ranges, and llvm::SmallPtrSetImpl::size().

Referenced by addIntervalsForSpills().


Member Data Documentation

char LiveIntervals::ID = 0 [static]

Definition at line 96 of file LiveIntervalAnalysis.h.


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