diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-04-20 21:19:10 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-04-20 21:19:10 +0000 |
commit | d99dafe2e4a385dd2a6c76da6d8258deb100657b (patch) | |
tree | ba60bf957558bd114f25dbff3d4996b5d7a61c82 /test/tools | |
parent | 71d5a2540a98c81f5bcaeb48805e0e2881f530ef (diff) |
Vendor import of llvm trunk r300890:vendor/llvm/llvm-trunk-r300890
Notes
Notes:
svn path=/vendor/llvm/dist/; revision=317218
svn path=/vendor/llvm/llvm-trunk-r300890/; revision=317219; tag=vendor/llvm/llvm-trunk-r300890
Diffstat (limited to 'test/tools')
-rw-r--r-- | test/tools/gold/X86/thinlto.ll | 22 | ||||
-rw-r--r-- | test/tools/llvm-lto/thinlto.ll | 8 | ||||
-rw-r--r-- | test/tools/llvm-symbolizer/Inputs/discrim | bin | 9973 -> 9056 bytes | |||
-rw-r--r-- | test/tools/llvm-symbolizer/Inputs/discrim.c | 13 | ||||
-rw-r--r-- | test/tools/llvm-symbolizer/Inputs/discrim.inp | 9 | ||||
-rw-r--r-- | test/tools/llvm-symbolizer/padding-x86_64.ll | 40 | ||||
-rw-r--r-- | test/tools/llvm-symbolizer/sym-verbose.test | 92 | ||||
-rw-r--r-- | test/tools/llvm-xray/X86/extract-instrmap-symbolize.ll | 10 | ||||
-rw-r--r-- | test/tools/llvm-xray/X86/extract-instrmap.ll | 8 |
9 files changed, 150 insertions, 52 deletions
diff --git a/test/tools/gold/X86/thinlto.ll b/test/tools/gold/X86/thinlto.ll index 5e1d913eb09e..bb87adc44745 100644 --- a/test/tools/gold/X86/thinlto.ll +++ b/test/tools/gold/X86/thinlto.ll @@ -82,15 +82,11 @@ ; BACKEND1-NEXT: </MODULE_STRTAB_BLOCK ; BACKEND1-NEXT: <GLOBALVAL_SUMMARY_BLOCK ; BACKEND1-NEXT: <VERSION +; BACKEND1-NEXT: <VALUE_GUID op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} +; BACKEND1-NEXT: <VALUE_GUID op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} ; BACKEND1-NEXT: <COMBINED ; BACKEND1-NEXT: <COMBINED ; BACKEND1-NEXT: </GLOBALVAL_SUMMARY_BLOCK -; BACKEND1-NEXT: <VALUE_SYMTAB -; Check that the format is: op0=valueid, op1=offset, op2=funcguid, -; where funcguid is the lower 64 bits of the function name MD5. -; BACKEND1-NEXT: <COMBINED_ENTRY abbrevid={{[0-9]+}} op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} -; BACKEND1-NEXT: <COMBINED_ENTRY abbrevid={{[0-9]+}} op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} -; BACKEND1-NEXT: </VALUE_SYMTAB ; The backend index for Input/thinlto.ll contains summaries from itself only, ; as it does not import anything. @@ -99,13 +95,9 @@ ; BACKEND2-NEXT: </MODULE_STRTAB_BLOCK ; BACKEND2-NEXT: <GLOBALVAL_SUMMARY_BLOCK ; BACKEND2-NEXT: <VERSION +; BACKEND2-NEXT: <VALUE_GUID op0=1 op1=-5300342847281564238 ; BACKEND2-NEXT: <COMBINED ; BACKEND2-NEXT: </GLOBALVAL_SUMMARY_BLOCK -; BACKEND2-NEXT: <VALUE_SYMTAB -; Check that the format is: op0=valueid, op1=offset, op2=funcguid, -; where funcguid is the lower 64 bits of the function name MD5. -; BACKEND2-NEXT: <COMBINED_ENTRY abbrevid={{[0-9]+}} op0=1 op1=-5300342847281564238 -; BACKEND2-NEXT: </VALUE_SYMTAB ; COMBINED: <MODULE_STRTAB_BLOCK ; COMBINED-NEXT: <ENTRY {{.*}} record string = '{{.*}}/test/tools/gold/X86/Output/thinlto.ll.tmp{{.*}}.o' @@ -113,15 +105,11 @@ ; COMBINED-NEXT: </MODULE_STRTAB_BLOCK ; COMBINED-NEXT: <GLOBALVAL_SUMMARY_BLOCK ; COMBINED-NEXT: <VERSION +; COMBINED-NEXT: <VALUE_GUID op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} +; COMBINED-NEXT: <VALUE_GUID op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} ; COMBINED-NEXT: <COMBINED ; COMBINED-NEXT: <COMBINED ; COMBINED-NEXT: </GLOBALVAL_SUMMARY_BLOCK -; COMBINED-NEXT: <VALUE_SYMTAB -; Check that the format is: op0=valueid, op1=offset, op2=funcguid, -; where funcguid is the lower 64 bits of the function name MD5. -; COMBINED-NEXT: <COMBINED_ENTRY abbrevid={{[0-9]+}} op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} -; COMBINED-NEXT: <COMBINED_ENTRY abbrevid={{[0-9]+}} op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} -; COMBINED-NEXT: </VALUE_SYMTAB target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/test/tools/llvm-lto/thinlto.ll b/test/tools/llvm-lto/thinlto.ll index 61c52b33e72e..86aca13a4c88 100644 --- a/test/tools/llvm-lto/thinlto.ll +++ b/test/tools/llvm-lto/thinlto.ll @@ -11,15 +11,11 @@ ; COMBINED-NEXT: </MODULE_STRTAB_BLOCK ; COMBINED-NEXT: <GLOBALVAL_SUMMARY_BLOCK ; COMBINED-NEXT: <VERSION +; COMBINED-NEXT: <VALUE_GUID op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} +; COMBINED-NEXT: <VALUE_GUID op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} ; COMBINED-NEXT: <COMBINED ; COMBINED-NEXT: <COMBINED ; COMBINED-NEXT: </GLOBALVAL_SUMMARY_BLOCK -; COMBINED-NEXT: <VALUE_SYMTAB -; Check that the format is: op0=valueid, op1=offset, op2=funcguid, -; where funcguid is the lower 64 bits of the function name MD5. -; COMBINED-NEXT: <COMBINED_ENTRY abbrevid={{[0-9]+}} op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} -; COMBINED-NEXT: <COMBINED_ENTRY abbrevid={{[0-9]+}} op0={{1|2}} op1={{-3706093650706652785|-5300342847281564238}} -; COMBINED-NEXT: </VALUE_SYMTAB target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" diff --git a/test/tools/llvm-symbolizer/Inputs/discrim b/test/tools/llvm-symbolizer/Inputs/discrim Binary files differindex ec61fe960bff..0e5e847a5ed7 100644 --- a/test/tools/llvm-symbolizer/Inputs/discrim +++ b/test/tools/llvm-symbolizer/Inputs/discrim diff --git a/test/tools/llvm-symbolizer/Inputs/discrim.c b/test/tools/llvm-symbolizer/Inputs/discrim.c index decbce8d454e..e53cbd467139 100644 --- a/test/tools/llvm-symbolizer/Inputs/discrim.c +++ b/test/tools/llvm-symbolizer/Inputs/discrim.c @@ -1,8 +1,11 @@ static volatile int do_mul; -static volatile int do_inc; +static volatile int x, v; -int main () { - int x = 1; - if (do_mul) x *= 2; else x /= 2; - return do_inc ? ++x : --x; +int foo () { + if (do_mul) x *= v; else x /= v; + return x; +} + +int main() { + return foo() + foo(); } diff --git a/test/tools/llvm-symbolizer/Inputs/discrim.inp b/test/tools/llvm-symbolizer/Inputs/discrim.inp index f8ad6018d709..a5cfcb2558f3 100644 --- a/test/tools/llvm-symbolizer/Inputs/discrim.inp +++ b/test/tools/llvm-symbolizer/Inputs/discrim.inp @@ -1,5 +1,8 @@ some text
-0x4004f2
-0x400509
-0x40050d
+0x400590
+0x4005a5
+0x4005ad
+0x4005b9
+0x4005ce
+0x4005d4
some more text
diff --git a/test/tools/llvm-symbolizer/padding-x86_64.ll b/test/tools/llvm-symbolizer/padding-x86_64.ll new file mode 100644 index 000000000000..114c9f701c68 --- /dev/null +++ b/test/tools/llvm-symbolizer/padding-x86_64.ll @@ -0,0 +1,40 @@ +; REQUIRES: x86_64-linux +; Checks if symbolizer can correctly symbolize address in the padding between +; functions. +; RUN: llc -o %t.o -filetype=obj -mtriple=x86_64-pc-linux %s +; RUN: echo 0x5 | llvm-symbolizer -obj=%t.o | FileCheck %s --check-prefix=FOO +; RUN: echo 0xd | llvm-symbolizer -obj=%t.o | FileCheck %s --check-prefix=PADDING +; RUN: echo 0x10 | llvm-symbolizer -obj=%t.o | FileCheck %s --check-prefix=MAIN + +;FOO: foo +;PADDING: ?? +;MAIN: main + +@a = global i32 1, align 4 + +define i32 @foo() !dbg !9 { +entry: + %0 = load i32, i32* @a, align 4 + ret i32 %0 +} + +define i32 @main() !dbg !14 { +entry: + %call = call i32 @foo(), !dbg !18 + ret i32 %call +} + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!6, !7} + +!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2) +!1 = !DIFile(filename: "padding-x86_64.c", directory: "/tmp/") +!2 = !{} +!5 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) +!6 = !{i32 2, !"Dwarf Version", i32 4} +!7 = !{i32 2, !"Debug Info Version", i32 3} +!9 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 2, type: !10, isLocal: false, isDefinition: true, scopeLine: 2, isOptimized: false, unit: !0, variables: !2) +!10 = !DISubroutineType(types: !11) +!11 = !{!5} +!14 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 6, type: !10, isLocal: false, isDefinition: true, scopeLine: 6, isOptimized: false, unit: !0, variables: !2) +!18 = !DILocation(line: 7, column: 8, scope: !14) diff --git a/test/tools/llvm-symbolizer/sym-verbose.test b/test/tools/llvm-symbolizer/sym-verbose.test index ef66db919faa..5b401e3b0982 100644 --- a/test/tools/llvm-symbolizer/sym-verbose.test +++ b/test/tools/llvm-symbolizer/sym-verbose.test @@ -1,39 +1,97 @@ #static volatile int do_mul; -#static volatile int do_inc; +#static volatile int x, v; # -#int main () { -# int x = 1; -# if (do_mul) x *= 2; else x /= 2; -# return do_inc ? ++x : --x; +#int foo () { +# if (do_mul) x *= v; else x /= v; +# return x; #} -#Build as : clang -g -O2 discrim.c -o discrim +# +#int main() { +# return foo() + foo(); +#} +#Build as : clang -gmlt -fdebug-info-for-profiling -O2 discrim.c -o discrim RUN: llvm-symbolizer -verbose -print-address -obj=%p/Inputs/discrim < %p/Inputs/discrim.inp | FileCheck %s #CHECK: some text -#CHECK: 0x4004f2 +#CHECK: 0x400590 +#CHECK-NEXT: foo +#CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c +#CHECK-NEXT: Function start line: 4 +#CHECK-NEXT: Line: 9 +#CHECK-NEXT: Column: 0 #CHECK-NEXT: main #CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c +#CHECK-NEXT: Function start line: 9 +#CHECK-NEXT: Line: 10 +#CHECK-NEXT: Column: 0 + +#CHECK: 0x4005a5 +#CHECK-NEXT: foo +#CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c #CHECK-NEXT: Function start line: 4 -#CHECK-NEXT: Line: 6 -#CHECK-NEXT: Column: 7 -#CHECK-NOT: Discriminator: 0 +#CHECK-NEXT: Line: 5 +#CHECK-NEXT: Column: 17 +#CHECK-NEXT: Discriminator: 2 +#CHECK-NEXT: main +#CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c +#CHECK-NEXT: Function start line: 9 +#CHECK-NEXT: Line: 10 +#CHECK-NEXT: Column: 0 -#CHECK: 0x400509 +#CHECK: 0x4005ad +#CHECK-NEXT: foo +#CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c +#CHECK-NEXT: Function start line: 4 +#CHECK-NEXT: Line: 0 +#CHECK-NEXT: Column: 30 +#CHECK-NEXT: Discriminator: 4 #CHECK-NEXT: main #CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c +#CHECK-NEXT: Function start line: 9 +#CHECK-NEXT: Line: 10 +#CHECK-NEXT: Column: 0 + +#CHECK: 0x4005b9 +#CHECK-NEXT: foo +#CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c #CHECK-NEXT: Function start line: 4 -#CHECK-NEXT: Line: 7 -#CHECK-NEXT: Column: 3 -#CHECK-NEXT: Discriminator: 1 +#CHECK-NEXT: Line: 5 +#CHECK-NEXT: Column: 7 +#CHECK-NEXT: main +#CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c +#CHECK-NEXT: Function start line: 9 +#CHECK-NEXT: Line: 10 +#CHECK-NEXT: Column: 0 +#CHECK-NEXT: Discriminator: 2 -#CHECK: 0x40050d +#CHECK: 0x4005ce +#CHECK-NEXT: foo +#CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c +#CHECK-NEXT: Function start line: 4 +#CHECK-NEXT: Line: 5 +#CHECK-NEXT: Column: 17 +#CHECK-NEXT: Discriminator: 2 #CHECK-NEXT: main #CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c +#CHECK-NEXT: Function start line: 9 +#CHECK-NEXT: Line: 10 +#CHECK-NEXT: Column: 0 +#CHECK-NEXT: Discriminator: 2 + +#CHECK: 0x4005d4 +#CHECK-NEXT: foo +#CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c #CHECK-NEXT: Function start line: 4 -#CHECK-NEXT: Line: 7 -#CHECK-NEXT: Column: 3 +#CHECK-NEXT: Line: 5 +#CHECK-NEXT: Column: 30 +#CHECK-NEXT: Discriminator: 4 +#CHECK-NEXT: main +#CHECK-NEXT: Filename: /tmp{{[\\/]}}discrim.c +#CHECK-NEXT: Function start line: 9 +#CHECK-NEXT: Line: 10 +#CHECK-NEXT: Column: 0 #CHECK-NEXT: Discriminator: 2 #CHECK: some more text diff --git a/test/tools/llvm-xray/X86/extract-instrmap-symbolize.ll b/test/tools/llvm-xray/X86/extract-instrmap-symbolize.ll new file mode 100644 index 000000000000..86358ca5c13f --- /dev/null +++ b/test/tools/llvm-xray/X86/extract-instrmap-symbolize.ll @@ -0,0 +1,10 @@ +; This tests that we can extract the instrumentation map and symbolize the +; function addresses. +; RUN: llvm-xray extract %S/Inputs/elf64-example.bin -s | FileCheck %s + +; CHECK: --- +; CHECK-NEXT: - { id: 1, address: 0x000000000041C900, function: 0x000000000041C900, kind: function-enter, always-instrument: true, function-name: {{.*foo.*}} } +; CHECK-NEXT: - { id: 1, address: 0x000000000041C912, function: 0x000000000041C900, kind: function-exit, always-instrument: true, function-name: {{.*foo.*}} } +; CHECK-NEXT: - { id: 2, address: 0x000000000041C930, function: 0x000000000041C930, kind: function-enter, always-instrument: true, function-name: {{.*bar.*}} } +; CHECK-NEXT: - { id: 2, address: 0x000000000041C946, function: 0x000000000041C930, kind: function-exit, always-instrument: true, function-name: {{.*bar.*}} } +; CHECK-NEXT: ... diff --git a/test/tools/llvm-xray/X86/extract-instrmap.ll b/test/tools/llvm-xray/X86/extract-instrmap.ll index 7447aec68114..c036944bd382 100644 --- a/test/tools/llvm-xray/X86/extract-instrmap.ll +++ b/test/tools/llvm-xray/X86/extract-instrmap.ll @@ -4,8 +4,8 @@ ; RUN: llvm-xray extract %S/Inputs/elf64-example.bin | FileCheck %s ; CHECK: --- -; CHECK-NEXT: - { id: 1, address: 0x000000000041C900, function: 0x000000000041C900, kind: function-enter, always-instrument: true } -; CHECK-NEXT: - { id: 1, address: 0x000000000041C912, function: 0x000000000041C900, kind: function-exit, always-instrument: true } -; CHECK-NEXT: - { id: 2, address: 0x000000000041C930, function: 0x000000000041C930, kind: function-enter, always-instrument: true } -; CHECK-NEXT: - { id: 2, address: 0x000000000041C946, function: 0x000000000041C930, kind: function-exit, always-instrument: true } +; CHECK-NEXT: - { id: 1, address: 0x000000000041C900, function: 0x000000000041C900, kind: function-enter, always-instrument: true{{.*}} } +; CHECK-NEXT: - { id: 1, address: 0x000000000041C912, function: 0x000000000041C900, kind: function-exit, always-instrument: true{{.*}} } +; CHECK-NEXT: - { id: 2, address: 0x000000000041C930, function: 0x000000000041C930, kind: function-enter, always-instrument: true{{.*}} } +; CHECK-NEXT: - { id: 2, address: 0x000000000041C946, function: 0x000000000041C930, kind: function-exit, always-instrument: true{{.*}} } ; CHECK-NEXT: ... |