LLVM 24.0.0git
llvm::ImutAVLDetail::CanonicalLinks< Tree, Canonicalize > Struct Template Reference

The intrusive doubly-linked chain of same-digest trees in the factory's canonicalization cache. More...

#include "llvm/ADT/ImmutableSet.h"

Inheritance diagram for llvm::ImutAVLDetail::CanonicalLinks< Tree, Canonicalize >:
[legend]

Public Attributes

TreePrev = nullptr
TreeNext = nullptr

Detailed Description

template<typename Tree, bool Canonicalize>
struct llvm::ImutAVLDetail::CanonicalLinks< Tree, Canonicalize >

The intrusive doubly-linked chain of same-digest trees in the factory's canonicalization cache.

Held as an (empty) base so that, when canonicalization is disabled, the empty base optimization removes it entirely. Kept separate from the cached digest below so that the two pointers pack without the tail padding that grouping a trailing 32-bit field with them would introduce.

Definition at line 53 of file ImmutableSet.h.

Member Data Documentation

◆ Next

template<typename Tree, bool Canonicalize>
Tree* llvm::ImutAVLDetail::CanonicalLinks< Tree, Canonicalize >::Next = nullptr

Definition at line 55 of file ImmutableSet.h.

Referenced by llvm::ImutAVLTree< ValInfo, Canonicalize >::destroy().

◆ Prev

template<typename Tree, bool Canonicalize>
Tree* llvm::ImutAVLDetail::CanonicalLinks< Tree, Canonicalize >::Prev = nullptr

Definition at line 54 of file ImmutableSet.h.

Referenced by llvm::ImutAVLTree< ValInfo, Canonicalize >::destroy().


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