Home | History | Annotate | Download | only in ADT

Lines Matching defs:FoldingSetNodeID

42 /// passed a FoldingSetNodeID object which is used to gather the bits.  Just
55 /// void Profile(FoldingSetNodeID &ID) const {
79 /// exists, then call FindNodeOrInsertPos with a FoldingSetNodeID of the bits to
82 /// FoldingSetNodeID ID;
103 class FoldingSetNodeID;
186 virtual void GetNodeProfile(Node *N, FoldingSetNodeID &ID) const = 0;
190 virtual bool NodeEquals(Node *N, const FoldingSetNodeID &ID, unsigned IDHash,
191 FoldingSetNodeID &TempID) const=0;
195 virtual unsigned ComputeNodeHash(Node *N, FoldingSetNodeID &TempID) const = 0;
212 Node *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos);
226 static void Profile(const T &X, FoldingSetNodeID &ID) {
229 static void Profile(T &X, FoldingSetNodeID &ID) {
237 static inline bool Equals(T &X, const FoldingSetNodeID &ID, unsigned IDHash,
238 FoldingSetNodeID &TempID);
245 static inline unsigned ComputeHash(T &X, FoldingSetNodeID &TempID);
261 static void Profile(T &X, FoldingSetNodeID &ID, Ctx Context) {
265 static inline bool Equals(T &X, const FoldingSetNodeID &ID, unsigned IDHash,
266 FoldingSetNodeID &TempID, Ctx Context);
267 static inline unsigned ComputeHash(T &X, FoldingSetNodeID &TempID,
278 /// FoldingSetNodeID, which can be a useful to store node id data rather
307 /// FoldingSetNodeID - This class is used to gather all the unique data bits of
311 class FoldingSetNodeID {
317 FoldingSetNodeID() = default;
319 FoldingSetNodeID(FoldingSetNodeIDRef Ref)
333 void AddNodeID(const FoldingSetNodeID &ID);
338 /// clear - Clear the accumulated profile, allowing this FoldingSetNodeID
342 /// ComputeHash - Compute a strong hash value for this FoldingSetNodeID, used
348 bool operator==(const FoldingSetNodeID &RHS) const;
351 bool operator!=(const FoldingSetNodeID &RHS) const { return !(*this == RHS); }
356 bool operator<(const FoldingSetNodeID &RHS) const;
371 // require the definition of FoldingSetNodeID.
374 DefaultFoldingSetTrait<T>::Equals(T &X, const FoldingSetNodeID &ID,
376 FoldingSetNodeID &TempID) {
382 DefaultFoldingSetTrait<T>::ComputeHash(T &X, FoldingSetNodeID &TempID) {
389 const FoldingSetNodeID &ID,
391 FoldingSetNodeID &TempID,
399 FoldingSetNodeID &TempID,
450 T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
485 void GetNodeProfile(Node *N, FoldingSetNodeID &ID) const override {
492 bool NodeEquals(Node *N, const FoldingSetNodeID &ID, unsigned IDHash,
493 FoldingSetNodeID &TempID) const override {
500 unsigned ComputeNodeHash(Node *N, FoldingSetNodeID &TempID) const override {
521 /// void Profile(FoldingSetNodeID &, Ctx);
536 void GetNodeProfile(Node *N, FoldingSetNodeID &ID) const override {
541 bool NodeEquals(Node *N, const FoldingSetNodeID &ID, unsigned IDHash,
542 FoldingSetNodeID &TempID) const override {
548 unsigned ComputeNodeHash(Node *N, FoldingSetNodeID &TempID) const override {
590 T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
728 void Profile(FoldingSetNodeID &ID) { FoldingSetTrait<T>::Profile(data, ID); }
739 /// a FoldingSetNodeID value rather than requiring the node to recompute it
744 FoldingSetNodeID FastID;
747 explicit FastFoldingSetNode(const FoldingSetNodeID &ID) : FastID(ID) {}
750 void Profile(FoldingSetNodeID &ID) const { ID.AddNodeID(FastID); }
757 static inline void Profile(T *X, FoldingSetNodeID &ID) {
764 FoldingSetNodeID &ID) {