From b2ff2d481e134b1ea4c3e1c781d816c885733327 Mon Sep 17 00:00:00 2001 From: Jim Laskey Date: Fri, 16 Jun 2006 13:14:03 +0000 Subject: 1. Revise vector debug support. 2. Update docs for vector debug support and new version control. 3. Simplify serialization of DebugDescInfo subclasses. llvm-svn: 28816 --- llvm/docs/SourceLevelDebugging.html | 110 ++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 55 deletions(-) (limited to 'llvm/docs/SourceLevelDebugging.html') diff --git a/llvm/docs/SourceLevelDebugging.html b/llvm/docs/SourceLevelDebugging.html index 2538aeaa109..7916a0e0551 100644 --- a/llvm/docs/SourceLevelDebugging.html +++ b/llvm/docs/SourceLevelDebugging.html @@ -295,13 +295,15 @@ descriptors, arrays of descriptors or global variables.

} -

The first field of a descriptor is always an uint containing a tag -value identifying the content of the descriptor. The remaining fields are -specific to the descriptor. The values of tags are loosely bound to the tag -values of Dwarf information entries. However, that does not restrict the use of -the information supplied to Dwarf targets.

+

The first field of a descriptor is always an +uint containing a tag value identifying the content of the descriptor. +The remaining fields are specific to the descriptor. The values of tags are +loosely bound to the tag values of Dwarf information entries. However, that +does not restrict the use of the information supplied to Dwarf targets. To +facilitate versioning of debug information, the tag is augmented with the +current debug version (LLVMDebugVersion = 4 << 16 or 0x40000.)

-

The details of the various descriptors follow.

+

The details of the various descriptors follow.

@@ -314,7 +316,7 @@ the information supplied to Dwarf targets.

   %llvm.dbg.anchor.type = type {
-    uint,   ;; Tag = 0
+    uint,   ;; Tag = 0 + LLVMDebugVersion
     uint    ;; Tag of descriptors grouped by the anchor
   }
 
@@ -352,9 +354,8 @@ deleted.

   %llvm.dbg.compile_unit.type = type {
-    uint,   ;; Tag = 17 (DW_TAG_compile_unit)
+    uint,   ;; Tag = 17 + LLVMDebugVersion (DW_TAG_compile_unit)
     {  }*,  ;; Compile unit anchor = cast = (%llvm.dbg.anchor.type* %llvm.dbg.compile_units to {  }*)
-    uint,   ;; LLVM debug version number = 3
     uint,   ;; Dwarf language identifier (ex. DW_LANG_C89) 
     sbyte*, ;; Source file name
     sbyte*, ;; Source file directory (includes trailing slash)
@@ -362,11 +363,11 @@ deleted.

}
-

These descriptors contain the version number for the debug info (currently -3), a source language ID for the file (we use the Dwarf 3.0 ID numbers, such as -DW_LANG_C89, DW_LANG_C_plus_plus, DW_LANG_Cobol74, -etc), three strings describing the filename, working directory of the compiler, -and an identifier string for the compiler that produced it.

+

These descriptors contain a source language ID for the file (we use the Dwarf +3.0 ID numbers, such as DW_LANG_C89, DW_LANG_C_plus_plus, +DW_LANG_Cobol74, etc), three strings describing the filename, working +directory of the compiler, and an identifier string for the compiler that +produced it.

