LLVM 22.0.0git
llvm::SDDbgInfo Class Reference

Keeps track of dbg_value information through SDISel. More...

#include "llvm/CodeGen/SelectionDAG.h"

Public Types

using DbgIterator = SmallVectorImpl<SDDbgValue*>::iterator
using DbgLabelIterator = SmallVectorImpl<SDDbgLabel*>::iterator

Public Member Functions

 SDDbgInfo ()=default
 SDDbgInfo (const SDDbgInfo &)=delete
SDDbgInfooperator= (const SDDbgInfo &)=delete
LLVM_ABI void add (SDDbgValue *V, bool isParameter)
void add (SDDbgLabel *L)
LLVM_ABI void erase (const SDNode *Node)
 Invalidate all DbgValues attached to the node and remove it from the Node-to-DbgValues map.
void clear ()
BumpPtrAllocatorgetAlloc ()
bool empty () const
ArrayRef< SDDbgValue * > getSDDbgValues (const SDNode *Node) const
DbgIterator DbgBegin ()
DbgIterator DbgEnd ()
DbgIterator ByvalParmDbgBegin ()
DbgIterator ByvalParmDbgEnd ()
DbgLabelIterator DbgLabelBegin ()
DbgLabelIterator DbgLabelEnd ()

Detailed Description

Keeps track of dbg_value information through SDISel.

We do not build SDNodes for these so as not to perturb the generated code; instead the info is kept off to the side in this structure. Each SDNode may have one or more associated dbg_value entries. This information is kept in DbgValMap. Byval parameters are handled separately because they don't use alloca's, which busts the normal mechanism. There is good reason for handling all parameters separately: they may not have code generated for them, they should always go at the beginning of the function regardless of other code motion, and debug info for them is potentially useful even if the parameter is unused. Right now only byval parameters are handled separately.

Definition at line 163 of file SelectionDAG.h.

Member Typedef Documentation

◆ DbgIterator

Definition at line 205 of file SelectionDAG.h.

◆ DbgLabelIterator

Definition at line 206 of file SelectionDAG.h.

Constructor & Destructor Documentation

◆ SDDbgInfo() [1/2]

llvm::SDDbgInfo::SDDbgInfo ( )
default

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

◆ SDDbgInfo() [2/2]

llvm::SDDbgInfo::SDDbgInfo ( const SDDbgInfo & )
delete

References SDDbgInfo().

Member Function Documentation

◆ add() [1/2]

void llvm::SDDbgInfo::add ( SDDbgLabel * L)
inline

Definition at line 178 of file SelectionDAG.h.

◆ add() [2/2]

void SDDbgInfo::add ( SDDbgValue * V,
bool isParameter )

Definition at line 1108 of file SelectionDAG.cpp.

References assert().

◆ ByvalParmDbgBegin()

DbgIterator llvm::SDDbgInfo::ByvalParmDbgBegin ( )
inline

Definition at line 210 of file SelectionDAG.h.

◆ ByvalParmDbgEnd()

DbgIterator llvm::SDDbgInfo::ByvalParmDbgEnd ( )
inline

Definition at line 211 of file SelectionDAG.h.

◆ clear()

void llvm::SDDbgInfo::clear ( )
inline

Definition at line 184 of file SelectionDAG.h.

◆ DbgBegin()

DbgIterator llvm::SDDbgInfo::DbgBegin ( )
inline

Definition at line 208 of file SelectionDAG.h.

◆ DbgEnd()

DbgIterator llvm::SDDbgInfo::DbgEnd ( )
inline

Definition at line 209 of file SelectionDAG.h.

◆ DbgLabelBegin()

DbgLabelIterator llvm::SDDbgInfo::DbgLabelBegin ( )
inline

Definition at line 212 of file SelectionDAG.h.

◆ DbgLabelEnd()

DbgLabelIterator llvm::SDDbgInfo::DbgLabelEnd ( )
inline

Definition at line 213 of file SelectionDAG.h.

◆ empty()

bool llvm::SDDbgInfo::empty ( ) const
inline

Definition at line 194 of file SelectionDAG.h.

◆ erase()

void SDDbgInfo::erase ( const SDNode * Node)

Invalidate all DbgValues attached to the node and remove it from the Node-to-DbgValues map.

Definition at line 1119 of file SelectionDAG.cpp.

References I.

◆ getAlloc()

BumpPtrAllocator & llvm::SDDbgInfo::getAlloc ( )
inline

Definition at line 192 of file SelectionDAG.h.

◆ getSDDbgValues()

ArrayRef< SDDbgValue * > llvm::SDDbgInfo::getSDDbgValues ( const SDNode * Node) const
inline

Definition at line 198 of file SelectionDAG.h.

References llvm::ArrayRef(), and I.

◆ operator=()

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

References LLVM_ABI, and SDDbgInfo().


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