[llvm] r309630 - DebugInfo: Put range base specifier entry functionality behind a flag

Robinson, Paul via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 1 06:26:39 PDT 2017



> -----Original Message-----
> From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org] On Behalf
> Of David Blaikie via llvm-commits
> Sent: Monday, July 31, 2017 2:49 PM
> To: llvm-commits at lists.llvm.org
> Subject: [llvm] r309630 - DebugInfo: Put range base specifier entry
> functionality behind a flag
> 
> Author: dblaikie
> Date: Mon Jul 31 14:48:42 2017
> New Revision: 309630
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=309630&view=rev
> Log:
> DebugInfo: Put range base specifier entry functionality behind a flag
> 
> Chromium's gold build seems to have trouble with this (gold produces
> errors) - not sure if it's gold that's not coping with the valid
> representation, or a bug in the implementation in LLVM, etc.
> 
> Modified:
>     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>     llvm/trunk/test/DebugInfo/X86/range_reloc.ll
> 
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=309630&r1=309
> 629&r2=309630&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Mon Jul 31 14:48:42
> 2017
> @@ -61,10 +61,14 @@ static cl::opt<bool>
>  DisableDebugInfoPrinting("disable-debug-info-print", cl::Hidden,
>                           cl::desc("Disable debug info printing"));
> 
> +static cl::opt<bool> UseDwarfRangesBaseAddressSpecifier(
> +    "use-dwarf-ranges-base-address-specifier", cl::Hidden,
> +    cl::desc("Disable debug info printing"), cl::init(false));

Looks like a copy-pasto on the description.

> +
>  static cl::opt<bool>
> -GenerateGnuPubSections("generate-gnu-dwarf-pub-sections", cl::Hidden,
> -                       cl::desc("Generate GNU-style pubnames and
> pubtypes"),
> -                       cl::init(false));
> +    GenerateGnuPubSections("generate-gnu-dwarf-pub-sections", cl::Hidden,
> +                           cl::desc("Generate GNU-style pubnames and
> pubtypes"),
> +                           cl::init(false));

Spurious reformatting?
--paulr

> 
>  static cl::opt<bool> GenerateARangeSection("generate-arange-section",
>                                             cl::Hidden,
> @@ -1882,7 +1886,8 @@ void DwarfDebug::emitDebugRanges() {
>          // or optnone where there may be holes in a single CU's section
>          // contrubutions.
>          auto *Base = CUBase;
> -        if (!Base && P.second.size() > 1) {
> +        if (!Base && P.second.size() > 1 &&
> +            UseDwarfRangesBaseAddressSpecifier) {
>            BaseIsSet = true;
>            // FIXME/use care: This may not be a useful base address if
> it's not
>            // the lowest address/range in this object.
> 
> Modified: llvm/trunk/test/DebugInfo/X86/range_reloc.ll
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/test/DebugInfo/X86/range_reloc.ll?rev=309630&r1=309629&
> r2=309630&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/test/DebugInfo/X86/range_reloc.ll (original)
> +++ llvm/trunk/test/DebugInfo/X86/range_reloc.ll Mon Jul 31 14:48:42 2017
> @@ -1,4 +1,5 @@
> -; RUN: llc -filetype=asm -mtriple=x86_64-pc-linux-gnu %s -o - | FileCheck
> %s
> +; RUN: llc -filetype=asm -mtriple=x86_64-pc-linux-gnu %s -o - -use-dwarf-
> ranges-base-address-specifier | FileCheck --check-prefix=COMMON --check-
> prefix=BASE %s
> +; RUN: llc -filetype=asm -mtriple=x86_64-pc-linux-gnu %s -o - | FileCheck
> --check-prefix=COMMON --check-prefix=NOBASE %s
> 
>  ; Group ranges in a range list that apply to the same section and use a
> base
>  ; address selection entry to reduce the number of relocations to one
> reloc per
> @@ -13,23 +14,27 @@
>  ; in the linked executable. Without compression in the objects, the win
> would be
>  ; smaller (the growth of debug_ranges itself would be more significant).
> 
> -; CHECK: {{^.Ldebug_ranges0}}
> -; CHECK-NEXT:   .quad   .Lfunc_begin0
> -; CHECK-NEXT:   .quad   .Lfunc_end0
> -; CHECK-NEXT:   .quad   -1
> -; CHECK-NEXT:   .quad   .Lfunc_begin1
> -; CHECK-NEXT:   .quad   .Lfunc_begin1-.Lfunc_begin1
> -; CHECK-NEXT:   .quad   .Lfunc_end1-.Lfunc_begin1
> -; CHECK-NEXT:   .quad   .Lfunc_begin3-.Lfunc_begin1
> -; CHECK-NEXT:   .quad   .Lfunc_end3-.Lfunc_begin1
> -; CHECK-NEXT:   .quad   -1
> -; CHECK-NEXT:   .quad   0
> -; CHECK-NEXT:   .quad   .Lfunc_begin4
> -; CHECK-NEXT:   .quad   .Lfunc_end4
> -; CHECK-NEXT:   .quad   .Lfunc_begin5
> -; CHECK-NEXT:   .quad   .Lfunc_end5
> -; CHECK-NEXT:   .quad   0
> -; CHECK-NEXT:   .quad   0
> +; COMMON: {{^.Ldebug_ranges0}}
> +; COMMON-NEXT:   .quad   .Lfunc_begin0
> +; COMMON-NEXT:   .quad   .Lfunc_end0
> +; BASE-NEXT:   .quad   -1
> +; BASE-NEXT:   .quad   .Lfunc_begin1
> +; BASE-NEXT:   .quad   .Lfunc_begin1-.Lfunc_begin1
> +; BASE-NEXT:   .quad   .Lfunc_end1-.Lfunc_begin1
> +; BASE-NEXT:   .quad   .Lfunc_begin3-.Lfunc_begin1
> +; BASE-NEXT:   .quad   .Lfunc_end3-.Lfunc_begin1
> +; BASE-NEXT:   .quad   -1
> +; BASE-NEXT:   .quad   0
> +; NOBASE-NEXT:   .quad   .Lfunc_begin1
> +; NOBASE-NEXT:   .quad   .Lfunc_end1
> +; NOBASE-NEXT:   .quad   .Lfunc_begin3
> +; NOBASE-NEXT:   .quad   .Lfunc_end3
> +; COMMON-NEXT:   .quad   .Lfunc_begin4
> +; COMMON-NEXT:   .quad   .Lfunc_end4
> +; COMMON-NEXT:   .quad   .Lfunc_begin5
> +; COMMON-NEXT:   .quad   .Lfunc_end5
> +; COMMON-NEXT:   .quad   0
> +; COMMON-NEXT:   .quad   0
> 
>  ; Function Attrs: noinline nounwind optnone uwtable
>  define void @_Z2f1v() #0 section "a" !dbg !7 {
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list