LLVM 22.0.0git
|
A processor resource descriptor. More...
#include "llvm/MCA/HardwareUnits/ResourceManager.h"
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 136 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 231 of file ResourceManager.h.
References Unavailable.
Referenced by llvm::mca::ResourceManager::releaseResource().
Definition at line 241 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 221 of file ResourceManager.h.
|
inline |
Definition at line 237 of file ResourceManager.h.
References llvm::popcount().
Referenced by llvm::mca::ResourceManager::issueInstructionImpl().
|
inline |
Definition at line 253 of file ResourceManager.h.
References isAResourceGroup(), and llvm::popcount().
Referenced by llvm::mca::getStrategyFor().
|
inline |
Definition at line 218 of file ResourceManager.h.
|
inline |
Definition at line 220 of file ResourceManager.h.
Referenced by llvm::mca::ResourceManager::checkAvailability(), and llvm::mca::getStrategyFor().
|
inline |
Definition at line 219 of file ResourceManager.h.
|
inline |
Returns true if this is an in-order dispatch/issue resource.
Definition at line 227 of file ResourceManager.h.
Referenced by isBufferAvailable(), isReady(), and llvm::mca::ResourceManager::releaseResource().
|
inline |
Definition at line 239 of file ResourceManager.h.
Referenced by llvm::mca::ResourceManager::checkAvailability(), getNumUnits(), llvm::mca::getStrategyFor(), llvm::mca::ResourceManager::issueInstructionImpl(), 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 223 of file ResourceManager.h.
Referenced by isBufferAvailable().
|
inline |
Definition at line 224 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 228 of file ResourceManager.h.
References Unavailable.
Referenced by isBufferAvailable(), isReady(), and llvm::mca::ResourceManager::reserveResource().
|
inline |
Definition at line 243 of file ResourceManager.h.
References assert().
|
inline |
Releases a slot in the buffer.
Definition at line 282 of file ResourceManager.h.
References assert().
|
inline |
Definition at line 248 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 272 of file ResourceManager.h.
References assert().
|
inline |
Definition at line 230 of file ResourceManager.h.
References Unavailable.
Referenced by llvm::mca::ResourceManager::reserveResource().