LLVM API Documentation

llvm::TargetSchedInfo Class Reference

#include <TargetSchedInfo.h>

Inheritance diagram for llvm::TargetSchedInfo:

Inheritance graph
[legend]
Collaboration diagram for llvm::TargetSchedInfo:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TargetSchedInfo (const TargetMachine &tgt, int _numSchedClasses, const InstrClassRUsage *_classRUsages, const InstrRUsageDelta *_usageDeltas, const InstrIssueDelta *_issueDeltas, unsigned _numUsageDeltas, unsigned _numIssueDeltas)
virtual ~TargetSchedInfo ()
const TargetInstrInfo & getInstrInfo () const
int getNumSchedClasses () const
unsigned getMaxNumIssueTotal () const
unsigned getMaxIssueForClass (const InstrSchedClass &sc) const
InstrSchedClass getSchedClass (MachineOpCode opCode) const
bool instrCanUseSlot (MachineOpCode opCode, unsigned s) const
int getLongestIssueConflict () const
int getMinIssueGap (MachineOpCode fromOp, MachineOpCode toOp) const
const std::vector< MachineOpCode > & getConflictList (MachineOpCode opCode) const
bool isSingleIssue (MachineOpCode opCode) const
bool breaksIssueGroup (MachineOpCode opCode) const
unsigned numBubblesAfter (MachineOpCode opCode) const
unsigned getCPUResourceNum (int rd) const

Public Attributes

const TargetMachine & target
unsigned maxNumIssueTotal
int longestIssueConflict
std::vector< std::pair< int,
int > > 
resourceNumVector

Protected Member Functions

const InstrRUsage & getInstrRUsage (MachineOpCode opCode) const
const InstrClassRUsage & getClassRUsage (const InstrSchedClass &sc) const
virtual void initializeResources ()

Protected Attributes

unsigned numSchedClasses
const TargetInstrInfo * mii
const InstrClassRUsage * classRUsages
const InstrRUsageDelta * usageDeltas
const InstrIssueDelta * issueDeltas
unsigned numUsageDeltas
unsigned numIssueDeltas
std::vector< InstrRUsage > instrRUsages
std::vector< std::vector<
int > > 
issueGaps
std::vector< std::vector<
MachineOpCode > > 
conflictLists

Friends

class ModuloSchedulingPass
class ModuloSchedulingSBPass
class MSSchedule
class MSScheduleSB
class MSchedGraphSB

Detailed Description

TargetSchedInfo - Common interface to machine information for instruction scheduling

Definition at line 155 of file TargetSchedInfo.h.


Constructor & Destructor Documentation

TargetSchedInfo::TargetSchedInfo ( const TargetMachine &  tgt,
int  _numSchedClasses,
const InstrClassRUsage *  _classRUsages,
const InstrRUsageDelta *  _usageDeltas,
const InstrIssueDelta *  _issueDeltas,
unsigned  _numUsageDeltas,
unsigned  _numIssueDeltas 
)

Definition at line 98 of file TargetSchedInfo.cpp.

virtual llvm::TargetSchedInfo::~TargetSchedInfo (  )  [inline, virtual]

Definition at line 183 of file TargetSchedInfo.h.


Member Function Documentation

bool llvm::TargetSchedInfo::breaksIssueGroup ( MachineOpCode  opCode  )  const [inline]

Definition at line 233 of file TargetSchedInfo.h.

References llvm::InstrRUsage::breaksGroup, and getInstrRUsage().

Referenced by llvm::FindSlotChoices().

const InstrClassRUsage& llvm::TargetSchedInfo::getClassRUsage ( const InstrSchedClass &  sc  )  const [inline, protected]

Definition at line 167 of file TargetSchedInfo.h.

References classRUsages, and numSchedClasses.

const std::vector<MachineOpCode>& llvm::TargetSchedInfo::getConflictList ( MachineOpCode  opCode  )  const [inline]

Definition at line 224 of file TargetSchedInfo.h.

References conflictLists.

unsigned llvm::TargetSchedInfo::getCPUResourceNum ( int  rd  )  const [inline]

Definition at line 241 of file TargetSchedInfo.h.

References first, and resourceNumVector.

const TargetInstrInfo& llvm::TargetSchedInfo::getInstrInfo (  )  const [inline]

Definition at line 185 of file TargetSchedInfo.h.

References mii.

Referenced by llvm::SchedulingManager::getInstrInfo(), getSchedClass(), and llvm::RecordSchedule().

const InstrRUsage& llvm::TargetSchedInfo::getInstrRUsage ( MachineOpCode  opCode  )  const [inline, protected]

Definition at line 163 of file TargetSchedInfo.h.

References instrRUsages.

Referenced by breaksIssueGroup(), instrCanUseSlot(), isSingleIssue(), and numBubblesAfter().

int llvm::TargetSchedInfo::getLongestIssueConflict (  )  const [inline]

Definition at line 212 of file TargetSchedInfo.h.

References longestIssueConflict.

unsigned llvm::TargetSchedInfo::getMaxIssueForClass ( const InstrSchedClass &  sc  )  const [inline]

Definition at line 197 of file TargetSchedInfo.h.

References classRUsages, llvm::InstrClassRUsage::maxNumIssue, and numSchedClasses.

Referenced by llvm::ConflictsWithChoices().

unsigned llvm::TargetSchedInfo::getMaxNumIssueTotal (  )  const [inline]

Definition at line 193 of file TargetSchedInfo.h.

