LLVM 24.0.0git
llvm::SDNodeKey Struct Reference

The key SelectionDAG uniques SDNodes by. More...

#include "llvm/CodeGen/SelectionDAG.h"

Public Member Functions

 SDNodeKey (unsigned Opcode, SDVTList VTList, ArrayRef< SDValue > Ops)
LLVM_ABI SDNodeKey (const SDNode &N)
 SDNodeKey (const SDNodeKey &)=delete
SDNodeKeyoperator= (const SDNodeKey &)=delete
template<typename T>
void AddInteger (T I)
void AddBoolean (bool B)
void AddPointer (const void *P)

Public Attributes

unsigned Opcode
const EVTVTs
ArrayRef< SDValueOps
FoldingSetNodeID Tail
SmallVector< SDValue, 0 > OpStorage
 Backs Ops when the key is built from a node; empty otherwise.

Detailed Description

The key SelectionDAG uniques SDNodes by.

Tail carries the opcode specific data, which most opcodes do not have, still serialized; a lookup site appends it through the FoldingSetNodeID-shaped forwarders below.

Definition at line 105 of file SelectionDAG.h.

Constructor & Destructor Documentation

◆ SDNodeKey() [1/3]

llvm::SDNodeKey::SDNodeKey ( unsigned Opcode,
SDVTList VTList,
ArrayRef< SDValue > Ops )
inline

Definition at line 114 of file SelectionDAG.h.

References Opcode, Ops, and VTs.

Referenced by operator=(), and SDNodeKey().

◆ SDNodeKey() [2/3]

SDNodeKey::SDNodeKey ( const SDNode & N)
explicit

Definition at line 999 of file SelectionDAG.cpp.

References AddNodeIDCustom(), N, Opcode, Ops, OpStorage, Tail, and VTs.

◆ SDNodeKey() [3/3]

llvm::SDNodeKey::SDNodeKey ( const SDNodeKey & )
delete

References SDNodeKey().

Member Function Documentation

◆ AddBoolean()

void llvm::SDNodeKey::AddBoolean ( bool B)
inline

Definition at line 124 of file SelectionDAG.h.

References B(), and Tail.

◆ AddInteger()

template<typename T>
void llvm::SDNodeKey::AddInteger ( T I)
inline

◆ AddPointer()

◆ operator=()

SDNodeKey & llvm::SDNodeKey::operator= ( const SDNodeKey & )
delete

References SDNodeKey().

Member Data Documentation

◆ Opcode

unsigned llvm::SDNodeKey::Opcode

Definition at line 106 of file SelectionDAG.h.

Referenced by SDNodeKey(), and SDNodeKey().

◆ Ops

ArrayRef<SDValue> llvm::SDNodeKey::Ops

Definition at line 108 of file SelectionDAG.h.

Referenced by SDNodeKey(), and SDNodeKey().

◆ OpStorage

SmallVector<SDValue, 0> llvm::SDNodeKey::OpStorage

Backs Ops when the key is built from a node; empty otherwise.

No inline capacity: only that one path pays for the storage.

Definition at line 112 of file SelectionDAG.h.

Referenced by SDNodeKey().

◆ Tail

FoldingSetNodeID llvm::SDNodeKey::Tail

Definition at line 109 of file SelectionDAG.h.

Referenced by AddBoolean(), AddInteger(), AddPointer(), and SDNodeKey().

◆ VTs

const EVT* llvm::SDNodeKey::VTs

Definition at line 107 of file SelectionDAG.h.

Referenced by SDNodeKey(), and SDNodeKey().


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