LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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 MSSchedule

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 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 MSSchedule [friend]
 

Definition at line 283 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: