17 #ifndef LLVM_IR_DEBUGINFO_H
18 #define LLVM_IR_DEBUGINFO_H
90 void InitializeTypeMap(
const Module &M);
92 void processType(
DIType *DT);
94 void processScope(
DIScope *Scope);
146 bool TypeMapInitialized;
iterator_range< scope_iterator > scopes() const
void processLocation(const Module &M, const DILocation *Loc)
Process debug info location.
A Module instance is used to store all the information related to an LLVM module. ...
unsigned global_variable_count() const
This provides a very simple, boring adaptor for a begin and end iterator into a range type...
unsigned getDebugMetadataVersionFromModule(const Module &M)
Return Debug Info Metadata Version by checking module flags.
void reset()
Clear all lists.
bool stripDebugInfo(Function &F)
unsigned scope_count() const
void processModule(const Module &M)
Process entire module and collect debug info anchors.
Utility to find all debug info in a module.
DICompositeTypeBase * getDICompositeType(DIType *T)
Find underlying composite type.
DISubprogram * getDISubprogram(const MDNode *Scope)
Find subprogram that is enclosing this scope.
SmallVectorImpl< DIType * >::const_iterator type_iterator
DenseMap< const MDString *, DIType * > DITypeIdentifierMap
Maps from type identifier to the actual MDNode.
bool StripDebugInfo(Module &M)
Strip debug info in the module if it exists.
unsigned subprogram_count() const
iterator_range< compile_unit_iterator > compile_units() const
SmallVectorImpl< DISubprogram * >::const_iterator subprogram_iterator
iterator_range< subprogram_iterator > subprograms() const
void processValue(const Module &M, const DbgValueInst *DVI)
Process DbgValueInst.
SmallVectorImpl< DIScope * >::const_iterator scope_iterator
SmallVectorImpl< DICompileUnit * >::const_iterator compile_unit_iterator
unsigned compile_unit_count() const
Base class for scope-like contexts.
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
A range adaptor for a pair of iterators.
Base class for DICompositeType and DISubroutineType.
DbgValueInst - This represents the llvm.dbg.value instruction.
void processDeclare(const Module &M, const DbgDeclareInst *DDI)
Process DbgDeclareInst.
SmallVectorImpl< DIGlobalVariable * >::const_iterator global_variable_iterator
unsigned type_count() const
DenseMap< const Function *, DISubprogram * > makeSubprogramMap(const Module &M)
iterator_range< type_iterator > types() const
DITypeIdentifierMap generateDITypeIdentifierMap(const NamedMDNode *CU_Nodes)
Generate map by visiting all retained types.
DbgDeclareInst - This represents the llvm.dbg.declare instruction.
iterator_range< global_variable_iterator > global_variables() const