class DbgValueInst;
/// \brief Maps from type identifier to the actual MDNode.
-typedef DenseMap<const MDString *, MDType *> DITypeIdentifierMap;
+typedef DenseMap<const MDString *, DIType *> DITypeIdentifierMap;
/// \brief Find subprogram that is enclosing this scope.
-MDSubprogram *getDISubprogram(const MDNode *Scope);
+DISubprogram *getDISubprogram(const MDNode *Scope);
/// \brief Find debug info for a given function.
///
/// \returns a valid subprogram, if found. Otherwise, return \c nullptr.
-MDSubprogram *getDISubprogram(const Function *F);
+DISubprogram *getDISubprogram(const Function *F);
/// \brief Find underlying composite type.
-MDCompositeTypeBase *getDICompositeType(MDType *T);
+DICompositeTypeBase *getDICompositeType(DIType *T);
/// \brief Generate map by visiting all retained types.
DITypeIdentifierMap generateDITypeIdentifierMap(const NamedMDNode *CU_Nodes);
/// \brief Process DbgValueInst.
void processValue(const Module &M, const DbgValueInst *DVI);
/// \brief Process debug info location.
- void processLocation(const Module &M, const MDLocation *Loc);
+ void processLocation(const Module &M, const DILocation *Loc);
/// \brief Clear all lists.
void reset();
private:
void InitializeTypeMap(const Module &M);
- void processType(MDType *DT);
- void processSubprogram(MDSubprogram *SP);
- void processScope(MDScope *Scope);
- bool addCompileUnit(MDCompileUnit *CU);
- bool addGlobalVariable(MDGlobalVariable *DIG);
- bool addSubprogram(MDSubprogram *SP);
- bool addType(MDType *DT);
- bool addScope(MDScope *Scope);
+ void processType(DIType *DT);
+ void processSubprogram(DISubprogram *SP);
+ void processScope(DIScope *Scope);
+ bool addCompileUnit(DICompileUnit *CU);
+ bool addGlobalVariable(DIGlobalVariable *DIG);
+ bool addSubprogram(DISubprogram *SP);
+ bool addType(DIType *DT);
+ bool addScope(DIScope *Scope);
public:
- typedef SmallVectorImpl<MDCompileUnit *>::const_iterator
+ typedef SmallVectorImpl<DICompileUnit *>::const_iterator
compile_unit_iterator;
- typedef SmallVectorImpl<MDSubprogram *>::const_iterator subprogram_iterator;
- typedef SmallVectorImpl<MDGlobalVariable *>::const_iterator
+ typedef SmallVectorImpl<DISubprogram *>::const_iterator subprogram_iterator;
+ typedef SmallVectorImpl<DIGlobalVariable *>::const_iterator
global_variable_iterator;
- typedef SmallVectorImpl<MDType *>::const_iterator type_iterator;
- typedef SmallVectorImpl<MDScope *>::const_iterator scope_iterator;
+ typedef SmallVectorImpl<DIType *>::const_iterator type_iterator;
+ typedef SmallVectorImpl<DIScope *>::const_iterator scope_iterator;
iterator_range<compile_unit_iterator> compile_units() const {
return iterator_range<compile_unit_iterator>(CUs.begin(), CUs.end());
unsigned scope_count() const { return Scopes.size(); }
private:
- SmallVector<MDCompileUnit *, 8> CUs;
- SmallVector<MDSubprogram *, 8> SPs;
- SmallVector<MDGlobalVariable *, 8> GVs;
- SmallVector<MDType *, 8> TYs;
- SmallVector<MDScope *, 8> Scopes;
+ SmallVector<DICompileUnit *, 8> CUs;
+ SmallVector<DISubprogram *, 8> SPs;
+ SmallVector<DIGlobalVariable *, 8> GVs;
+ SmallVector<DIType *, 8> TYs;
+ SmallVector<DIScope *, 8> Scopes;
SmallPtrSet<const MDNode *, 64> NodesSeen;
DITypeIdentifierMap TypeIdentifierMap;
bool TypeMapInitialized;
};
-DenseMap<const Function *, MDSubprogram *> makeSubprogramMap(const Module &M);
+DenseMap<const Function *, DISubprogram *> makeSubprogramMap(const Module &M);
} // end namespace llvm