Remove the -generate-dwarf-cu-ranges flag.
authorEric Christopher <echristo@gmail.com>
Fri, 14 Mar 2014 20:53:43 +0000 (20:53 +0000)
committerEric Christopher <echristo@gmail.com>
Fri, 14 Mar 2014 20:53:43 +0000 (20:53 +0000)
Rewrite a couple of testcases to cover areas that would be normally
by turning it on into testcases that will follow the logic.

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

lib/CodeGen/AsmPrinter/DwarfDebug.cpp
test/DebugInfo/cu-line-tables.ll
test/DebugInfo/cu-ranges.ll

index 1e3da83900c91d74192cbd8e2fcb059bd52c9ada..ed5bcf3c7bd10f438b2a3b2fdde1e3471b955b88 100644 (file)
@@ -106,11 +106,6 @@ static cl::opt<unsigned>
 DwarfVersionNumber("dwarf-version", cl::Hidden,
                    cl::desc("Generate DWARF for dwarf version."), cl::init(0));
 
-static cl::opt<bool>
-DwarfCURanges("generate-dwarf-cu-ranges", cl::Hidden,
-              cl::desc("Generate DW_AT_ranges for compile units"),
-              cl::init(false));
-
 static const char *const DWARFGroupName = "DWARF Emission";
 static const char *const DbgTimerName = "DWARF Debug Writer";
 
@@ -1067,13 +1062,12 @@ void DwarfDebug::endSections() {
     SectionMap[Section].push_back(SymbolCU(NULL, Sym));
   }
 
-  // For now only turn on CU ranges if we've explicitly asked for it,
-  // we have -ffunction-sections enabled, we've emitted a function
-  // into a unique section, or we're using LTO. If we're using LTO then
-  // we can't know that any particular function in the module is correlated
-  // to a particular CU and so we need to be conservative. At this point all
-  // sections should be finalized except for dwarf sections.
-  HasCURanges = DwarfCURanges || UsedNonDefaultText || (CUMap.size() > 1) ||
+  // For now only turn on CU ranges if we have -ffunction-sections enabled,
+  // we've emitted a function into a unique section, or we're using LTO. If
+  // we're using LTO then we can't know that any particular function in the
+  // module is correlated to a particular CU and so we need to be conservative.
+  // At this point all sections should be finalized except for dwarf sections.
+  HasCURanges = UsedNonDefaultText || (CUMap.size() > 1) ||
                 TargetMachine::getFunctionSections();
 }
 
index 2179bd57b8287f7eef10d1c9ec173039bc083baa..d404a6692f6b3f745e14178313ff116a37e766af 100644 (file)
@@ -1,8 +1,8 @@
 ; REQUIRES: object-emission
-; RUN: %llc_dwarf -O0 -filetype=obj -generate-dwarf-cu-ranges %s -o %t
+; RUN: %llc_dwarf -O0 -filetype=obj %s -o %t
 ; RUN: llvm-dwarfdump %t | FileCheck %s
 
-; Check that we don't emit ranges even if the option is passed if we're emitting line tables only.
+; Check that we don't emit ranges if we're emitting line tables only.
 
 ; CHECK: DW_TAG_compile_unit
 ; CHECK-NOT: DW_AT_ranges
index 381f2dcb4cfd913e9d603289617580edde461aa0..9780cff7b94c2faef92232d903eb4a86666884e7 100644 (file)
@@ -1,8 +1,8 @@
 ; REQUIRES: object-emission
-; RUN: %llc_dwarf -O0 -filetype=obj -generate-dwarf-cu-ranges %s -o %t
+; RUN: %llc_dwarf -O0 -filetype=obj %s -o %t
 ; RUN: llvm-dwarfdump %t | FileCheck %s
 
-; Check that we emit ranges for this when the -generate-dwarf-cu-ranges flag is passed.
+; Check that we emit ranges for this which has a non-traditional section.
 
 ; CHECK: DW_TAG_compile_unit
 ; CHECK: DW_AT_ranges
 ; CHECK: 00000000 <End of list>
 
 ; Function Attrs: nounwind uwtable
-define i32 @f(i32 %a) #0 {
+define i32 @foo(i32 %a) #0 section "foo" {
 entry:
   %a.addr = alloca i32, align 4
   store i32 %a, i32* %a.addr, align 4
   call void @llvm.dbg.declare(metadata !{i32* %a.addr}, metadata !12), !dbg !13
   %0 = load i32* %a.addr, align 4, !dbg !14
-  %add = add nsw i32 %0, 4, !dbg !14
+  %add = add nsw i32 %0, 5, !dbg !14
   ret i32 %add, !dbg !14
 }
 
@@ -33,18 +33,18 @@ attributes #1 = { nounwind readnone }
 !llvm.module.flags = !{!9, !10}
 !llvm.ident = !{!11}
 
-!0 = metadata !{i32 786449, metadata !1, i32 12, metadata !"clang version 3.5 (trunk 197756) (llvm/trunk 197768)", i1 false, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2, metadata !"", i32 1} ; [ DW_TAG_compile_unit ] [/usr/local/google/home/echristo/tmp/foo.c] [DW_LANG_C99]
-!1 = metadata !{metadata !"foo.c", metadata !"/usr/local/google/home/echristo/tmp"}
+!0 = metadata !{i32 786449, metadata !1, i32 12, metadata !"clang version 3.5.0 (trunk 203959) (llvm/trunk 203946)", i1 false, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2, metadata !"", i32 1} ; [ DW_TAG_compile_unit ] [/usr/local/google/home/echristo/foo.c] [DW_LANG_C99]
+!1 = metadata !{metadata !"foo.c", metadata !"/usr/local/google/home/echristo"}
 !2 = metadata !{}
 !3 = metadata !{metadata !4}
-!4 = metadata !{i32 786478, metadata !1, metadata !5, metadata !"f", metadata !"f", metadata !"", i32 1, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i32)* @f, null, null, metadata !2, i32 1} ; [ DW_TAG_subprogram ] [line 1] [def] [f]
-!5 = metadata !{i32 786473, metadata !1}          ; [ DW_TAG_file_type ] [/usr/local/google/home/echristo/tmp/foo.c]
+!4 = metadata !{i32 786478, metadata !1, metadata !5, metadata !"foo", metadata !"foo", metadata !"", i32 1, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i32)* @foo, null, null, metadata !2, i32 1} ; [ DW_TAG_subprogram ] [line 1] [def] [foo]
+!5 = metadata !{i32 786473, metadata !1}          ; [ DW_TAG_file_type ] [/usr/local/google/home/echristo/foo.c]
 !6 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !7, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
 !7 = metadata !{metadata !8, metadata !8}
 !8 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
 !9 = metadata !{i32 2, metadata !"Dwarf Version", i32 4}
 !10 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
-!11 = metadata !{metadata !"clang version 3.5 (trunk 197756) (llvm/trunk 197768)"}
+!11 = metadata !{metadata !"clang version 3.5.0 (trunk 203959) (llvm/trunk 203946)"}
 !12 = metadata !{i32 786689, metadata !4, metadata !"a", metadata !5, i32 16777217, metadata !8, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [a] [line 1]
 !13 = metadata !{i32 1, i32 0, metadata !4, null}
 !14 = metadata !{i32 2, i32 0, metadata !4, null}