reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
146 return Dense[D.Prev].isTail(); 154 return &Dense[N.Prev] == &N; 161 Dense.push_back(SMSNode(V, Prev, Next)); 162 return Dense.size() - 1; 167 unsigned NextFree = Dense[Idx].Next; 168 assert(Dense[Idx].isTombstone() && "Non-tombstone free?"); 170 Dense[Idx] = SMSNode(V, Prev, Next); 178 Dense[Idx].Prev = SMSNode::INVALID; 179 Dense[Idx].Next = FreelistIdx; 236 assert(Idx < SMS->Dense.size() && "Out of range, non-INVALID Idx?"); 243 unsigned Prev() const { return SMS->Dense[Idx].Prev; } 244 unsigned Next() const { return SMS->Dense[Idx].Next; } 246 void setPrev(unsigned P) { SMS->Dense[Idx].Prev = P; } 257 assert(isKeyed() && SMS->sparseIndex(SMS->Dense[Idx].Data) == SparseIdx && 260 return SMS->Dense[Idx].Data; 283 assert((isEnd() || !SMS->isHead(SMS->Dense[Idx])) && 336 assert(NumFree <= Dense.size() && "Out-of-bounds free entries"); 337 return Dense.size() - NumFree; 344 Dense.clear(); 357 for (unsigned i = Sparse[Idx], e = Dense.size(); i < e; i += Stride) { 358 const unsigned FoundIdx = sparseIndex(Dense[i]); 361 if (Idx == FoundIdx && Dense[i].isValid() && isHead(Dense[i])) 361 if (Idx == FoundIdx && Dense[i].isValid() && isHead(Dense[i])) 428 Dense[NodeIdx].Prev = NodeIdx; 435 Dense[TailIdx].Next = NodeIdx; 436 Dense[HeadIdx].Prev = NodeIdx; 437 Dense[NodeIdx].Prev = TailIdx; 467 assert(I.isKeyed() && !I.isEnd() && !Dense[I.Idx].isTombstone() && 472 iterator NextI = unlink(Dense[I.Idx]); 499 Dense[N.Next].Prev = N.Prev; 506 Dense[N.Prev].Next = N.Next; 514 Dense[N.Next].Prev = N.Prev; 515 Dense[N.Prev].Next = N.Next;