QDPQCDOCAllocator::allocate(size_t n_bytes,const MemoryPoolHint& mem_pool_hint) {
allocate(size_t n_bytes,const MemoryPoolHint& mem_pool_hint) {
  QDPQCDOCAllocator::allocate(size_t n_bytes,const MemoryPoolHint& mem_pool_hint)   {    //! QALLOC always returns aligned pointers    unsigned char *aligned;    int qalloc_flags;    switch( mem_pool_hint ) {    case DEFAULT:      qalloc_flags = QCOMMS;      break;    case FAST:      qalloc_flags = (QCOMMS|QFAST);      break;    default:      QDPIO::cerr << "Unsupported mem pool hint " << mem_pool_hint << endl;      QDP_abort(1);      break;    }    aligned=(unsigned char *)qalloc(qalloc_flags, n_bytes);    if( aligned == (unsigned char *)NULL ) {      aligned = (unsigned char *)qalloc(QCOMMS, n_bytes);      if( aligned == (unsigned char *)NULL ) {        dump();        QDPIO::cerr << "Unable to allocate memory with qalloc: n_bytes= " << n_bytes << endl;        QDP_abort(1);     }    }#if defined(QDP_DEBUG_MEMORY)    // Current location    FuncInfo_t& info = infostack.top();    // Insert into the map    InsertRetVal r = the_alignment_map.insert(make_pair(aligned, MapVal(info.func, info.line, n_bytes)));#else    // Insert into the map    InsertRetVal r = the_alignment_map.insert(make_pair(aligned, n_bytes));#endif    // Check success of insertion.    if( ! r.second ) {      QDPIO::cerr << "Failed to insert (aligned,n_bytes) pair into map" << endl;      QDP_abort(1);    }    // Return the aligned pointer    return (void *)aligned;  }