fix Analysis/DebugInfo.h to not include Metadata.h. Do this

by moving one method out of line and eliminating redundant checks
from other methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92337 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-12-31 03:02:08 +00:00
parent 6e7f3b39ef
commit f0908a351a
4 changed files with 14 additions and 15 deletions

View File

@@ -17,9 +17,9 @@
#ifndef LLVM_ANALYSIS_DEBUGINFO_H #ifndef LLVM_ANALYSIS_DEBUGINFO_H
#define 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/SmallVector.h"
#include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Dwarf.h" // FIXME: Should not need this. #include "llvm/Support/Dwarf.h" // FIXME: Should not need this.
namespace llvm { namespace llvm {
@@ -38,6 +38,8 @@ namespace llvm {
class DebugLoc; class DebugLoc;
struct DebugLocTracker; struct DebugLocTracker;
class Instruction; class Instruction;
class MDNode;
class LLVMContext;
/// DIDescriptor - A thin wraper around MDNode to access encoded debug info. /// DIDescriptor - A thin wraper around MDNode to access encoded debug info.
/// This should not be stored in a container, because underly MDNode may /// 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 isLocalToUnit() const { return getUnsignedField(9); }
unsigned isDefinition() const { return getUnsignedField(10); } unsigned isDefinition() const { return getUnsignedField(10); }
unsigned getVirtuality() const { unsigned getVirtuality() const { return getUnsignedField(11); }
if (DbgNode->getNumOperands() < 14) unsigned getVirtualIndex() const { return getUnsignedField(12); }
return 0;
return getUnsignedField(11);
}
unsigned getVirtualIndex() const {
if (DbgNode->getNumOperands() < 14)
return 0;
return getUnsignedField(12);
}
DICompositeType getContainingType() const { DICompositeType getContainingType() const {
assert (DbgNode->getNumOperands() >= 14 && "Invalid type!");
return getFieldAs<DICompositeType>(13); return getFieldAs<DICompositeType>(13);
} }
@@ -439,8 +431,8 @@ namespace llvm {
return getNumAddrElements() > 0; return getNumAddrElements() > 0;
} }
unsigned getNumAddrElements() const { return DbgNode->getNumOperands()-6; } unsigned getNumAddrElements() const;
uint64_t getAddrElement(unsigned Idx) const { uint64_t getAddrElement(unsigned Idx) const {
return getUInt64Field(Idx+6); return getUInt64Field(Idx+6);
} }

View File

@@ -19,6 +19,7 @@
#include "llvm/Pass.h" #include "llvm/Pass.h"
#include "llvm/Function.h" #include "llvm/Function.h"
#include "llvm/IntrinsicInst.h" #include "llvm/IntrinsicInst.h"
#include "llvm/Metadata.h"
#include "llvm/Assembly/Writer.h" #include "llvm/Assembly/Writer.h"
#include "llvm/Analysis/DebugInfo.h" #include "llvm/Analysis/DebugInfo.h"
#include "llvm/Analysis/Passes.h" #include "llvm/Analysis/Passes.h"

View File

@@ -120,6 +120,11 @@ GlobalVariable *DIDescriptor::getGlobalVariableField(unsigned Elt) const {
return 0; return 0;
} }
unsigned DIVariable::getNumAddrElements() const {
return DbgNode->getNumOperands()-6;
}
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// Predicates // Predicates
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//

View File

@@ -21,6 +21,7 @@
#include "llvm/GlobalVariable.h" #include "llvm/GlobalVariable.h"
#include "llvm/Function.h" #include "llvm/Function.h"
#include "llvm/LLVMContext.h" #include "llvm/LLVMContext.h"
#include "llvm/Metadata.h"
#include "llvm/Support/CFG.h" #include "llvm/Support/CFG.h"
#include "llvm/Transforms/Utils/ValueMapper.h" #include "llvm/Transforms/Utils/ValueMapper.h"
#include "llvm/Analysis/ConstantFolding.h" #include "llvm/Analysis/ConstantFolding.h"