37 #include "debug/GPUVRF.hh" 
   59     uint32_t reservedEntries = 0;
 
   69         reservedEntries += it_free->first;
 
   74     if (reservedEntries == 0)
 
   75         _cout = 
"VRF is empty\n";
 
   77         _cout = 
"VRF reserves " + 
std::to_string(reservedEntries) + 
" VGPRs\n";
 
   98     DPRINTF(GPUVRF,
"Can Allocate %d\n",actualSize);
 
  104                                     uint32_t *reservedPoolSize)
 
  106     uint32_t startIdx = (unsigned)-1;
 
  110         if (it->second >= actualSize) {
 
  112             startIdx = it->first;
 
  114             *reservedPoolSize = actualSize;
 
  120             if (it->second == actualSize) {
 
  126                 it->first += actualSize;
 
  127                 it->second -= actualSize;
 
  133     DPRINTF(GPUVRF,
"totRegSpace %d allocating Register at %d and" 
  143     DPRINTF(GPUVRF,
"freeing Region at %d %d, size %d\n",
 
  144                 firstIdx,lastIdx,lastIdx-firstIdx);
 
  147     assert(firstIdx < lastIdx);
 
  157     bool wrapAround = (region.first > region.second);
 
  159         return region.second - region.first + 1;
 
  161         return region.second + 
poolSize() - region.first + 1;