[llvm] r342136 - [MC/Dwarf] Unclamp DWARF linetables format on Darwin.

Jonas Devlieghere via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 13 06:13:50 PDT 2018


Author: jdevlieghere
Date: Thu Sep 13 06:13:50 2018
New Revision: 342136

URL: http://llvm.org/viewvc/llvm-project?rev=342136&view=rev
Log:
[MC/Dwarf] Unclamp DWARF linetables format on Darwin.

In r319995, we fixed the line table format to version 2 on Darwin
because dsymutil didn't yet understand the new format which caused test
failures for the LLDB bots. This has been resolved in the meantime so
there's no reason to keep this limitation.

rdar://problem/35968332

Modified:
    llvm/trunk/lib/MC/MCDwarf.cpp
    llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll
    llvm/trunk/test/CodeGen/Generic/dwarf-source.ll
    llvm/trunk/test/DebugInfo/X86/nodebug.ll
    llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll
    llvm/trunk/test/MC/MachO/file.s
    llvm/trunk/test/MC/MachO/gen-dwarf.s
    llvm/trunk/test/MC/MachO/loc.s

Modified: llvm/trunk/lib/MC/MCDwarf.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=342136&r1=342135&r2=342136&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCDwarf.cpp (original)
+++ llvm/trunk/lib/MC/MCDwarf.cpp Thu Sep 13 06:13:50 2018
@@ -462,14 +462,8 @@ MCDwarfLineTableHeader::Emit(MCStreamer
   emitAbsValue(*MCOS,
                MakeStartMinusEndExpr(*MCOS, *LineStartSym, *LineEndSym, 4), 4);
 
-  unsigned LineTableVersion = context.getDwarfVersion();
-
-  // On Darwin we default to v2 for anything before DWARF v5.
-  if (context.getObjectFileInfo()->getTargetTriple().isOSDarwin() &&
-      LineTableVersion < 5)
-    LineTableVersion = 2;
-
   // Next 2 bytes is the Version.
+  unsigned LineTableVersion = context.getDwarfVersion();
   MCOS->EmitIntValue(LineTableVersion, 2);
 
   // Keep track of the bytes between the very start and where the header length

Modified: llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll?rev=342136&r1=342135&r2=342136&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll (original)
+++ llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll Thu Sep 13 06:13:50 2018
@@ -1,8 +1,5 @@
 ; MD5 checksums provided by IR should be passed through to asm.
 ; They'll be emitted to an object file only for DWARF 5 or later.
-;
-; Note that on Darwin for DWARF 4 or earlier, the line table version is clamped
-; to version 2. However that doesn't affect the output checked in this test.
 
 ; REQUIRES: object-emission
 ; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-4

Modified: llvm/trunk/test/CodeGen/Generic/dwarf-source.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Generic/dwarf-source.ll?rev=342136&r1=342135&r2=342136&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/Generic/dwarf-source.ll (original)
+++ llvm/trunk/test/CodeGen/Generic/dwarf-source.ll Thu Sep 13 06:13:50 2018
@@ -1,8 +1,5 @@
 ; Source text provided by IR should be passed through to asm.
 ; It is emitted to an object file only for DWARF 5 or later.
-;
-; Note that on Darwin for DWARF 4 or earlier, the line table version is clamped
-; to version 2. However that doesn't affect the output checked in this test.
 
 ; REQUIRES: object-emission
 ; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-4

Modified: llvm/trunk/test/DebugInfo/X86/nodebug.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/nodebug.ll?rev=342136&r1=342135&r2=342136&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/nodebug.ll (original)
+++ llvm/trunk/test/DebugInfo/X86/nodebug.ll Thu Sep 13 06:13:50 2018
@@ -24,7 +24,7 @@
 ; Expect no line table entry since there are no functions and file references in this compile unit
 ; CHECK: .debug_line contents:
 ; CHECK: Line table prologue:
-; CHECK: total_length: 0x00000019
+; CHECK: total_length: 0x0000001a
 ; CHECK-NOT: file_names[
 
 @i = external global i32

Modified: llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll?rev=342136&r1=342135&r2=342136&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll (original)
+++ llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll Thu Sep 13 06:13:50 2018
@@ -15,7 +15,7 @@
 ; CHECK: DW_AT_high_pc [DW_FORM_data4]          (0x00000010)
 
 ; CHECK: DW_TAG_compile_unit
-; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset]   (0x0000003c)
+; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset]   (0x0000003d)
 ; CHECK: DW_AT_low_pc [DW_FORM_addr]            (0x0000000000000010)
 ; CHECK: DW_AT_high_pc [DW_FORM_data4]          (0x00000009)
 ; CHECK: DW_TAG_subprogram
@@ -26,13 +26,13 @@
 ; CHECK: .debug_line contents:
 ; CHECK-NEXT: debug_line[{{.*}}]
 ; CHECK-NEXT: Line table prologue:
-; CHECK-NEXT: total_length: 0x00000038
+; CHECK-NEXT: total_length: 0x00000039
 ; CHECK: file_names[  1]:
 ; CHECK-NEXT: name: "simple.c"
 ; CHECK-NEXT: dir_index: 0
 ; CHECK: debug_line[{{.*}}]
 ; CHECK-NEXT: Line table prologue:
