LLVM  4.0.0
Public Member Functions | Public Attributes | List of all members
llvm::VLIWResourceModel Class Reference

#include <HexagonMachineScheduler.h>

Collaboration diagram for llvm::VLIWResourceModel:
[legend]

Public Member Functions

 VLIWResourceModel (const TargetSubtargetInfo &STI, const TargetSchedModel *SM)
 
 ~VLIWResourceModel ()
 
void resetPacketState ()
 
void resetDFA ()
 
void reset ()
 
bool isResourceAvailable (SUnit *SU)
 Check if scheduling of this SU is possible in the current packet. More...
 
bool reserveResources (SUnit *SU)
 Keep track of available resources. More...
 
void savePacket ()
 Save the last formed packet. More...
 
unsigned getTotalPackets () const
 
bool isInPacket (SUnit *SU) const
 

Public Attributes

std::vector< SUnit * > OldPacket
 Save the last formed packet. More...
 

Detailed Description

Definition at line 40 of file HexagonMachineScheduler.h.

Constructor & Destructor Documentation

llvm::VLIWResourceModel::VLIWResourceModel ( const TargetSubtargetInfo STI,
const TargetSchedModel SM 
)
inline
llvm::VLIWResourceModel::~VLIWResourceModel ( )
inline

Definition at line 75 of file HexagonMachineScheduler.h.

Member Function Documentation

unsigned llvm::VLIWResourceModel::getTotalPackets ( ) const
inline

Definition at line 95 of file HexagonMachineScheduler.h.

bool llvm::VLIWResourceModel::isInPacket ( SUnit SU) const
inline

Definition at line 97 of file HexagonMachineScheduler.h.

References llvm::is_contained().

bool VLIWResourceModel::isResourceAvailable ( SUnit SU)

Check if scheduling of this SU is possible in the current packet.

It is not precise (statefull), it is more like another heuristic. Many corner cases are figured empirically.

Definition at line 143 of file HexagonMachineScheduler.cpp.

References llvm::DFAPacketizer::canReserveResources(), E, llvm::SUnit::getInstr(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), I, i, and llvm::ISD::INLINEASM.

Referenced by reserveResources().

bool VLIWResourceModel::reserveResources ( SUnit SU)
void llvm::VLIWResourceModel::reset ( )
inline

Definition at line 87 of file HexagonMachineScheduler.h.

References llvm::DFAPacketizer::clearResources().

void llvm::VLIWResourceModel::resetDFA ( )
inline

Definition at line 83 of file HexagonMachineScheduler.h.

References llvm::DFAPacketizer::clearResources().

void llvm::VLIWResourceModel::resetPacketState ( )
inline

Definition at line 79 of file HexagonMachineScheduler.h.

void VLIWResourceModel::savePacket ( )

Save the last formed packet.

Definition at line 134 of file HexagonMachineScheduler.cpp.

References OldPacket.

Referenced by reserveResources().

Member Data Documentation

std::vector<SUnit*> llvm::VLIWResourceModel::OldPacket

Save the last formed packet.

Definition at line 57 of file HexagonMachineScheduler.h.

Referenced by savePacket(), and VLIWResourceModel().


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