Compile unit descriptors provide the root context for objects declared in a specific source file. Global variables and top level functions would be defined @@ -384,7 +385,7 @@ line correspondence.

   %llvm.dbg.global_variable.type = type {
-    uint,   ;; Tag = 52 (DW_TAG_variable)
+    uint,   ;; Tag = 52 + LLVMDebugVersion (DW_TAG_variable)
     {  }*,  ;; Global variable anchor = cast (%llvm.dbg.anchor.type* %llvm.dbg.global_variables to {  }*),  
     {  }*,  ;; Reference to context descriptor
     sbyte*, ;; Name
@@ -411,7 +412,7 @@ provide details such as name, type and where the variable is defined.

   %llvm.dbg.subprogram.type = type {
-    uint,   ;; Tag = 46 (DW_TAG_subprogram)
+    uint,   ;; Tag = 46 + LLVMDebugVersion (DW_TAG_subprogram)
     {  }*,  ;; Subprogram anchor = cast (%llvm.dbg.anchor.type* %llvm.dbg.subprograms to {  }*),  
     {  }*,  ;; Reference to context descriptor
     sbyte*, ;; Name
@@ -437,7 +438,7 @@ location where the subprogram is defined.

   %llvm.dbg.block = type {
-    uint,   ;; Tag = 13 (DW_TAG_lexical_block)
+    uint,   ;; Tag = 13 + LLVMDebugVersion (DW_TAG_lexical_block)
     {  }*   ;; Reference to context descriptor
   }
 
@@ -457,7 +458,7 @@ and deeper nested blocks.

   %llvm.dbg.basictype.type = type {
-    uint,   ;; Tag = 36 (DW_TAG_base_type)
+    uint,   ;; Tag = 36 + LLVMDebugVersion (DW_TAG_base_type)
     {  }*,  ;; Reference to context (typically a compile unit)
     sbyte*, ;; Name (may be "" for anonymous types)
     {  }*,  ;; Reference to compile unit where defined (may be NULL)
@@ -575,7 +576,6 @@ NULL derived type.

uint, ;; Size in bits uint, ;; Alignment in bits uint, ;; Offset in bits - bool, ;; Is vector flag { }* ;; Reference to array of member descriptors }
@@ -589,13 +589,15 @@ are possible tag values;

DW_TAG_enumeration_type = 4 DW_TAG_structure_type = 19 DW_TAG_union_type = 23 + DW_TAG_vector_type = 259

The vector flag indicates that an array type is a native packed vector.

-

The members of array types (tag = DW_TAG_array_type) are subrange descriptors, each representing the range of -subscripts at that level of indexing.

+

The members of array types (tag = DW_TAG_array_type) or vector types +(tag = DW_TAG_vector_type) are subrange +descriptors, each representing the range of subscripts at that level of +indexing.

The members of enumeration types (tag = DW_TAG_enumeration_type) are enumerator descriptors, each representing the @@ -627,7 +629,7 @@ type.

   %llvm.dbg.subrange.type = type {
-    uint,   ;; Tag = 33 (DW_TAG_subrange_type)
+    uint,   ;; Tag = 33 + LLVMDebugVersion (DW_TAG_subrange_type)
     uint,   ;; Low value
     uint    ;; High value
   }
@@ -650,7 +652,7 @@ low == high the array will be unbounded.

   %llvm.dbg.enumerator.type = type {
-    uint,   ;; Tag = 40 (DW_TAG_enumerator)
+    uint,   ;; Tag = 40 + LLVMDebugVersion (DW_TAG_enumerator)
     sbyte*, ;; Name
     uint    ;; Value
   }
@@ -1042,7 +1044,7 @@ int main(int argc, char *argv[]) {
 ;; Define the compile unit for the source file "/Users/mine/sources/MySource.cpp".
 ;;
 %llvm.dbg.compile_unit1 = internal constant %llvm.dbg.compile_unit.type {
-    uint 17, 
+    uint add(uint 17, uint 262144), 
     {  }* cast (%llvm.dbg.anchor.type* %llvm.dbg.compile_units to {  }*), 
     uint 1, 
     uint 1, 
@@ -1054,7 +1056,7 @@ int main(int argc, char *argv[]) {
 ;; Define the compile unit for the header file "/Users/mine/sources/MyHeader.h".
 ;;
 %llvm.dbg.compile_unit2 = internal constant %llvm.dbg.compile_unit.type {
-    uint 17, 
+    uint add(uint 17, uint 262144), 
     {  }* cast (%llvm.dbg.anchor.type* %llvm.dbg.compile_units to {  }*), 
     uint 1, 
     uint 1, 
@@ -1117,7 +1119,7 @@ int MyGlobal = 100;
 ;; variable anchor and the global variable itself.
 ;;
 %llvm.dbg.global_variable = internal constant %llvm.dbg.global_variable.type {
-    uint 52, 
+    uint add(uint 52, uint 262144), 
     {  }* cast (%llvm.dbg.anchor.type* %llvm.dbg.global_variables to {  }*), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([9 x sbyte]* %str1, int 0, int 0), 
@@ -1133,7 +1135,7 @@ int MyGlobal = 100;
 ;; intrinsic type the source file is NULL and line 0.
 ;;    
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([4 x sbyte]* %str2, int 0, int 0), 
     {  }* null, 
@@ -1190,7 +1192,7 @@ int main(int argc, char *argv[]) {
 ;; Define the descriptor for the subprogram.  TODO - more details.
 ;;
 %llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type {
-    uint 46, 
+    uint add(uint 46, uint 262144), 
     {  }* cast (%llvm.dbg.anchor.type* %llvm.dbg.subprograms to {  }*), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([5 x sbyte]* %str1, int 0, int 0), 
@@ -1235,7 +1237,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([5 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1258,7 +1260,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([5 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1281,7 +1283,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([14 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1304,7 +1306,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([10 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1327,7 +1329,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([19 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1350,7 +1352,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([4 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1373,7 +1375,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([13 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1396,7 +1398,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([14 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1419,7 +1421,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([23 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1442,7 +1444,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([6 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1465,7 +1467,7 @@ int %main(int %argc, sbyte** %argv) {
 
 
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([7 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1499,7 +1501,7 @@ typedef const int *IntPtr;
 ;; Define the typedef "IntPtr".
 ;;
 %llvm.dbg.derivedtype1 = internal constant %llvm.dbg.derivedtype.type {
-    uint 22, 
+    uint add(uint 22, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([7 x sbyte]* %str1, int 0, int 0), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
@@ -1514,7 +1516,7 @@ typedef const int *IntPtr;
 ;; Define the pointer type.
 ;;
 %llvm.dbg.derivedtype2 = internal constant %llvm.dbg.derivedtype.type {
-    uint 15, 
+    uint add(uint 15, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* null, 
     {  }* null, 
@@ -1528,7 +1530,7 @@ typedef const int *IntPtr;
 ;; Define the const type.
 ;;
 %llvm.dbg.derivedtype3 = internal constant %llvm.dbg.derivedtype.type {
-    uint 38, 
+    uint add(uint 38, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* null, 
     {  }* null, 
@@ -1542,7 +1544,7 @@ typedef const int *IntPtr;
 ;; Define the int type.
 ;;
 %llvm.dbg.basictype1 = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([4 x sbyte]* %str2, int 0, int 0), 
     {  }* null, 
@@ -1580,7 +1582,7 @@ struct Color {
 ;; Define basic type for unsigned int.
 ;;
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
-    uint 36, 
+    uint add(uint 36, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([13 x sbyte]* %str1, int 0, int 0), 
     {  }* null, 
@@ -1595,7 +1597,7 @@ struct Color {
 ;; Define composite type for struct Color.
 ;;
 %llvm.dbg.compositetype = internal constant %llvm.dbg.compositetype.type {
-    uint 19, 
+    uint add(uint 19, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([6 x sbyte]* %str2, int 0, int 0), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
@@ -1604,7 +1606,6 @@ struct Color {
     uint 32, 
     uint 0, 
     {  }* null,
-    bool false,
     {  }* cast ([3 x {  }*]* %llvm.dbg.array to {  }*) }, section "llvm.metadata"
 %str2 = internal constant [6 x sbyte] c"Color\00", section "llvm.metadata"
 
@@ -1612,7 +1613,7 @@ struct Color {
 ;; Define the Red field.
 ;;
 %llvm.dbg.derivedtype1 = internal constant %llvm.dbg.derivedtype.type {
-    uint 13, 
+    uint add(uint 13, uint 262144), 
     {  }* null, 
     sbyte* getelementptr ([4 x sbyte]* %str3, int 0, int 0), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
@@ -1627,7 +1628,7 @@ struct Color {
 ;; Define the Green field.
 ;;
 %llvm.dbg.derivedtype2 = internal constant %llvm.dbg.derivedtype.type {
-    uint 13, 
+    uint add(uint 13, uint 262144), 
     {  }* null, 
     sbyte* getelementptr ([6 x sbyte]* %str4, int 0, int 0), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
@@ -1642,7 +1643,7 @@ struct Color {
 ;; Define the Blue field.
 ;;
 %llvm.dbg.derivedtype3 = internal constant %llvm.dbg.derivedtype.type {
-    uint 13, 
+    uint add(uint 13, uint 262144), 
     {  }* null, 
     sbyte* getelementptr ([5 x sbyte]* %str5, int 0, int 0), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
@@ -1688,7 +1689,7 @@ enum Trees {
 ;; Define composite type for enum Trees
 ;;
 %llvm.dbg.compositetype = internal constant %llvm.dbg.compositetype.type {
-    uint 4, 
+    uint add(uint 4, uint 262144), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
     sbyte* getelementptr ([6 x sbyte]* %str1, int 0, int 0), 
     {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
@@ -1697,7 +1698,6 @@ enum Trees {
     uint 32, 
     uint 0, 
     {  }* null, 
-    bool false,
     {  }* cast ([3 x {  }*]* %llvm.dbg.array to {  }*) }, section "llvm.metadata"
 %str1 = internal constant [6 x sbyte] c"Trees\00", section "llvm.metadata"
 
@@ -1705,7 +1705,7 @@ enum Trees {
 ;; Define Spruce enumerator.
 ;;
 %llvm.dbg.enumerator1 = internal constant %llvm.dbg.enumerator.type {
-    uint 40, 
+    uint add(uint 40, uint 262144), 
     sbyte* getelementptr ([7 x sbyte]* %str2, int 0, int 0), 
     int 100 }, section "llvm.metadata"
 %str2 = internal constant [7 x sbyte] c"Spruce\00", section "llvm.metadata"
@@ -1714,7 +1714,7 @@ enum Trees {
 ;; Define Oak enumerator.
 ;;
 %llvm.dbg.enumerator2 = internal constant %llvm.dbg.enumerator.type {
-    uint 40, 
+    uint add(uint 40, uint 262144), 
     sbyte* getelementptr ([4 x sbyte]* %str3, int 0, int 0), 
     int 200 }, section "llvm.metadata"
 %str3 = internal constant [4 x sbyte] c"Oak\00", section "llvm.metadata"
@@ -1723,7 +1723,7 @@ enum Trees {
 ;; Define Maple enumerator.
 ;;
 %llvm.dbg.enumerator3 = internal constant %llvm.dbg.enumerator.type {
-    uint 40, 
+    uint add(uint 40, uint 262144), 
     sbyte* getelementptr ([6 x sbyte]* %str4, int 0, int 0), 
     int 300 }, section "llvm.metadata"
 %str4 = internal constant [6 x sbyte] c"Maple\00", section "llvm.metadata"
-- 
cgit v1.2.3