LLVM API Documentation

Classes | Namespaces | Typedefs | Functions
DebugInfo.h File Reference
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/Metadata.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Dwarf.h"
#include "llvm/Support/ErrorHandling.h"
#include <iterator>
Include dependency graph for DebugInfo.h:

Go to the source code of this file.

Classes

class  llvm::DIHeaderFieldIterator
class  llvm::DIDescriptor
 A thin wraper around MDNode to access encoded debug info. More...
class  llvm::DISubrange
 This is used to represent ranges, for array bounds. More...
class  llvm::DITypedArray< T >
 This descriptor holds an array of nodes with type T. More...
class  llvm::DIEnumerator
 A wrapper for an enumerator (e.g. X and Y in 'enum {X,Y}'). More...
class  llvm::DIScope
 A base class for various scopes. More...
class  llvm::DIRef< T >
 Represents reference to a DIDescriptor. More...
class  llvm::DIType
class  llvm::DIBasicType
 A basic type, like 'int' or 'float'. More...
class  llvm::DIDerivedType
 A simple derived type. More...
class  llvm::DICompositeType
 Types that refer to multiple other types. More...
class  llvm::DISubroutineType
class  llvm::DIFile
 This is a wrapper for a file. More...
class  llvm::DICompileUnit
 A wrapper for a compile unit. More...
class  llvm::DISubprogram
 This is a wrapper for a subprogram (e.g. a function). More...
class  llvm::DILexicalBlock
 This is a wrapper for a lexical block. More...
class  llvm::DILexicalBlockFile
 This is a wrapper for a lexical block with a filename change. More...
class  llvm::DINameSpace
 A wrapper for a C++ style name space. More...
class  llvm::DITemplateTypeParameter
 This is a wrapper for template type parameter. More...
class  llvm::DITemplateValueParameter
 This is a wrapper for template value parameter. More...
class  llvm::DIGlobalVariable
 This is a wrapper for a global variable. More...
class  llvm::DIVariable
 This is a wrapper for a variable (e.g. parameter, local, global etc). More...
class  llvm::DIExpression
 A complex location expression. More...
class  llvm::DILocation
 This object holds location information. More...
class  llvm::DIObjCProperty
class  llvm::DIImportedEntity
 An imported module (C++ using directive or similar). More...
class  llvm::DebugInfoFinder
 Utility to find all debug info in a module. More...

Namespaces

namespace  llvm
 

List of target independent CodeGen pass IDs.


Typedefs

typedef DenseMap< const
MDString *, MDNode * > 
llvm::DITypeIdentifierMap
 Maps from type identifier to the actual MDNode.
typedef DITypedArray
< DIDescriptor > 
llvm::DIArray
typedef DIRef< DIScope > llvm::DIScopeRef
typedef DIRef< DIType > llvm::DITypeRef
typedef DITypedArray< DITypeRef > llvm::DITypeArray

Functions

DISubprogram llvm::getDISubprogram (const MDNode *Scope)
 Find subprogram that is enclosing this scope.
DICompositeType llvm::getDICompositeType (DIType T)
 Find underlying composite type.
DIVariable llvm::createInlinedVariable (MDNode *DV, MDNode *InlinedScope, LLVMContext &VMContext)
 Create a new inlined variable based on current variable.
DIVariable llvm::cleanseInlinedVariable (MDNode *DV, LLVMContext &VMContext)
 Remove inlined scope from the variable.
DITypeIdentifierMap llvm::generateDITypeIdentifierMap (const NamedMDNode *CU_Nodes)
 Generate map by visiting all retained types.
bool llvm::StripDebugInfo (Module &M)
 Strip debug info in the module if it exists.
unsigned llvm::getDebugMetadataVersionFromModule (const Module &M)
 Return Debug Info Metadata Version by checking module flags.
DenseMap< const Function
*, DISubprogram
llvm::makeSubprogramMap (const Module &M)