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 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 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: