diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2014-01-07 19:28:14 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2014-01-07 19:28:14 +0000 |
commit | 8a68ab3710ff6d5b33a55143803faa98ee8137d7 (patch) | |
tree | 6f65a8c8054acf62dece7ac4ca5e62511060bce3 | |
parent | f5ff0dc29b3129c26c06682f06a871d37090b6bd (diff) | |
download | bcm5719-llvm-8a68ab3710ff6d5b33a55143803faa98ee8137d7.tar.gz bcm5719-llvm-8a68ab3710ff6d5b33a55143803faa98ee8137d7.zip |
Emit arange padding with a single directive.
llvm-svn: 198700
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 8 | ||||
-rw-r--r-- | llvm/test/DebugInfo/X86/dwarf-aranges.ll | 5 | ||||
-rw-r--r-- | llvm/test/DebugInfo/X86/multiple-aranges.ll | 10 |
3 files changed, 6 insertions, 17 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index f8058d24022..7205f00b36d 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -2817,9 +2817,8 @@ void DwarfDebug::emitDebugARanges() { unsigned TupleSize = PtrSize * 2; // 7.20 in the Dwarf specs requires the table to be aligned to a tuple. - unsigned Padding = 0; - while (((sizeof(int32_t) + ContentSize + Padding) % TupleSize) != 0) - Padding++; + unsigned Padding = + OffsetToAlignment(sizeof(int32_t) + ContentSize, TupleSize); ContentSize += Padding; ContentSize += (List.size() + 1) * TupleSize; @@ -2836,8 +2835,7 @@ void DwarfDebug::emitDebugARanges() { Asm->OutStreamer.AddComment("Segment Size (in bytes)"); Asm->EmitInt8(0); - for (unsigned n = 0; n < Padding; n++) - Asm->EmitInt8(0xff); + Asm->OutStreamer.EmitFill(Padding, 0xff); for (unsigned n = 0; n < List.size(); n++) { const ArangeSpan &Span = List[n]; diff --git a/llvm/test/DebugInfo/X86/dwarf-aranges.ll b/llvm/test/DebugInfo/X86/dwarf-aranges.ll index 203afc71d83..66976c625f6 100644 --- a/llvm/test/DebugInfo/X86/dwarf-aranges.ll +++ b/llvm/test/DebugInfo/X86/dwarf-aranges.ll @@ -7,10 +7,7 @@ ; CHECK-NEXT: .byte 8 # Address Size (in bytes) ; CHECK-NEXT: .byte 0 # Segment Size (in bytes) ; -- alignment -- -; CHECK-NEXT: .byte -; CHECK-NEXT: .byte -; CHECK-NEXT: .byte -; CHECK-NEXT: .byte +; CHECK-NEXT: .zero 4,255 ; <common symbols> - it should have made one span for each symbol. ; CHECK-NEXT: .quad some_bss diff --git a/llvm/test/DebugInfo/X86/multiple-aranges.ll b/llvm/test/DebugInfo/X86/multiple-aranges.ll index 4c205d8e169..29dce3ca6a1 100644 --- a/llvm/test/DebugInfo/X86/multiple-aranges.ll +++ b/llvm/test/DebugInfo/X86/multiple-aranges.ll @@ -6,10 +6,7 @@ ; CHECK-NEXT: .long .L.debug_info_begin0 # Offset Into Debug Info Section ; CHECK-NEXT: .byte 8 # Address Size (in bytes) ; CHECK-NEXT: .byte 0 # Segment Size (in bytes) -; CHECK-NEXT: .byte 255 -; CHECK-NEXT: .byte 255 -; CHECK-NEXT: .byte 255 -; CHECK-NEXT: .byte 255 +; CHECK-NEXT: .zero 4,255 ; CHECK-NEXT: .quad kittens ; CHECK-NEXT: .Lset0 = rainbows-kittens ; CHECK-NEXT: .quad .Lset0 @@ -22,10 +19,7 @@ ; CHECK-NEXT: .long .L.debug_info_begin1 # Offset Into Debug Info Section ; CHECK-NEXT: .byte 8 # Address Size (in bytes) ; CHECK-NEXT: .byte 0 # Segment Size (in bytes) -; CHECK-NEXT: .byte 255 -; CHECK-NEXT: .byte 255 -; CHECK-NEXT: .byte 255 -; CHECK-NEXT: .byte 255 +; CHECK-NEXT: .zero 4,255 ; CHECK-NEXT: .quad rainbows ; CHECK-NEXT: .Lset1 = .Ldebug_end0-rainbows ; CHECK-NEXT: .quad .Lset1 |