#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/StringMap.h"
-#include "llvm/CodeGen/AsmPrinter.h"
#include "llvm/CodeGen/LexicalScopes.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/DebugLoc.h"
namespace llvm {
+class AsmPrinter;
class ByteStreamer;
+class DwarfDebug;
class DwarfUnit;
class DwarfCompileUnit;
class ConstantInt;
assert(Var.isVariable() && "Invalid complex DbgVariable!");
return Var.hasComplexAddress();
}
- bool isBlockByrefVariable() const {
- assert(Var.isVariable() && "Invalid complex DbgVariable!");
- return Var.isBlockByrefVariable();
- }
+ bool isBlockByrefVariable() const;
unsigned getNumAddrElements() const {
assert(Var.isVariable() && "Invalid complex DbgVariable!");
return Var.getNumAddrElements();
/// of in DwarfCompileUnit.
DenseMap<const MDNode *, DIE *> MDTypeNodeToDieMap;
- // Used to unique C++ member function declarations.
- StringMap<const MDNode *> OdrMemberMap;
-
// List of all labels used in aranges generation.
std::vector<SymbolCU> ArangeLabels;
return MDTypeNodeToDieMap.lookup(TypeMD);
}
- /// \brief Look up or create an entry in the OdrMemberMap.
- const MDNode *&getOrCreateOdrMember(StringRef Key) {
- return OdrMemberMap.GetOrCreateValue(Key).getValue();
- }
-
/// \brief Emit all Dwarf sections that should come prior to the
/// content.
void beginModule();
return Ref.resolve(TypeIdentifierMap);
}
+ /// \brief Return the TypeIdentifierMap.
+ const DITypeIdentifierMap& getTypeIdentifierMap() const {
+ return TypeIdentifierMap;
+ }
+
/// Find the DwarfCompileUnit for the given CU Die.
DwarfCompileUnit *lookupUnit(const DIE *CU) const {
return CUDieMap.lookup(CU);