-; CHECK-NEXT: total_length: 0x00000039
+; CHECK-NEXT: total_length: 0x0000003a
 ; CHECK: file_names[  1]:
 ; CHECK-NEXT: name: "simple2.c"
 ; CHECK-NEXT: dir_index: 0

Modified: llvm/trunk/test/MC/MachO/file.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/file.s?rev=342136&r1=342135&r2=342136&view=diff
==============================================================================
--- llvm/trunk/test/MC/MachO/file.s (original)
+++ llvm/trunk/test/MC/MachO/file.s Thu Sep 13 06:13:50 2018
@@ -8,7 +8,7 @@
 // CHECK-NEXT:    Name: __debug_line
 // CHECK-NEXT:    Segment: __DWARF
 // CHECK-NEXT:    Address: 0x1
-// CHECK-NEXT:    Size: 0x28
+// CHECK-NEXT:    Size: 0x29
 // CHECK-NEXT:    Offset: 237
 // CHECK-NEXT:    Alignment: 0
 // CHECK-NEXT:    RelocationOffset: 0x0
@@ -20,8 +20,8 @@
 // CHECK-NEXT:    Reserved1: 0x0
 // CHECK-NEXT:    Reserved2: 0x0
 // CHECK-NEXT:    SectionData (
-// CHECK-NEXT:       0000: 24000000 02001E00 00000101 FB0E0D00  |$...............|
-// CHECK-NEXT:       0010: 01010101 00000001 00000164 69720000  |...........dir..|
-// CHECK-NEXT:       0020: 666F6F00 01000000                    |foo.....|
+// CHECK-NEXT:       000: 25000000 04001F00 00000101 01FB0E0D  |%...............|
+// CHECK-NEXT:       010: 00010101 01000000 01000001 64697200  |............dir.|
+// CHECK-NEXT:       020: 00666F6F 00010000 00                 |.foo.....|
 // CHECK-NEXT:    )
 // CHECK-NEXT:  }

Modified: llvm/trunk/test/MC/MachO/gen-dwarf.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/gen-dwarf.s?rev=342136&r1=342135&r2=342136&view=diff
==============================================================================
--- llvm/trunk/test/MC/MachO/gen-dwarf.s (original)
+++ llvm/trunk/test/MC/MachO/gen-dwarf.s Thu Sep 13 06:13:50 2018
@@ -89,7 +89,7 @@ _x:	.long 1
 // CHECK: .debug_line contents:
 // CHECK: Line table prologue:
 // We don't check the total_length as it includes lengths of temp paths
-// CHECK:         version: 2
+// CHECK:         version: 4
 // We don't check the prologue_length as it too includes lengths of temp paths
 // CHECK: min_inst_length: 1
 // CHECK: default_is_stmt: 1

Modified: llvm/trunk/test/MC/MachO/loc.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/loc.s?rev=342136&r1=342135&r2=342136&view=diff
==============================================================================
--- llvm/trunk/test/MC/MachO/loc.s (original)
+++ llvm/trunk/test/MC/MachO/loc.s Thu Sep 13 06:13:50 2018
@@ -9,7 +9,7 @@
 // CHECK:     Name: __debug_line (5F 5F 64 65 62 75 67 5F 6C 69 6E 65 00 00 00 00)
 // CHECK:     Segment: __DWARF (5F 5F 44 57 41 52 46 00 00 00 00 00 00 00 00 00)
 // CHECK:     Address: 0x1
-// CHECK:     Size: 0x3C
+// CHECK:     Size: 0x3D
 // CHECK:     Offset: 237
 // CHECK:     Alignment: 0
 // CHECK:     RelocationOffset: 0x12C
@@ -21,15 +21,15 @@
 // CHECK:     Reserved1: 0x0
 // CHECK:     Reserved2: 0x0
 // CHECK:     SectionData (
-// CHECK:       0000: 38000000 02002100 00000101 FB0E0D00  |8.....!.........|
-// CHECK:       0010: 01010101 00000001 00000100 62617200  |............bar.|
-// CHECK:       0020: 00000066 6F6F0000 00000004 02000502  |...foo..........|
-// CHECK:       0030: 00000000 033F0102 01000101           |.....?......|
+// CHECK:       000: 39000000 04002200 00000101 01FB0E0D  |9.....".........|
+// CHECK:       010: 00010101 01000000 01000001 00626172  |.............bar|
+// CHECK:       020: 00000000 666F6F00 00000000 04020005  |....foo.........|
+// CHECK:       030: 02000000 00033F01 02010001 01        |......?......|
 // CHECK:     )
 // CHECK:   }
 // CHECK: ]
 // CHECK: Relocations [
 // CHECK:   Section __debug_line {
-// CHECK:     0x30 0 2 0 GENERIC_RELOC_VANILLA 0 __text
+// CHECK:     0x31 0 2 0 GENERIC_RELOC_VANILLA 0 __text
 // CHECK:   }
 // CHECK: ]




More information about the llvm-commits mailing list