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

#include "Target/Hexagon/HexagonMachineScheduler.h"

Public Member Functions

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

Detailed Description

Definition at line 36 of file HexagonMachineScheduler.h.

Constructor & Destructor Documentation

◆ VLIWResourceModel()

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

◆ ~VLIWResourceModel()

llvm::VLIWResourceModel::~VLIWResourceModel ( )
inline

Definition at line 65 of file HexagonMachineScheduler.h.

Member Function Documentation

◆ getTotalPackets()

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

Definition at line 84 of file HexagonMachineScheduler.h.

◆ isInPacket()

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

Definition at line 85 of file HexagonMachineScheduler.h.

References llvm::is_contained().

◆ isResourceAvailable()

bool VLIWResourceModel::isResourceAvailable ( SUnit SU,
bool  IsTop 
)

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 98 of file HexagonMachineScheduler.cpp.

References llvm::DFAPacketizer::canReserveResources(), llvm::SUnit::getInstr(), llvm::HexagonSubtarget::getInstrInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineFunction::getSubtarget(), hasDependence(), and llvm::ISD::INLINEASM.

Referenced by reserveResources(), and reset().

◆ reserveResources()

bool VLIWResourceModel::reserveResources ( SUnit SU,
bool  IsTop 
)

◆ reset()

void llvm::VLIWResourceModel::reset ( )
inline

◆ resetDFA()

void llvm::VLIWResourceModel::resetDFA ( )
inline

Definition at line 73 of file HexagonMachineScheduler.h.

References llvm::DFAPacketizer::clearResources().

◆ resetPacketState()

void llvm::VLIWResourceModel::resetPacketState ( )
inline

Definition at line 69 of file HexagonMachineScheduler.h.


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