LLVM 20.0.0git
|
A HashNode is an entry in an OutlinedHashTree, holding a hash value and a collection of Successors (other HashNodes). More...
#include "llvm/CodeGenData/OutlinedHashTree.h"
Public Attributes | |
stable_hash | Hash = 0 |
The hash value of the node. | |
std::optional< unsigned > | Terminals |
The number of terminals in the sequence ending at this node. | |
std::unordered_map< stable_hash, std::unique_ptr< HashNode > > | Successors |
The successors of this node. | |
A HashNode is an entry in an OutlinedHashTree, holding a hash value and a collection of Successors (other HashNodes).
If a HashNode has a positive terminal value (Terminals > 0), it signifies the end of a hash sequence with that occurrence count.
Definition at line 32 of file OutlinedHashTree.h.
stable_hash llvm::HashNode::Hash = 0 |
The hash value of the node.
Definition at line 34 of file OutlinedHashTree.h.
Referenced by llvm::OutlinedHashTree::insert(), and llvm::OutlinedHashTree::merge().
std::unordered_map<stable_hash, std::unique_ptr<HashNode> > llvm::HashNode::Successors |
The successors of this node.
We don't use DenseMap as a stable_hash value can be tombstone.
Definition at line 39 of file OutlinedHashTree.h.
Referenced by llvm::OutlinedHashTree::clear(), llvm::OutlinedHashTree::find(), and llvm::OutlinedHashTree::insert().
std::optional<unsigned> llvm::HashNode::Terminals |
The number of terminals in the sequence ending at this node.
Definition at line 36 of file OutlinedHashTree.h.
Referenced by llvm::OutlinedHashTree::find(), and llvm::OutlinedHashTree::insert().