reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
221 static void Profile(const T &X, FoldingSetNodeID &ID) { 224 static void Profile(T &X, FoldingSetNodeID &ID) { 232 static inline bool Equals(T &X, const FoldingSetNodeID &ID, unsigned IDHash, 240 static inline unsigned ComputeHash(T &X, FoldingSetNodeID &TempID); 250 : public DefaultFoldingSetTrait<T> {}; 369 FoldingSetTrait<T>::Profile(X, TempID); 375 FoldingSetTrait<T>::Profile(X, TempID); 410 using iterator = FoldingSetIterator<T>; 415 using const_iterator = FoldingSetIterator<const T>; 420 using bucket_iterator = FoldingSetBucketIterator<T>; 432 bool RemoveNode(T *N) { return FoldingSetBase::RemoveNode(N); } 437 T *GetOrInsertNode(T *N) { 437 T *GetOrInsertNode(T *N) { 444 T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) { 451 void InsertNode(T *N, void *InsertPos) { 457 void InsertNode(T *N) { 473 template <class T> class FoldingSet final : public FoldingSetImpl<T> { 474 using Super = FoldingSetImpl<T>; 480 T *TN = static_cast<T *>(N); 481 FoldingSetTrait<T>::Profile(*TN, ID); 488 T *TN = static_cast<T *>(N); 489 return FoldingSetTrait<T>::Equals(*TN, ID, IDHash, TempID); 495 T *TN = static_cast<T *>(N); 496 return FoldingSetTrait<T>::ComputeHash(*TN, TempID);lib/Support/ItaniumManglingCanonicalizer.cpp
102 llvm::FoldingSet<NodeHeader> Nodes; 124 if (NodeHeader *Existing = Nodes.FindNodeOrInsertPos(ID, InsertPos)) 130 static_assert(alignof(T) <= alignof(NodeHeader), 133 RawAlloc.Allocate(sizeof(NodeHeader) + sizeof(T), alignof(NodeHeader)); 133 RawAlloc.Allocate(sizeof(NodeHeader) + sizeof(T), alignof(NodeHeader)); 134 NodeHeader *New = new (Storage) NodeHeader; 134 NodeHeader *New = new (Storage) NodeHeader;