class ResourceManager

Declaration

class ResourceManager { /* full declaration omitted */ };

Description

A resource manager for processor resource units and groups. This class owns all the ResourceState objects, and it is responsible for acting on requests from a Scheduler by updating the internal state of ResourceState objects. This class doesn't know about instruction itineraries and functional units. In future, it can be extended to support itineraries too through the same public interface.

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:311

Member Variables

private std::vector<std::unique_ptr<ResourceState>> Resources
private std::vector<std::unique_ptr<ResourceStrategy>> Strategies
private std::vector<uint64_t> Resource2Groups
private SmallVector<uint64_t, 8> ProcResID2Mask
private SmallVector<unsigned int, 8> ResIndex2ProcResID
private SmallDenseMap<llvm::mca::ResourceRef, unsigned int> BusyResources
private uint64_t ProcResUnitMask
private uint64_t AvailableProcResUnits
private uint64_t ReservedResourceGroups
private uint64_t AvailableBuffers
private uint64_t ReservedBuffers

Method Overview

Methods

ResourceManager(const llvm::MCSchedModel& SM)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:386

Parameters

const llvm::MCSchedModel& SM

llvm::mca::ResourceStateEvent canBeDispatched(
    uint64_t ConsumedBuffers) const

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:400

Parameters

uint64_t ConsumedBuffers

uint64_t checkAvailability(
    const llvm::mca::InstrDesc& Desc) const

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:426

Parameters

const llvm::mca::InstrDesc& Desc

void cycleEvent(
    SmallVectorImpl<llvm::mca::ResourceRef>&
        ResourcesFreed)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:435

Parameters

SmallVectorImpl<llvm::mca::ResourceRef>& ResourcesFreed

void dump() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:438

uint64_t getAvailableProcResUnits() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:429

unsigned int getNumUnits(
    uint64_t ResourceID) const

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:378

Parameters

uint64_t ResourceID

uint64_t getProcResUnitMask() const

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:428

void issueInstruction(
    const llvm::mca::InstrDesc& Desc,
    SmallVectorImpl<
        std::pair<ResourceRef, ResourceCycles>>&
        Pipes)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:431

Parameters

const llvm::mca::InstrDesc& Desc
SmallVectorImpl< std::pair<ResourceRef, ResourceCycles>>& Pipes

void release(const llvm::mca::ResourceRef& RR)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:376

Parameters

const llvm::mca::ResourceRef& RR

void releaseBuffers(uint64_t ConsumedBuffers)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:413

Parameters

uint64_t ConsumedBuffers

void releaseResource(uint64_t ResourceID)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:420

Parameters

uint64_t ResourceID

void reserveBuffers(uint64_t ConsumedBuffers)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:407

Parameters

uint64_t ConsumedBuffers

void reserveResource(uint64_t ResourceID)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:417

Parameters

uint64_t ResourceID

unsigned int resolveResourceMask(
    uint64_t Mask) const

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:403

Parameters

uint64_t Mask

llvm::mca::ResourceRef selectPipe(
    uint64_t ResourceID)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:373

Parameters

uint64_t ResourceID

void setCustomStrategy(
    std::unique_ptr<ResourceStrategy> S,
    unsigned int ResourceID)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:391

Parameters

std::unique_ptr<ResourceStrategy> S
unsigned int ResourceID

void setCustomStrategyImpl(
    std::unique_ptr<ResourceStrategy> S,
    uint64_t ResourceMask)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:382

Parameters

std::unique_ptr<ResourceStrategy> S
uint64_t ResourceMask

void use(const llvm::mca::ResourceRef& RR)

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:375

Parameters

const llvm::mca::ResourceRef& RR

virtual ~ResourceManager()

Declared at: llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h:387