LLVM 19.0.0git
Public Types | Public Member Functions | List of all members
llvm::DebugInfoFinder Class Reference

Utility to find all debug info in a module. More...

#include "llvm/IR/DebugInfo.h"

Public Types

using compile_unit_iterator = SmallVectorImpl< DICompileUnit * >::const_iterator
 
using subprogram_iterator = SmallVectorImpl< DISubprogram * >::const_iterator
 
using global_variable_expression_iterator = SmallVectorImpl< DIGlobalVariableExpression * >::const_iterator
 
using type_iterator = SmallVectorImpl< DIType * >::const_iterator
 
using scope_iterator = SmallVectorImpl< DIScope * >::const_iterator
 

Public Member Functions

void processModule (const Module &M)
 Process entire module and collect debug info anchors.
 
void processInstruction (const Module &M, const Instruction &I)
 Process a single instruction and collect debug info anchors.
 
void processVariable (const Module &M, const DILocalVariable *DVI)
 Process a DILocalVariable.
 
void processLocation (const Module &M, const DILocation *Loc)
 Process debug info location.
 
void processDPValue (const Module &M, const DPValue &DPV)
 
void processDbgRecord (const Module &M, const DbgRecord &DPE)
 Dispatch to DbgRecord subclasses handlers.
 
void processSubprogram (DISubprogram *SP)
 Process subprogram.
 
void reset ()
 Clear all lists.
 
iterator_range< compile_unit_iteratorcompile_units () const
 
iterator_range< subprogram_iteratorsubprograms () const
 
iterator_range< global_variable_expression_iteratorglobal_variables () const
 
iterator_range< type_iteratortypes () const
 
iterator_range< scope_iteratorscopes () const
 
unsigned compile_unit_count () const
 
unsigned global_variable_count () const
 
unsigned subprogram_count () const
 
unsigned type_count () const
 
unsigned scope_count () const
 

Detailed Description

Utility to find all debug info in a module.

DebugInfoFinder tries to list all debug info MDNodes used in a module. To list debug info MDNodes used by an instruction, DebugInfoFinder uses processDeclare, processValue and processLocation to handle DbgDeclareInst, DbgValueInst and DbgLoc attached to instructions. processModule will go through all DICompileUnits in llvm.dbg.cu and list debug info MDNodes used by the CUs.

Definition at line 101 of file DebugInfo.h.

Member Typedef Documentation

◆ compile_unit_iterator

Definition at line 134 of file DebugInfo.h.

◆ global_variable_expression_iterator

Definition at line 137 of file DebugInfo.h.

◆ scope_iterator

Definition at line 140 of file DebugInfo.h.

◆ subprogram_iterator

Definition at line 136 of file DebugInfo.h.

◆ type_iterator

Definition at line 139 of file DebugInfo.h.

Member Function Documentation

◆ compile_unit_count()

unsigned llvm::DebugInfoFinder::compile_unit_count ( ) const
inline

Definition at line 162 of file DebugInfo.h.

◆ compile_units()

iterator_range< compile_unit_iterator > llvm::DebugInfoFinder::compile_units ( ) const
inline

Definition at line 142 of file DebugInfo.h.

References llvm::make_range().

Referenced by printModuleDebugInfo(), and stripDeadDebugInfoImpl().

◆ global_variable_count()

unsigned llvm::DebugInfoFinder::global_variable_count ( ) const
inline

Definition at line 163 of file DebugInfo.h.

◆ global_variables()

iterator_range< global_variable_expression_iterator > llvm::DebugInfoFinder::global_variables ( ) const
inline

Definition at line 150 of file DebugInfo.h.

References llvm::make_range().

Referenced by printModuleDebugInfo().

◆ processDbgRecord()

void DebugInfoFinder::processDbgRecord ( const Module M,
const DbgRecord DPE 
)

Dispatch to DbgRecord subclasses handlers.

Definition at line 259 of file DebugInfo.cpp.

References processDPValue().

Referenced by processInstruction().

◆ processDPValue()

void DebugInfoFinder::processDPValue ( const Module M,
const DPValue DPV 
)

◆ processInstruction()

void DebugInfoFinder::processInstruction ( const Module M,
const Instruction I 
)

Process a single instruction and collect debug info anchors.

Definition at line 235 of file DebugInfo.cpp.

References I, processDbgRecord(), processLocation(), and processVariable().

Referenced by llvm::CloneBasicBlock(), processModule(), and stripDeadDebugInfoImpl().

◆ processLocation()

void DebugInfoFinder::processLocation ( const Module M,
const DILocation Loc 
)

Process debug info location.

Definition at line 247 of file DebugInfo.cpp.

References processLocation().

Referenced by processDPValue(), processInstruction(), and processLocation().

◆ processModule()

void DebugInfoFinder::processModule ( const Module M)

Process entire module and collect debug info anchors.

Definition at line 191 of file DebugInfo.cpp.

References F, I, processInstruction(), and processSubprogram().

Referenced by llvm::ModuleDebugInfoPrinterPass::run().

◆ processSubprogram()

void DebugInfoFinder::processSubprogram ( DISubprogram SP)

Process subprogram.

Definition at line 313 of file DebugInfo.cpp.

References llvm::DIScope::getScope().

Referenced by processModule(), and stripDeadDebugInfoImpl().

◆ processVariable()

void DebugInfoFinder::processVariable ( const Module M,
const DILocalVariable DVI 
)

◆ reset()

void DebugInfoFinder::reset ( )

Clear all lists.

Definition at line 182 of file DebugInfo.cpp.

◆ scope_count()

unsigned llvm::DebugInfoFinder::scope_count ( ) const
inline

Definition at line 166 of file DebugInfo.h.

◆ scopes()

iterator_range< scope_iterator > llvm::DebugInfoFinder::scopes ( ) const
inline

Definition at line 158 of file DebugInfo.h.

References llvm::make_range().

◆ subprogram_count()

unsigned llvm::DebugInfoFinder::subprogram_count ( ) const
inline

Definition at line 164 of file DebugInfo.h.

◆ subprograms()

iterator_range< subprogram_iterator > llvm::DebugInfoFinder::subprograms ( ) const
inline

Definition at line 146 of file DebugInfo.h.

References llvm::make_range().

Referenced by printModuleDebugInfo().

◆ type_count()

unsigned llvm::DebugInfoFinder::type_count ( ) const
inline

Definition at line 165 of file DebugInfo.h.

◆ types()

iterator_range< type_iterator > llvm::DebugInfoFinder::types ( ) const
inline

Definition at line 154 of file DebugInfo.h.

References llvm::make_range().

Referenced by printModuleDebugInfo().


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