LLVM 20.0.0git
|
A processor resource descriptor. More...
#include "llvm/MCA/HardwareUnits/ResourceManager.h"
Public Member Functions | |
ResourceState (const MCProcResourceDesc &Desc, unsigned Index, uint64_t Mask) | |
unsigned | getProcResourceID () const |
uint64_t | getResourceMask () const |
uint64_t | getReadyMask () const |
int | getBufferSize () const |
bool | isBuffered () const |
bool | isInOrder () const |
bool | isADispatchHazard () const |
Returns true if this is an in-order dispatch/issue resource. | |
bool | isReserved () const |
void | setReserved () |
void | clearReserved () |
bool | isReady (unsigned NumUnits=1) const |
Returs true if this resource is not reserved, and if there are at least NumUnits available units. | |
bool | isAResourceGroup () const |
bool | containsResource (uint64_t ID) const |
void | markSubResourceAsUsed (uint64_t ID) |
void | releaseSubResource (uint64_t ID) |
unsigned | getNumUnits () const |
ResourceStateEvent | isBufferAvailable () const |
Checks if there is an available slot in the resource buffer. | |
bool | reserveBuffer () |
Reserve a buffer slot. | |
void | releaseBuffer () |
Releases a slot in the buffer. | |
void | dump () const |
A processor resource descriptor.
There is an instance of this class for every processor resource defined by the machine scheduling model. Objects of class ResourceState dynamically track the usage of processor resource units.
Definition at line 135 of file ResourceManager.h.
llvm::mca::ResourceState::ResourceState | ( | const MCProcResourceDesc & | Desc, |
unsigned | Index, | ||
uint64_t | Mask | ||
) |
Definition at line 65 of file ResourceManager.cpp.
References llvm::mca::getResourceStateIndex().
|
inline |
Definition at line 229 of file ResourceManager.h.
References Unavailable.
Referenced by llvm::mca::ResourceManager::releaseResource().
Definition at line 237 of file ResourceManager.h.
void llvm::mca::ResourceState::dump | ( | ) | const |
Definition at line 94 of file ResourceManager.cpp.
References llvm::dbgs(), and llvm::format_hex().
|
inline |
Definition at line 219 of file ResourceManager.h.
|
inline |
Definition at line 249 of file ResourceManager.h.
References isAResourceGroup(), and llvm::popcount().
Referenced by llvm::mca::getStrategyFor().
|
inline |
Definition at line 216 of file ResourceManager.h.
|
inline |
Definition at line 218 of file ResourceManager.h.
Referenced by llvm::mca::ResourceManager::checkAvailability(), and llvm::mca::getStrategyFor().
|
inline |
Definition at line 217 of file ResourceManager.h.
|
inline |
Returns true if this is an in-order dispatch/issue resource.
Definition at line 225 of file ResourceManager.h.
Referenced by isBufferAvailable(), isReady(), and llvm::mca::ResourceManager::releaseResource().
|
inline |
Definition at line 235 of file ResourceManager.h.
Referenced by llvm::mca::ResourceManager::checkAvailability(), getNumUnits(), llvm::mca::getStrategyFor(), llvm::mca::ResourceManager::releaseResource(), llvm::mca::ResourceManager::reserveResource(), and llvm::mca::ResourceManager::ResourceManager().
ResourceStateEvent llvm::mca::ResourceState::isBufferAvailable | ( | ) | const |
Checks if there is an available slot in the resource buffer.
Returns RS_BUFFER_AVAILABLE if this is not a buffered resource, or if there is a slot available.
Returns RS_RESERVED if this buffered resource is a dispatch hazard, and it is reserved.
Returns RS_BUFFER_UNAVAILABLE if there are no available slots.
Definition at line 85 of file ResourceManager.cpp.
References isADispatchHazard(), isBuffered(), isReserved(), llvm::mca::RS_BUFFER_AVAILABLE, llvm::mca::RS_BUFFER_UNAVAILABLE, and llvm::mca::RS_RESERVED.
|
inline |
Definition at line 221 of file ResourceManager.h.
Referenced by isBufferAvailable().
|
inline |
Definition at line 222 of file ResourceManager.h.
Returs true if this resource is not reserved, and if there are at least NumUnits
available units.
Definition at line 80 of file ResourceManager.cpp.
References isADispatchHazard(), isReserved(), and llvm::popcount().
Referenced by llvm::mca::ResourceManager::checkAvailability().
|
inline |
Definition at line 226 of file ResourceManager.h.
References Unavailable.
Referenced by isBufferAvailable(), isReady(), and llvm::mca::ResourceManager::reserveResource().
|
inline |
Definition at line 239 of file ResourceManager.h.
References assert().
|
inline |
Releases a slot in the buffer.
Definition at line 278 of file ResourceManager.h.
References assert().
|
inline |
Definition at line 244 of file ResourceManager.h.
References assert().
|
inline |
Reserve a buffer slot.
Returns true if the buffer is not full. It always returns true if BufferSize is set to zero.
Definition at line 268 of file ResourceManager.h.
References assert().
|
inline |
Definition at line 228 of file ResourceManager.h.
References Unavailable.
Referenced by llvm::mca::ResourceManager::reserveResource().