aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Analysis/DebugInfo.h22
-rw-r--r--lib/Analysis/DbgInfoPrinter.cpp1
-rw-r--r--lib/Analysis/DebugInfo.cpp5
-rw-r--r--lib/Transforms/Utils/CloneFunction.cpp1
4 files changed, 14 insertions, 15 deletions
diff --git a/include/llvm/Analysis/DebugInfo.h b/include/llvm/Analysis/DebugInfo.h
index f3d1b595ab..291610de98 100644
--- a/include/llvm/Analysis/DebugInfo.h
+++ b/include/llvm/Analysis/DebugInfo.h
@@ -17,9 +17,9 @@
#ifndef LLVM_ANALYSIS_DEBUGINFO_H
#define LLVM_ANALYSIS_DEBUGINFO_H
-#include "llvm/Metadata.h" // FIXME: Should not need this.
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Dwarf.h" // FIXME: Should not need this.
namespace llvm {
@@ -38,6 +38,8 @@ namespace llvm {
class DebugLoc;
struct DebugLocTracker;
class Instruction;
+ class MDNode;
+ class LLVMContext;
/// DIDescriptor - A thin wraper around MDNode to access encoded debug info.
/// This should not be stored in a container, because underly MDNode may
@@ -368,20 +370,10 @@ namespace llvm {
unsigned isLocalToUnit() const { return getUnsignedField(9); }
unsigned isDefinition() const { return getUnsignedField(10); }
- unsigned getVirtuality() const {
- if (DbgNode->getNumOperands() < 14)
- return 0;
- return getUnsignedField(11);
- }
-
- unsigned getVirtualIndex() const {
- if (DbgNode->getNumOperands() < 14)
- return 0;
- return getUnsignedField(12);
- }
+ unsigned getVirtuality() const { return getUnsignedField(11); }
+ unsigned getVirtualIndex() const { return getUnsignedField(12); }
DICompositeType getContainingType() const {
- assert (DbgNode->getNumOperands() >= 14 && "Invalid type!");
return getFieldAs<DICompositeType>(13);
}
@@ -439,8 +431,8 @@ namespace llvm {
return getNumAddrElements() > 0;
}
- unsigned getNumAddrElements() const { return DbgNode->getNumOperands()-6; }
-
+ unsigned getNumAddrElements() const;
+
uint64_t getAddrElement(unsigned Idx) const {
return getUInt64Field(Idx+6);
}
diff --git a/lib/Analysis/DbgInfoPrinter.cpp b/lib/Analysis/DbgInfoPrinter.cpp
index b90a996d82..7d72b383a5 100644
--- a/lib/Analysis/DbgInfoPrinter.cpp
+++ b/lib/Analysis/DbgInfoPrinter.cpp
@@ -19,6 +19,7 @@
#include "llvm/Pass.h"
#include "llvm/Function.h"
#include "llvm/IntrinsicInst.h"
+#include "llvm/Metadata.h"
#include "llvm/Assembly/Writer.h"
#include "llvm/Analysis/DebugInfo.h"
#include "llvm/Analysis/Passes.h"
diff --git a/lib/Analysis/DebugInfo.cpp b/lib/Analysis/DebugInfo.cpp
index aa1f78ebc9..de2d839f6d 100644
--- a/lib/Analysis/DebugInfo.cpp
+++ b/lib/Analysis/DebugInfo.cpp
@@ -120,6 +120,11 @@ GlobalVariable *DIDescriptor::getGlobalVariableField(unsigned Elt) const {
return 0;
}
+unsigned DIVariable::getNumAddrElements() const {
+ return DbgNode->getNumOperands()-6;
+}
+
+
//===----------------------------------------------------------------------===//
// Predicates
//===----------------------------------------------------------------------===//
diff --git a/lib/Transforms/Utils/CloneFunction.cpp b/lib/Transforms/Utils/CloneFunction.cpp
index 032a9e3a54..c287747b91 100644
--- a/lib/Transforms/Utils/CloneFunction.cpp
+++ b/lib/Transforms/Utils/CloneFunction.cpp
@@ -21,6 +21,7 @@
#include "llvm/GlobalVariable.h"
#include "llvm/Function.h"
#include "llvm/LLVMContext.h"
+#include "llvm/Metadata.h"
#include "llvm/Support/CFG.h"
#include "llvm/Transforms/Utils/ValueMapper.h"
#include "llvm/Analysis/ConstantFolding.h"