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 TargetInstrInfogetInstrInfo () 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 TargetMachinetarget
unsigned maxNumIssueTotal
int longestIssueConflict
std::vector< std::pair< int,
int > > 
resourceNumVector

Protected Member Functions

const InstrRUsagegetInstrRUsage (MachineOpCode opCode) const
const InstrClassRUsagegetClassRUsage (const InstrSchedClass &sc) const
virtual void initializeResources ()

Protected Attributes

unsigned numSchedClasses
const TargetInstrInfomii
const InstrClassRUsageclassRUsages
const InstrRUsageDeltausageDeltas
const InstrIssueDeltaissueDeltas
unsigned numUsageDeltas
unsigned numIssueDeltas
std::vector< InstrRUsageinstrRUsages
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: