LLVM 20.0.0git
Public Attributes | List of all members
llvm::HashNode Struct Reference

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< unsignedTerminals
 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.
 

Detailed Description

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.

Member Data Documentation

◆ Hash

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().

◆ Successors

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().

◆ Terminals

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().


The documentation for this struct was generated from the following file: