LLVM 20.0.0git
|
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 | |
SDDbgInfo & | operator= (const SDDbgInfo &)=delete |
void | add (SDDbgValue *V, bool isParameter) |
void | add (SDDbgLabel *L) |
void | erase (const SDNode *Node) |
Invalidate all DbgValues attached to the node and remove it from the Node-to-DbgValues map. | |
void | clear () |
BumpPtrAllocator & | getAlloc () |
bool | empty () const |
ArrayRef< SDDbgValue * > | getSDDbgValues (const SDNode *Node) const |
DbgIterator | DbgBegin () |
DbgIterator | DbgEnd () |
DbgIterator | ByvalParmDbgBegin () |
DbgIterator | ByvalParmDbgEnd () |
DbgLabelIterator | DbgLabelBegin () |
DbgLabelIterator | DbgLabelEnd () |
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 160 of file SelectionDAG.h.
using llvm::SDDbgInfo::DbgIterator = SmallVectorImpl<SDDbgValue*>::iterator |
Definition at line 202 of file SelectionDAG.h.
using llvm::SDDbgInfo::DbgLabelIterator = SmallVectorImpl<SDDbgLabel*>::iterator |
Definition at line 203 of file SelectionDAG.h.
|
default |
|
inline |
Definition at line 175 of file SelectionDAG.h.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
void SDDbgInfo::add | ( | SDDbgValue * | V, |
bool | isParameter | ||
) |
Definition at line 1072 of file SelectionDAG.cpp.
References assert().
Referenced by llvm::SelectionDAG::AddDbgLabel(), and llvm::SelectionDAG::AddDbgValue().
|
inline |
Definition at line 207 of file SelectionDAG.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin().
Referenced by llvm::SelectionDAG::ByvalParmDbgBegin().
|
inline |
Definition at line 208 of file SelectionDAG.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end().
Referenced by llvm::SelectionDAG::ByvalParmDbgEnd().
|
inline |
Definition at line 181 of file SelectionDAG.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), and llvm::SmallVectorImpl< T >::clear().
Referenced by llvm::SelectionDAG::clear().
|
inline |
Definition at line 205 of file SelectionDAG.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin().
Referenced by llvm::SelectionDAG::DbgBegin().
|
inline |
Definition at line 206 of file SelectionDAG.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end().
Referenced by llvm::SelectionDAG::DbgEnd().
|
inline |
Definition at line 209 of file SelectionDAG.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin().
Referenced by llvm::SelectionDAG::DbgLabelBegin().
|
inline |
Definition at line 210 of file SelectionDAG.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end().
Referenced by llvm::SelectionDAG::DbgLabelEnd().
|
inline |
Definition at line 191 of file SelectionDAG.h.
References llvm::SmallVectorBase< Size_T >::empty().
Referenced by llvm::SelectionDAG::hasDebugValues().
Invalidate all DbgValues attached to the node and remove it from the Node-to-DbgValues map.
Definition at line 1083 of file SelectionDAG.cpp.
References I.
|
inline |
Definition at line 189 of file SelectionDAG.h.
Referenced by llvm::SelectionDAG::getConstantDbgValue(), llvm::SelectionDAG::getDbgLabel(), llvm::SelectionDAG::getDbgValue(), llvm::SelectionDAG::getDbgValueList(), llvm::SelectionDAG::getFrameIndexDbgValue(), and llvm::SelectionDAG::getVRegDbgValue().
|
inline |
Definition at line 195 of file SelectionDAG.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), and I.
Referenced by llvm::SelectionDAG::AddDbgValue(), and llvm::SelectionDAG::GetDbgValues().