aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2007-11-30 00:51:33 +0000
committerDevang Patel <dpatel@apple.com>2007-11-30 00:51:33 +0000
commit962e0750a545ccced983386c859e436d9afddd79 (patch)
treefb2352952992b87d402aee3d1e60a54428d32007
parentcb3c330d39442130d0587208d673ce9c33c7008f (diff)
Provide a way to update DescGlobals cache directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44446 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/CodeGen/MachineModuleInfo.h10
-rw-r--r--lib/CodeGen/MachineModuleInfo.cpp6
2 files changed, 15 insertions, 1 deletions
diff --git a/include/llvm/CodeGen/MachineModuleInfo.h b/include/llvm/CodeGen/MachineModuleInfo.h
index 3346c95bba..2e05c1f077 100644
--- a/include/llvm/CodeGen/MachineModuleInfo.h
+++ b/include/llvm/CodeGen/MachineModuleInfo.h
@@ -755,6 +755,10 @@ public:
DIDeserializer() {}
~DIDeserializer() {}
+ const std::map<GlobalVariable *, DebugInfoDesc *> &getGlobalDescs() const {
+ return GlobalDescs;
+ }
+
/// Deserialize - Reconstitute a GlobalVariable into it's component
/// DebugInfoDesc objects.
DebugInfoDesc *Deserialize(Value *V);
@@ -810,6 +814,9 @@ public:
/// Serialize - Recursively cast the specified descriptor into a
/// GlobalVariable so that it can be serialized to a .bc or .ll file.
GlobalVariable *Serialize(DebugInfoDesc *DD);
+
+ /// addDescriptor - Directly connect DD with existing GV.
+ void addDescriptor(DebugInfoDesc *DD, GlobalVariable *GV);
};
//===----------------------------------------------------------------------===//
@@ -1164,7 +1171,7 @@ public:
std::vector<T *> AnchoredDescs;
for (unsigned i = 0, N = Globals.size(); i < N; ++i) {
GlobalVariable *GV = Globals[i];
-
+
// FIXME - In the short term, changes are too drastic to continue.
if (DebugInfoDesc::TagFromGlobal(GV) == Desc.getTag() &&
DebugInfoDesc::VersionFromGlobal(GV) == LLVMDebugVersion) {
@@ -1276,6 +1283,7 @@ public:
/// of one is required to emit exception handling info.
Function *getPersonality() const;
+ DIDeserializer *getDIDeserializer() { return &DR; }
}; // End class MachineModuleInfo
} // End llvm namespace
diff --git a/lib/CodeGen/MachineModuleInfo.cpp b/lib/CodeGen/MachineModuleInfo.cpp
index 8360745ff1..9943fa9967 100644
--- a/lib/CodeGen/MachineModuleInfo.cpp
+++ b/lib/CodeGen/MachineModuleInfo.cpp
@@ -1364,6 +1364,12 @@ GlobalVariable *DISerializer::Serialize(DebugInfoDesc *DD) {
return GV;
}
+/// addDescriptor - Directly connect DD with existing GV.
+void DISerializer::addDescriptor(DebugInfoDesc *DD,
+ GlobalVariable *GV) {
+ DescGlobals[DD] = GV;
+}
+
//===----------------------------------------------------------------------===//
/// Verify - Return true if the GlobalVariable appears to be a valid