LLVM  6.0.0svn
Public Types | Public Member Functions | List of all members
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
 

Public Member Functions

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

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 144 of file SelectionDAG.h.

Member Typedef Documentation

◆ DbgIterator

Definition at line 188 of file SelectionDAG.h.

Constructor & Destructor Documentation

◆ SDDbgInfo() [1/2]

llvm::SDDbgInfo::SDDbgInfo ( )
default

◆ SDDbgInfo() [2/2]

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

Member Function Documentation

◆ add()

void llvm::SDDbgInfo::add ( SDDbgValue V,
const SDNode Node,
bool  isParameter 
)
inline

◆ ByvalParmDbgBegin()

DbgIterator llvm::SDDbgInfo::ByvalParmDbgBegin ( )
inline

◆ ByvalParmDbgEnd()

DbgIterator llvm::SDDbgInfo::ByvalParmDbgEnd ( )
inline

◆ clear()

void llvm::SDDbgInfo::clear ( )
inline

◆ DbgBegin()

DbgIterator llvm::SDDbgInfo::DbgBegin ( )
inline

◆ DbgEnd()

DbgIterator llvm::SDDbgInfo::DbgEnd ( )
inline

Definition at line 191 of file SelectionDAG.h.

References llvm::SmallVectorTemplateCommon< T >::end().

Referenced by llvm::SelectionDAG::DbgEnd().

◆ empty()

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

Definition at line 177 of file SelectionDAG.h.

References llvm::SmallVectorBase::empty().

Referenced by llvm::SelectionDAG::hasDebugValues().

◆ 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 662 of file SelectionDAG.cpp.

References __asan_unpoison_memory_region, llvm::ISD::DELETED_NODE, and I.

◆ getAlloc()

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

◆ getSDDbgValues()

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

◆ operator=()

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

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