References maxNumIssueTotal.

Referenced by initializeResources().

int llvm::TargetSchedInfo::getMinIssueGap ( MachineOpCode  fromOp,
MachineOpCode  toOp 
) const [inline]

Definition at line 216 of file TargetSchedInfo.h.

References issueGaps.

int llvm::TargetSchedInfo::getNumSchedClasses (  )  const [inline]

Definition at line 189 of file TargetSchedInfo.h.

References numSchedClasses.

InstrSchedClass llvm::TargetSchedInfo::getSchedClass ( MachineOpCode  opCode  )  const [inline]

Definition at line 202 of file TargetSchedInfo.h.

References getInstrInfo(), and llvm::TargetInstrInfo::getSchedClass().

Referenced by llvm::SchedulingManager::addChoice(), llvm::ConflictsWithChoices(), and llvm::SchedulingManager::scheduleInstr().

void TargetSchedInfo::initializeResources (  )  [protected, virtual]

Reimplemented in llvm::SparcV9SchedInfo.

Definition at line 113 of file TargetSchedInfo.cpp.

References classRUsages, getMaxNumIssueTotal(), llvm::MAX_NUM_SLOTS, and numSchedClasses.

Referenced by llvm::SparcV9SchedInfo::initializeResources().

bool llvm::TargetSchedInfo::instrCanUseSlot ( MachineOpCode  opCode,
unsigned  s 
) const [inline]

Definition at line 206 of file TargetSchedInfo.h.

References llvm::InstrRUsage::feasibleSlots, and getInstrRUsage().

Referenced by llvm::FindSlotChoices(), and llvm::DelaySlotInfo::scheduleDelayedNode().

bool llvm::TargetSchedInfo::isSingleIssue ( MachineOpCode  opCode  )  const [inline]

Definition at line 229 of file TargetSchedInfo.h.

References getInstrRUsage(), and llvm::InstrRUsage::isSingleIssue.

Referenced by llvm::ConflictsWithChoices(), llvm::FindSlotChoices(), and llvm::NodeCanFillDelaySlot().

unsigned llvm::TargetSchedInfo::numBubblesAfter ( MachineOpCode  opCode  )  const [inline]

Definition at line 237 of file TargetSchedInfo.h.

References getInstrRUsage(), and llvm::InstrRUsage::numBubbles.


Friends And Related Function Documentation

friend class ModuloSchedulingPass [friend]

Definition at line 282 of file TargetSchedInfo.h.

friend class ModuloSchedulingSBPass [friend]

Definition at line 283 of file TargetSchedInfo.h.

friend class MSchedGraphSB [friend]

Definition at line 286 of file TargetSchedInfo.h.

friend class MSSchedule [friend]

Definition at line 284 of file TargetSchedInfo.h.

friend class MSScheduleSB [friend]

Definition at line 285 of file TargetSchedInfo.h.


Member Data Documentation

const InstrClassRUsage* llvm::TargetSchedInfo::classRUsages [protected]

Definition at line 270 of file TargetSchedInfo.h.

Referenced by getClassRUsage(), getMaxIssueForClass(), and initializeResources().

std::vector<std::vector<MachineOpCode> > llvm::TargetSchedInfo::conflictLists [protected]

Definition at line 279 of file TargetSchedInfo.h.

Referenced by getConflictList().

std::vector<InstrRUsage> llvm::TargetSchedInfo::instrRUsages [protected]

Definition at line 276 of file TargetSchedInfo.h.

Referenced by getInstrRUsage().

const InstrIssueDelta* llvm::TargetSchedInfo::issueDeltas [protected]

Definition at line 272 of file TargetSchedInfo.h.

std::vector<std::vector<int> > llvm::TargetSchedInfo::issueGaps [protected]

Definition at line 277 of file TargetSchedInfo.h.

Referenced by getMinIssueGap().

int llvm::TargetSchedInfo::longestIssueConflict

Definition at line 160 of file TargetSchedInfo.h.

Referenced by getLongestIssueConflict(), and llvm::SparcV9SchedInfo::SparcV9SchedInfo().

unsigned llvm::TargetSchedInfo::maxNumIssueTotal

Definition at line 159 of file TargetSchedInfo.h.

Referenced by getMaxNumIssueTotal(), and llvm::SparcV9SchedInfo::SparcV9SchedInfo().

const TargetInstrInfo* llvm::TargetSchedInfo::mii [protected]

Definition at line 269 of file TargetSchedInfo.h.

Referenced by getInstrInfo().

unsigned llvm::TargetSchedInfo::numIssueDeltas [protected]

Definition at line 274 of file TargetSchedInfo.h.

unsigned llvm::TargetSchedInfo::numSchedClasses [protected]

Definition at line 268 of file TargetSchedInfo.h.

Referenced by getClassRUsage(), getMaxIssueForClass(), getNumSchedClasses(), and initializeResources().

unsigned llvm::TargetSchedInfo::numUsageDeltas [protected]

Definition at line 273 of file TargetSchedInfo.h.

std::vector<std::pair<int,int> > llvm::TargetSchedInfo::resourceNumVector

Definition at line 265 of file TargetSchedInfo.h.

Referenced by getCPUResourceNum().

const TargetMachine& llvm::TargetSchedInfo::target

Definition at line 157 of file TargetSchedInfo.h.

const InstrRUsageDelta* llvm::TargetSchedInfo::usageDeltas [protected]

Definition at line 271 of file TargetSchedInfo.h.


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