Add APIs to record regions and variables.
authorDevang Patel <dpatel@apple.com>
Thu, 8 Jan 2009 02:49:34 +0000 (02:49 +0000)
committerDevang Patel <dpatel@apple.com>
Thu, 8 Jan 2009 02:49:34 +0000 (02:49 +0000)
Again, shamelessly copied from MMI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61912 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfWriter.cpp

index a53874dcd3f7a4a249fc086cd305f8f289053eb9..c1360a94328589004fb9932749a89999b2525b87 100644 (file)
@@ -2540,6 +2540,33 @@ private:
   }
 
 
+  /// RecordRegionStart - Indicate the start of a region.
+  ///
+  unsigned RecordRegionStart(GlobalVariable *V) {
+    DbgScope *Scope = getOrCreateScope(V);
+    unsigned ID = NextLabelID();
+    if (!Scope->getStartLabelID()) Scope->setStartLabelID(ID);
+    return ID;
+  }
+
+  /// RecordRegionEnd - Indicate the end of a region.
+  ///
+  unsigned RecordRegionEnd(GlobalVariable *V) {
+    DbgScope *Scope = getOrCreateScope(V);
+    unsigned ID = NextLabelID();
+    Scope->setEndLabelID(ID);
+    return ID;
+  }
+
+  /// RecordVariable - Indicate the declaration of  a local variable.
+  ///
+  void RecordVariable(GlobalVariable *GV, unsigned FrameIndex) {
+    DbgScope *Scope = getOrCreateScope(GV);
+    DIVariable *VD = new DIVariable(GV);
+    DbgVariable *DV = new DbgVariable(VD, FrameIndex);
+    Scope->AddVariable(DV);
+  }
+
   /// getOrCreateScope - Returns the scope associated with the given descriptor.
   ///
   DbgScope *getOrCreateScope(GlobalVariable *V) {