mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-16 12:56:35 +00:00
[BOLT][DWARF][NFC] Added double escape characters (#93348)
Added double escape characters to lines that describe a test.
This commit is contained in:
parent
ad884d9728
commit
11791ae7b0
@ -1,4 +1,4 @@
|
||||
# Check that we don't accidentally strip addr32 prefix
|
||||
## Check that we don't accidentally strip addr32 prefix
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
|
||||
# RUN: ld.lld %t.o -o %t.exe -nostdlib
|
||||
|
@ -1,13 +1,13 @@
|
||||
# Verify that we update DW_TAG_compile_unit' ranges and .debug_aranges
|
||||
# for assembly function that doesn't have corresponding DIE.
|
||||
#
|
||||
# The input test case foo() contains nops that we remove.
|
||||
## Verify that we update DW_TAG_compile_unit' ranges and .debug_aranges
|
||||
## for assembly function that doesn't have corresponding DIE.
|
||||
##
|
||||
## The input test case foo() contains nops that we remove.
|
||||
|
||||
RUN: %clang %cflags -gdwarf-5 -no-pie %p/../Inputs/asm_foo.s %p/../Inputs/asm_main.c -o %t.exe
|
||||
RUN: llvm-bolt %t.exe -o %t --update-debug-sections
|
||||
RUN: llvm-dwarfdump -all %t | FileCheck %s
|
||||
|
||||
# Check ranges were created/updated for asm compile unit
|
||||
## Check ranges were created/updated for asm compile unit
|
||||
CHECK: 0x0000000c: DW_TAG_compile_unit
|
||||
CHECK-NEXT: DW_AT_stmt_list (0x00000000)
|
||||
CHECK-NEXT: DW_AT_low_pc (0x0000000000000000)
|
||||
@ -16,11 +16,11 @@ CHECK-NEXT: [0x0000000000[[#%x,ADDR:]],
|
||||
CHECK-SAME: 0x0000000000[[#ADDR+1]]))
|
||||
CHECK-NEXT: DW_AT_name ("{{.*}}asm_foo.s")
|
||||
|
||||
# Check .debug_aranges was updated for asm module
|
||||
## Check .debug_aranges was updated for asm module
|
||||
CHECK: .debug_aranges contents:
|
||||
CHECK-NEXT: Address Range Header: length = 0x0000002c, format = DWARF32, version = 0x0002, cu_offset = 0x00000000, addr_size = 0x08, seg_size = 0x00
|
||||
CHECK-NEXT: [0x0000000000[[#ADDR]], 0x0000000000[[#ADDR+1]])
|
||||
|
||||
# Check line number info was updated
|
||||
## Check line number info was updated
|
||||
CHECK: 0x0000000000[[#ADDR]] 13 0 0 0 0 0 is_stmt
|
||||
CHECK-NEXT: 0x0000000000[[#ADDR+1]] 13 0 0 0 0 0 is_stmt end_sequence
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Check that BOLT inserts trap instruction at entry to functions that use AVX-512.
|
||||
# Check that AVX-512 instruction is updated correctly when -trap-avx512=0 is passed.
|
||||
## Check that BOLT inserts trap instruction at entry to functions that use AVX-512.
|
||||
## Check that AVX-512 instruction is updated correctly when -trap-avx512=0 is passed.
|
||||
|
||||
RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-unknown -o %t.o \
|
||||
RUN: %S/Inputs/avx512.s
|
||||
@ -17,11 +17,11 @@ RUN: FileCheck %s --check-prefix=CHECK-DIS-NO-TRAP
|
||||
|
||||
CHECK: BOLT-WARNING: 1 function will trap on entry
|
||||
|
||||
# Check that we have two ud2 instructions - one per entry.
|
||||
## Check that we have two ud2 instructions - one per entry.
|
||||
CHECK-DIS: use_avx512
|
||||
CHECK-DIS-NEXT: ud2
|
||||
CHECK-DIS-NEXT: ud2
|
||||
|
||||
# Check that we generate correct AVX-512
|
||||
## Check that we generate correct AVX-512
|
||||
CHECK-DIS-NO-TRAP: use_avx512
|
||||
CHECK-DIS-NO-TRAP: 62 e2 f5 70 2c da vscalefpd
|
||||
CHECK-DIS-NO-TRAP: 62 e2 f5 70 2c da vscalefpd
|
||||
|
@ -1,5 +1,5 @@
|
||||
# This reproduces a bug with dynostats when trying to compute branch stats
|
||||
# at a block with two tails calls (one conditional and one unconditional).
|
||||
## This reproduces a bug with dynostats when trying to compute branch stats
|
||||
## at a block with two tails calls (one conditional and one unconditional).
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown \
|
||||
# RUN: %s -o %t.o
|
||||
@ -17,7 +17,7 @@
|
||||
# CHECK: {{.*}}: ja {{.*}} # TAILCALL # Offset: 7 # CTCTakenCount: 4
|
||||
# CHECK-NEXT: {{.*}}: jmp {{.*}} # TAILCALL # Offset: 13
|
||||
|
||||
# Confirm that a deleted basic block is emitted at function end offset (0xe)
|
||||
## Confirm that a deleted basic block is emitted at function end offset (0xe)
|
||||
# CHECK-BAT: [[#%x,ADDR:]] g .text [[#%x,SIZE:]] _start
|
||||
# CHECK-BAT: Function Address: 0x[[#%x,ADDR]]
|
||||
# CHECK-BAT: 0x[[#%x,SIZE]]
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Tests whether llvm-bolt is able to reorder blocks and fix branches
|
||||
# according to the new function layout.
|
||||
## Tests whether llvm-bolt is able to reorder blocks and fix branches
|
||||
## according to the new function layout.
|
||||
|
||||
RUN: yaml2obj %p/Inputs/blarge.yaml &> %t.exe
|
||||
RUN: llvm-bolt %t.exe -o %t.null --data %p/Inputs/blarge.fdata \
|
||||
@ -46,4 +46,3 @@ CHECK: Exec Count : 0
|
||||
CHECK: Predecessors: .Ltmp{{.*}}
|
||||
CHECK: {{.*}}: movq %rax, (%rsi)
|
||||
CHECK: {{.*}}: retq
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
# This checks for an issue with internal calls and BAT (BOLT address
|
||||
# translation). BAT needs to map every output block back to an input
|
||||
# block, but passes that introduce new blocks (such as validate
|
||||
# internal calls) might create new blocks without a mapping to an
|
||||
# input block.
|
||||
## This checks for an issue with internal calls and BAT (BOLT address
|
||||
## translation). BAT needs to map every output block back to an input
|
||||
## block, but passes that introduce new blocks (such as validate
|
||||
## internal calls) might create new blocks without a mapping to an
|
||||
## input block.
|
||||
|
||||
# REQUIRES: x86_64-linux,bolt-runtime
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
# Check new BAT format containing hashes for YAML profile.
|
||||
## Check new BAT format containing hashes for YAML profile.
|
||||
|
||||
RUN: yaml2obj %p/Inputs/blarge_new.yaml &> %t.exe
|
||||
RUN: llvm-bolt %t.exe -o %t.out --pa -p %p/Inputs/blarge_new.preagg.txt \
|
||||
RUN: --reorder-blocks=ext-tsp --split-functions --split-strategy=cdsplit \
|
||||
RUN: --reorder-functions=cdsort --enable-bat --dyno-stats --skip-funcs=main \
|
||||
RUN: 2>&1 | FileCheck --check-prefix WRITE-BAT-CHECK %s
|
||||
# Check that branch with entry in BAT is accounted for.
|
||||
## Check that branch with entry in BAT is accounted for.
|
||||
RUN: perf2bolt %t.out --pa -p %p/Inputs/blarge_new_bat_branchentry.preagg.txt \
|
||||
RUN: -w %t.yaml -o %t.fdata
|
||||
RUN: llvm-bolt %t.exe -data %t.fdata -w %t.yaml-fdata -o %t.null
|
||||
@ -15,7 +15,7 @@ BRANCHENTRY-YAML-CHECK: - name: SolveCubic
|
||||
BRANCHENTRY-YAML-CHECK: bid: 0
|
||||
BRANCHENTRY-YAML-CHECK: hash: 0x700F19D24600000
|
||||
BRANCHENTRY-YAML-CHECK-NEXT: succ: [ { bid: 7, cnt: 1 }
|
||||
# Check that the order is correct between BAT YAML and FDATA->YAML.
|
||||
## Check that the order is correct between BAT YAML and FDATA->YAML.
|
||||
RUN: perf2bolt %t.out --pa -p %p/Inputs/blarge_new_bat_order.preagg.txt \
|
||||
RUN: -w %t.yaml -o %t.fdata
|
||||
RUN: llvm-bolt %t.exe -data %t.fdata -w %t.yaml-fdata -o %t.null
|
||||
@ -26,16 +26,16 @@ ORDER-YAML-CHECK: bid: 3
|
||||
ORDER-YAML-CHECK: hash: 0xDDA1DC5F69F900AC
|
||||
ORDER-YAML-CHECK-NEXT: calls: [ { off: 0x26, fid: [[#]], cnt: 20 } ]
|
||||
ORDER-YAML-CHECK-NEXT: succ: [ { bid: 5, cnt: 7 }
|
||||
# Large profile test
|
||||
## Large profile test
|
||||
RUN: perf2bolt %t.out --pa -p %p/Inputs/blarge_new_bat.preagg.txt -w %t.yaml -o %t.fdata \
|
||||
RUN: 2>&1 | FileCheck --check-prefix READ-BAT-CHECK %s
|
||||
RUN: FileCheck --input-file %t.yaml --check-prefix YAML-BAT-CHECK %s
|
||||
# Check that YAML converted from fdata matches YAML created directly with BAT.
|
||||
## Check that YAML converted from fdata matches YAML created directly with BAT.
|
||||
RUN: llvm-bolt %t.exe -data %t.fdata -w %t.yaml-fdata -o /dev/null \
|
||||
RUN: 2>&1 | FileCheck --check-prefix READ-BAT-FDATA-CHECK %s
|
||||
RUN: FileCheck --input-file %t.yaml-fdata --check-prefix YAML-BAT-CHECK %s
|
||||
|
||||
# Test resulting YAML profile with the original binary (no-stale mode)
|
||||
## Test resulting YAML profile with the original binary (no-stale mode)
|
||||
RUN: llvm-bolt %t.exe -data %t.yaml -o %t.null -dyno-stats 2>&1 \
|
||||
RUN: | FileCheck --check-prefix CHECK-BOLT-YAML %s
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
# Check a common case for BOLT address translation tables. These tables are used
|
||||
# to translate profile activity happening in a bolted binary back to the
|
||||
# original binary, so you can run BOLT again, with updated profile collected
|
||||
# in a production environment that only runs bolted binaries. As BOLT only
|
||||
# takes no-bolt binaries as inputs, this translation is necessary to cover
|
||||
# this scenario.
|
||||
## Check a common case for BOLT address translation tables. These tables are used
|
||||
## to translate profile activity happening in a bolted binary back to the
|
||||
## original binary, so you can run BOLT again, with updated profile collected
|
||||
## in a production environment that only runs bolted binaries. As BOLT only
|
||||
## takes no-bolt binaries as inputs, this translation is necessary to cover
|
||||
## this scenario.
|
||||
#
|
||||
# RUN: yaml2obj %p/Inputs/blarge.yaml &> %t.exe
|
||||
# RUN: llvm-bolt %t.exe -o %t.out --data %p/Inputs/blarge.fdata \
|
||||
@ -11,28 +11,28 @@
|
||||
# RUN: llvm-bat-dump %t.out --dump-all \
|
||||
# RUN: --translate=0x401180 | FileCheck %s --check-prefix=CHECK-BAT-DUMP
|
||||
#
|
||||
# In this test we focus on function usqrt at address 0x401170. This is a
|
||||
# non-reloc binary case, so we don't expect this address to change, that's
|
||||
# why we hardcode its address here. This address also comes hardcoded in the
|
||||
# blarge.yaml input file.
|
||||
#
|
||||
# This is the layout of the function before BOLT reorder blocks:
|
||||
#
|
||||
# BB Layout : .LBB02, .Ltmp39, .LFT1, .Ltmp38, .LFT2
|
||||
#
|
||||
# This is the layout of the function after BOLT reorder blocks:
|
||||
#
|
||||
# BB Layout : .LBB02, .Ltmp38, .Ltmp39, .LFT2, .LFT3
|
||||
#
|
||||
# .Ltmp38 is originally at offset 0x39 but gets moved to 0xc (see full dump
|
||||
# below).
|
||||
#
|
||||
# We check that BAT is able to translate references happening in .Ltmp38 to
|
||||
# its original offset.
|
||||
#
|
||||
## In this test we focus on function usqrt at address 0x401170. This is a
|
||||
## non-reloc binary case, so we don't expect this address to change, that's
|
||||
## why we hardcode its address here. This address also comes hardcoded in the
|
||||
## blarge.yaml input file.
|
||||
##
|
||||
## This is the layout of the function before BOLT reorder blocks:
|
||||
##
|
||||
## BB Layout : .LBB02, .Ltmp39, .LFT1, .Ltmp38, .LFT2
|
||||
##
|
||||
## This is the layout of the function after BOLT reorder blocks:
|
||||
##
|
||||
## BB Layout : .LBB02, .Ltmp38, .Ltmp39, .LFT2, .LFT3
|
||||
##
|
||||
## .Ltmp38 is originally at offset 0x39 but gets moved to 0xc (see full dump
|
||||
## below).
|
||||
##
|
||||
## We check that BAT is able to translate references happening in .Ltmp38 to
|
||||
## its original offset.
|
||||
##
|
||||
|
||||
# This binary has 3 functions with profile, all of them are split, so 6 maps.
|
||||
# BAT creates one map per function fragment.
|
||||
## This binary has 3 functions with profile, all of them are split, so 6 maps.
|
||||
## BAT creates one map per function fragment.
|
||||
#
|
||||
# CHECK: BOLT: 3 out of 7 functions were overwritten.
|
||||
# CHECK: BOLT-INFO: Wrote 6 BAT maps
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Checks that llvm-bolt is able to read data generated by perf2bolt and update
|
||||
# the CFG edges accordingly with absolute number of branches and mispredictions.
|
||||
# Also checks that llvm-bolt disassembler and CFG builder is working properly.
|
||||
## Checks that llvm-bolt is able to read data generated by perf2bolt and update
|
||||
## the CFG edges accordingly with absolute number of branches and mispredictions.
|
||||
## Also checks that llvm-bolt disassembler and CFG builder is working properly.
|
||||
|
||||
RUN: yaml2obj %p/Inputs/blarge.yaml &> %t.exe
|
||||
RUN: llvm-bolt %t.exe -o %t.null --data %p/Inputs/blarge.fdata --print-cfg | FileCheck %s
|
||||
|
@ -1,8 +1,8 @@
|
||||
# This test checks if BOLT can process stripped binaries, where symbol's section
|
||||
# header index is corrupted due to strip tool.
|
||||
## This test checks if BOLT can process stripped binaries, where symbol's section
|
||||
## header index is corrupted due to strip tool.
|
||||
|
||||
# RUN: yaml2obj %p/Inputs/broken_dynsym.yaml -o %t
|
||||
# RUN: llvm-strip -s %t
|
||||
# RUN: llvm-bolt %t -o %t.bolt --allow-stripped | FileCheck %s
|
||||
|
||||
# CHECK-NOT: section index out of bounds
|
||||
# CHECK-NOT: section index out of bounds
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Verifies that llvm-bolt correctly sorts functions by their execution counts.
|
||||
## Verifies that llvm-bolt correctly sorts functions by their execution counts.
|
||||
|
||||
# REQUIRES: x86_64-linux, asserts
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
# Test performs a BB reordering with unsupported
|
||||
# instruction jrcxz. Reordering works correctly with the
|
||||
# follow options: None, Normal or Reverse. Other strategies
|
||||
# are completed with Assertion `isIntN(Size * 8 + 1, Value).
|
||||
# The cause is the distance between BB where one contains
|
||||
# jrcxz instruction.
|
||||
# Example: OpenSSL
|
||||
# https://github.com/openssl/openssl/blob/master/crypto/bn/asm/x86_64-mont5.pl#L3319
|
||||
## Test performs a BB reordering with unsupported
|
||||
## instruction jrcxz. Reordering works correctly with the
|
||||
## follow options: None, Normal or Reverse. Other strategies
|
||||
## are completed with Assertion `isIntN(Size * 8 + 1, Value).
|
||||
## The cause is the distance between BB where one contains
|
||||
## jrcxz instruction.
|
||||
## Example: OpenSSL
|
||||
## https://github.com/openssl/openssl/blob/master/crypto/bn/asm/x86_64-mont5.pl#L3319
|
||||
|
||||
# REQUIRES: system-linux
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Test BinaryContext::calculateEmittedSize's functionality to update
|
||||
# BinaryBasicBlock::OutputAddressRange in place so that the emitted size
|
||||
# of each basic block is given by BinaryBasicBlock::getOutputSize()
|
||||
## Test BinaryContext::calculateEmittedSize's functionality to update
|
||||
## BinaryBasicBlock::OutputAddressRange in place so that the emitted size
|
||||
## of each basic block is given by BinaryBasicBlock::getOutputSize()
|
||||
|
||||
# RUN: llvm-mc --filetype=obj --triple x86_64-unknown-unknown %s -o %t.o
|
||||
# RUN: link_fdata %s %t.o %t.fdata
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Verifies that llvm-bolt ignores function calls to 0.
|
||||
## Verifies that llvm-bolt ignores function calls to 0.
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
|
||||
# RUN: %clang %cflags %t.o -o %t.exe
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Test the control of aggressiveness of 3-way splitting by -call-scale.
|
||||
# When -call-scale=0.0, the tested function is 2-way splitted.
|
||||
# When -call-scale=1.0, the tested function is 3-way splitted with 5 blocks
|
||||
# in warm because of the increased benefit of shortening the call edges.
|
||||
# When -call-scale=1000.0, the tested function is still 3-way splitted with
|
||||
# 5 blocks in warm because cdsplit does not allow hot-warm splitting to break
|
||||
# a fall through branch from a basic block to its most likely successor.
|
||||
## Test the control of aggressiveness of 3-way splitting by -call-scale.
|
||||
## When -call-scale=0.0, the tested function is 2-way splitted.
|
||||
## When -call-scale=1.0, the tested function is 3-way splitted with 5 blocks
|
||||
## in warm because of the increased benefit of shortening the call edges.
|
||||
## When -call-scale=1000.0, the tested function is still 3-way splitted with
|
||||
## 5 blocks in warm because cdsplit does not allow hot-warm splitting to break
|
||||
## a fall through branch from a basic block to its most likely successor.
|
||||
|
||||
# RUN: llvm-mc --filetype=obj --triple x86_64-unknown-unknown %s -o %t.o
|
||||
# RUN: link_fdata %s %t.o %t.fdata
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Test the correctness of section names and function symbol names post cdsplit.
|
||||
# Warm section should have name .text.warm and warm function fragments should
|
||||
# have symbol names ending in warm.
|
||||
## Test the correctness of section names and function symbol names post cdsplit.
|
||||
## Warm section should have name .text.warm and warm function fragments should
|
||||
## have symbol names ending in warm.
|
||||
|
||||
# RUN: llvm-mc --filetype=obj --triple x86_64-unknown-unknown %s -o %t.o
|
||||
# RUN: link_fdata %s %t.o %t.fdata
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Check that llvm-bolt is able to parse DWARF expressions in CFI instructions,
|
||||
# store them in memory and correctly write them back to the output binary.
|
||||
## Check that llvm-bolt is able to parse DWARF expressions in CFI instructions,
|
||||
## store them in memory and correctly write them back to the output binary.
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
|
||||
# RUN: %clang %cflags %t.o -o %t.exe
|
||||
|
@ -1,10 +1,10 @@
|
||||
# Check that llvm-bolt is able to read a file with DWARF Exception CFI
|
||||
# information and annotate this into a disassembled function.
|
||||
## Check that llvm-bolt is able to read a file with DWARF Exception CFI
|
||||
## information and annotate this into a disassembled function.
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
|
||||
# RUN: %clang %cflags %t.o -o %t.exe
|
||||
# RUN: llvm-bolt %t.exe -o %t.null --print-cfg 2>&1 | FileCheck %s
|
||||
#
|
||||
#
|
||||
# CHECK: Binary Function "_Z7catchitv" after building cfg {
|
||||
# CHECK: CFI Instrs : 6
|
||||
# CHECK: }
|
||||
@ -23,7 +23,7 @@
|
||||
main:
|
||||
# FDATA: 0 [unknown] 0 1 main 0 0 0
|
||||
.cfi_startproc
|
||||
.LBB000:
|
||||
.LBB000:
|
||||
pushq %rbp
|
||||
.cfi_def_cfa_offset 16
|
||||
.cfi_offset %rbp, -16
|
||||
@ -49,7 +49,7 @@ main:
|
||||
_Z7catchitv:
|
||||
# FDATA: 0 [unknown] 0 1 _Z7catchitv 0 0 0
|
||||
.cfi_startproc
|
||||
.LBB00:
|
||||
.LBB00:
|
||||
pushq %rbp
|
||||
.cfi_def_cfa_offset 16
|
||||
.cfi_offset %rbp, -16
|
||||
@ -64,18 +64,18 @@ _Z7catchitv:
|
||||
.LBB00_br: jmp .Ltmp0
|
||||
# FDATA: 1 _Z7catchitv #.LBB00_br# 1 _Z7catchitv #.Ltmp0# 0 0
|
||||
|
||||
.LLP0:
|
||||
.LLP0:
|
||||
cmpq $0x1, %rdx
|
||||
.LLP0_br: je .Ltmp1
|
||||
# FDATA: 1 _Z7catchitv #.LLP0_br# 1 _Z7catchitv #.Ltmp1# 0 0
|
||||
# FDATA: 1 _Z7catchitv #.LLP0_br# 1 _Z7catchitv #.LFT0# 0 0
|
||||
|
||||
.LFT0:
|
||||
.LFT0:
|
||||
movq %rax, %rdi
|
||||
.LFT0_br: callq _Unwind_Resume@PLT
|
||||
# FDATA: 1 _Z7catchitv #.LFT0_br# 1 _Z7catchitv #.Ltmp1# 0 0
|
||||
|
||||
.Ltmp1:
|
||||
.Ltmp1:
|
||||
movq %rax, %rdi
|
||||
callq __cxa_begin_catch@PLT
|
||||
movq %rax, -0x18(%rbp)
|
||||
@ -85,7 +85,7 @@ _Z7catchitv:
|
||||
.Ltmp1_br: jmp .Ltmp2
|
||||
# FDATA: 1 _Z7catchitv #.Ltmp1_br# 1 _Z7catchitv #.Ltmp2# 0 0
|
||||
|
||||
.LLP1:
|
||||
.LLP1:
|
||||
movl %edx, %ebx
|
||||
movq %rax, %r12
|
||||
callq __cxa_end_catch@PLT
|
||||
@ -95,11 +95,11 @@ _Z7catchitv:
|
||||
.LLP1_br: callq _Unwind_Resume@PLT
|
||||
# FDATA: 1 _Z7catchitv #.LLP1_br# 1 _Z7catchitv #.Ltmp2# 0 0
|
||||
|
||||
.Ltmp2:
|
||||
.Ltmp2:
|
||||
.Ltmp2_br: callq __cxa_end_catch@PLT
|
||||
# FDATA: 1 _Z7catchitv #.Ltmp2_br# 1 _Z7catchitv #.Ltmp0# 0 0
|
||||
|
||||
.Ltmp0:
|
||||
.Ltmp0:
|
||||
addq $0x10, %rsp
|
||||
popq %rbx
|
||||
popq %r12
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Check that llvm-bolt is able to read a file with DWARF Exception CFI
|
||||
# information and fix CFI information after reordering.
|
||||
## Check that llvm-bolt is able to read a file with DWARF Exception CFI
|
||||
## information and fix CFI information after reordering.
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %s -o %t.o
|
||||
# RUN: llvm-strip --strip-unneeded %t.o
|
||||
|
@ -1,4 +1,4 @@
|
||||
# This test reproduces the issue with a section which ends at >4G address
|
||||
## This test reproduces the issue with a section which ends at >4G address
|
||||
REQUIRES: asserts
|
||||
RUN: split-file %s %t
|
||||
RUN: yaml2obj %t/yaml -o %t.exe --max-size=0
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Check that we don't fail processing a function with conditional tail call and
|
||||
# a fall-through to a next function (result of builtin_unreachable()).
|
||||
## Check that we don't fail processing a function with conditional tail call and
|
||||
## a fall-through to a next function (result of builtin_unreachable()).
|
||||
|
||||
RUN: %clang %cflags %p/Inputs/ctc_and_unreachable.s -o %t.exe -Wl,-q
|
||||
RUN: llvm-bolt %t.exe -o %t --print-after-lowering --print-only=foo 2>&1 | FileCheck %s
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Checks debug fission support in BOLT
|
||||
## Checks debug fission support in BOLT
|
||||
|
||||
# REQUIRES: system-linux
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Checks debug fission support in BOLT
|
||||
## Checks debug fission support in BOLT
|
||||
|
||||
# REQUIRES: system-linux
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Test the double jump removal peephole.
|
||||
## Test the double jump removal peephole.
|
||||
|
||||
# This test has commands that rely on shell capabilities that won't execute
|
||||
# correctly on Windows e.g. subshell execution
|
||||
## This test has commands that rely on shell capabilities that won't execute
|
||||
## correctly on Windows e.g. subshell execution
|
||||
REQUIRES: shell
|
||||
|
||||
RUN: %clang %cflags %p/Inputs/double_jump.cpp -o %t.exe
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections &> file
|
||||
# RUN: cat file | FileCheck --check-prefix=CHECK %s
|
||||
|
||||
# Making sure we handle error returned by visitLocationList correctly.
|
||||
## Making sure we handle error returned by visitLocationList correctly.
|
||||
|
||||
# CHECK: BOLT-WARNING: empty location list detected at
|
||||
# CHECK-NEXT: BOLT-WARNING: empty location list detected at
|
||||
|
@ -1,4 +1,4 @@
|
||||
; Testing that we print out INFO message when binary has split dwarf.
|
||||
;; Testing that we print out INFO message when binary has split dwarf.
|
||||
|
||||
; RUN: mkdir -p %t
|
||||
; RUN: cd %t
|
||||
|
@ -8,7 +8,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This tests checks that DW_AT_high_pc[DW_FORM_ADDR] can be converted to DW_AT_ranges correctly in Dwarf3
|
||||
## This tests checks that DW_AT_high_pc[DW_FORM_ADDR] can be converted to DW_AT_ranges correctly in Dwarf3
|
||||
|
||||
# PRECHECK: version = 0x0003
|
||||
# PRECHECK: DW_AT_low_pc
|
||||
|
@ -7,8 +7,8 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that BOLT handles backward cross CU references for dwarf4
|
||||
# when CUs are have different abbrev tables.
|
||||
## This test checks that BOLT handles backward cross CU references for dwarf4
|
||||
## when CUs are have different abbrev tables.
|
||||
|
||||
# PRECHECK: DW_TAG_compile_unit
|
||||
# PRECHECK: DW_TAG_compile_unit
|
||||
|
@ -7,8 +7,8 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that BOLT handles forward cross CU references for dwarf4
|
||||
# when CUs are have different abbrev tables.
|
||||
## This test checks that BOLT handles forward cross CU references for dwarf4
|
||||
## when CUs are have different abbrev tables.
|
||||
|
||||
# PRECHECK: DW_TAG_compile_unit
|
||||
# PRECHECK: DW_AT_abstract_origin [DW_FORM_ref_addr]
|
||||
|
@ -8,7 +8,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles location list with DWARF5/DWARF4 when order of CUs is not the same as in input.
|
||||
## Tests that BOLT correctly handles location list with DWARF5/DWARF4 when order of CUs is not the same as in input.
|
||||
|
||||
# PRECHECK: version = 0x0005
|
||||
# PRECHECK: version = 0x0004
|
||||
|
@ -7,6 +7,6 @@
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections -v 1 &> log
|
||||
; RUN: cat log | FileCheck %s -check-prefix=BOLT-LOG-CHECK
|
||||
|
||||
; Test check we don't print out a warning in -v 1 when Unit DIE doesn't have low_pc/high_pc
|
||||
;; Test check we don't print out a warning in -v 1 when Unit DIE doesn't have low_pc/high_pc
|
||||
|
||||
; BOLT-LOG-CHECK-NOT: BOLT-ERROR: cannot update ranges for DIE in Unit offset
|
||||
|
@ -12,7 +12,7 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo &> %t/maindwodwo.txt
|
||||
; RUN: cat %t/maindwodwo.txt | FileCheck -check-prefix=BOLT-DWO-MAIN %s
|
||||
|
||||
; Tests that DW_AT_low_pc changes in DW_TAG_GNU_call_site.
|
||||
;; Tests that DW_AT_low_pc changes in DW_TAG_GNU_call_site.
|
||||
|
||||
; PRE-BOLT-DWO-MAIN: version = 0x0004
|
||||
; PRE-BOLT-DWO-MAIN: DW_TAG_GNU_call_site
|
||||
|
@ -10,7 +10,7 @@
|
||||
; RUN: not llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo &> %t/maindwodwo.txt
|
||||
; RUN: cat %t/maindwodwo.txt | FileCheck -check-prefix=BOLT-DWO-MAIN %s
|
||||
|
||||
; Tests that new indices are assigned to DW_OP_GNU_addr_index.
|
||||
;; Tests that new indices are assigned to DW_OP_GNU_addr_index.
|
||||
|
||||
; PRE-BOLT-DWO-MAIN: version = 0x0004
|
||||
; PRE-BOLT-DWO-MAIN: DW_AT_location [DW_FORM_exprloc] (DW_OP_GNU_addr_index 0x0)
|
||||
|
@ -10,8 +10,8 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo | FileCheck --check-prefix=PRECHECK %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
; This test checks that we do not convert low_pc/high_pc to ranges for DW_TAG_inlined_subroutine,
|
||||
; when there is only one output range entry.
|
||||
;; This test checks that we do not convert low_pc/high_pc to ranges for DW_TAG_inlined_subroutine,
|
||||
;; when there is only one output range entry.
|
||||
|
||||
; PRECHECK: DW_TAG_inlined_subroutine
|
||||
; PRECHECK: DW_AT_abstract_origin
|
||||
|
@ -12,7 +12,7 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info helper.dwo | FileCheck -check-prefix=PRE-BOLT-DWO-HELPER %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info helper.dwo.dwo | FileCheck -check-prefix=BOLT-DWO-HELPER %s
|
||||
|
||||
; Testing dwarf4 split dwarf for two CUs. Making sure DW_AT_location [DW_FORM_sec_offset] is updated correctly.
|
||||
;; Testing dwarf4 split dwarf for two CUs. Making sure DW_AT_location [DW_FORM_sec_offset] is updated correctly.
|
||||
|
||||
; PRE-BOLT-DWO-MAIN: version = 0x0004
|
||||
; PRE-BOLT-DWO-MAIN: DW_TAG_formal_parameter [10]
|
||||
|
@ -20,8 +20,8 @@
|
||||
; RUN: not llvm-dwarfdump --show-form --verbose --debug-info helper.dwo.dwo &> helperdwodwo.txt
|
||||
; RUN: cat helperdwodwo.txt | FileCheck -check-prefix=BOLT-DWO-HELPER %s
|
||||
|
||||
; Testing dwarf5 split dwarf for two CUs. Making sure DW_AT_low_pc/DW_AT_high_pc are converted correctly in the binary and in dwo.
|
||||
; Checking that DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx ##) are updated correctly.
|
||||
;; Testing dwarf5 split dwarf for two CUs. Making sure DW_AT_low_pc/DW_AT_high_pc are converted correctly in the binary and in dwo.
|
||||
;; Checking that DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx ##) are updated correctly.
|
||||
|
||||
; PRE-BOLT: version = 0x0004
|
||||
; PRE-BOLT: DW_TAG_compile_unit
|
||||
|
@ -9,8 +9,8 @@
|
||||
; RUN: llvm-dwarfdump --debug-info --verbose --show-form main.dwo.dwo >> log.txt
|
||||
; RUN: cat log.txt | FileCheck -check-prefix=BOLT-MAIN %s
|
||||
|
||||
; Tests whether BOLT handles correctly DW_TAG_inlined_subroutine when DW_AT_low_pc is 0,
|
||||
; and split dwarf is enabled.
|
||||
;; Tests whether BOLT handles correctly DW_TAG_inlined_subroutine when DW_AT_low_pc is 0,
|
||||
;; and split dwarf is enabled.
|
||||
|
||||
; BOLT-MAIN: 0x
|
||||
; BOLT-MAIN: 0x
|
||||
|
@ -11,7 +11,7 @@
|
||||
; RUN: not llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo &> %t/mainddwodwo.txt
|
||||
; RUN: cat %t/mainddwodwo.txt | FileCheck -check-prefix=BOLT-DWO-MAIN %s
|
||||
|
||||
; Tests BOLT handles correctly Skeleton CU which has DW_AT_low_pc/DW_AT_ranges as input.
|
||||
;; Tests that BOLT correctly handles Skeleton CU which has DW_AT_low_pc/DW_AT_ranges as input.
|
||||
|
||||
; BOLT: .debug_ranges
|
||||
; BOLT-NEXT: 00000000 <End of list>
|
||||
|
@ -8,8 +8,8 @@
|
||||
; RUN: llvm-dwarfdump --debug-info main.exe | FileCheck -check-prefix=PRE-BOLT-MAIN %s
|
||||
; RUN: llvm-dwarfdump --debug-info main.exe.bolt | FileCheck -check-prefix=BOLT-MAIN %s
|
||||
|
||||
; Tests whether we add DW_AT_GNU_ranges_base, if it's not present when Skeleton CU has
|
||||
; DW_AT_ranges.
|
||||
;; Tests whether we add DW_AT_GNU_ranges_base, if it's not present when Skeleton CU has
|
||||
;; DW_AT_ranges.
|
||||
|
||||
; PRE-BOLT-MAIN-NOT: DW_AT_GNU_ranges_base
|
||||
; BOLT-MAIN: DW_AT_GNU_ranges_base
|
||||
|
@ -6,8 +6,8 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that we do not convert low_pc/high_pc to ranges for DW_TAG_inlined_subroutine,
|
||||
# when there is only one output range entry.
|
||||
## This test checks that we do not convert low_pc/high_pc to ranges for DW_TAG_inlined_subroutine,
|
||||
## when there is only one output range entry.
|
||||
|
||||
# PRECHECK: DW_TAG_inlined_subroutine
|
||||
# PRECHECK: DW_AT_abstract_origin
|
||||
|
@ -6,10 +6,10 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --debug-types %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# LLD does not de-duplicate COMDAT sections for LTO.
|
||||
# Clang can generate type units with the same hash.
|
||||
# https://discourse.llvm.org/t/dwarf-different-tu-with-the-same-hash/70095
|
||||
# Modified helper.s to have the same TU hash with a different COMDAT signature to test this.
|
||||
## LLD does not de-duplicate COMDAT sections for LTO.
|
||||
## Clang can generate type units with the same hash.
|
||||
## https://discourse.llvm.org/t/dwarf-different-tu-with-the-same-hash/70095
|
||||
## Modified helper.s to have the same TU hash with a different COMDAT signature to test this.
|
||||
|
||||
# POSTCHECK: Type Unit: length = 0x00000055, format = DWARF32, version = 0x0004,
|
||||
# POSTCHECK-SAME: abbr_offset = 0x0000, addr_size = 0x08, name = 'Foo', type_signature = 0x675d23e4f33235f2, type_offset = 0x001e (next unit at 0x00000059)
|
||||
|
@ -10,8 +10,8 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-types main.exe.bolt.dwp | FileCheck -check-prefix=BOLT %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-tu-index main.exe.bolt.dwp | FileCheck -check-prefix=BOLT-DWP-TU-INDEX %s
|
||||
|
||||
; Test input into bolt a .dwo file with TU Index.
|
||||
; Make sure the output .dwp file has a type information.
|
||||
;; Test input into bolt a .dwo file with TU Index.
|
||||
;; Make sure the output .dwp file has a type information.
|
||||
|
||||
; PRE-BOLT: DW_TAG_type_unit
|
||||
; PRE-BOLT: DW_TAG_type_unit
|
||||
|
@ -12,9 +12,9 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-types main.exe.bolt.dwp | FileCheck -check-prefix=BOLT %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-tu-index main.exe.bolt.dwp | FileCheck -check-prefix=BOLT-DWP-TU-INDEX %s
|
||||
|
||||
; Test input into bolt a .dwo file with TU Index.
|
||||
; Test split-dwarf and monolithic TUs.
|
||||
; Make sure the output .dwp file has a type information.
|
||||
;; Test input into bolt a .dwo file with TU Index.
|
||||
;; Test split-dwarf and monolithic TUs.
|
||||
;; Make sure the output .dwp file has a type information.
|
||||
|
||||
; PRE-BOLT: 0x675d23e4f33235f2
|
||||
; PRE-BOLT: DW_TAG_type_unit
|
||||
|
@ -11,8 +11,8 @@
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-types main.dwo.dwo | FileCheck -check-prefix=BOLT %s
|
||||
|
||||
; Test input into bolt a DWP file with TU Index.
|
||||
; Make sure output in the .dwo files has type information.
|
||||
;; Test input into bolt a DWP file with TU Index.
|
||||
;; Make sure output in the .dwo files has type information.
|
||||
|
||||
; PRE-BOLT: DW_TAG_type_unit
|
||||
; PRE-BOLT: DW_TAG_type_unit
|
||||
|
@ -12,8 +12,8 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-types main.exe.bolt.dwp | FileCheck -check-prefix=BOLT %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-tu-index main.exe.bolt.dwp | FileCheck -check-prefix=BOLT-DWP-TU-INDEX %s
|
||||
|
||||
; Test input into bolt a DWP file with TU Index.
|
||||
; Make sure the output .dwp file has a type information.
|
||||
;; Test input into bolt a DWP file with TU Index.
|
||||
;; Make sure the output .dwp file has a type information.
|
||||
|
||||
; PRE-BOLT: DW_TAG_type_unit
|
||||
; PRE-BOLT: DW_TAG_type_unit
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --gdb-index %tgdb.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
|
||||
# POSTCHECK: Version = 8
|
||||
# POSTCHECK: CU list offset = 0x18, has 2 entries
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --gdb-index %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles gdb-index generated by LLD.
|
||||
## Tests that BOLT correctly handles gdb-index generated by LLD.
|
||||
|
||||
# POSTCHECK: Version = 7
|
||||
# POSTCHECK: CU list offset = 0x18, has 2 entries
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: cat %tlog.txt | FileCheck --check-prefix=CHECKBOLT %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=CHECK %s
|
||||
|
||||
# Tests BOLT does not assert when DIE reference is invalid.
|
||||
## Tests BOLT does not assert when DIE reference is invalid.
|
||||
|
||||
# CHECKBOLT: Referenced DIE offsets not in .debug_info
|
||||
# CHECKBOLT-NEXT: 91
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: cat %tlog.txt | FileCheck --check-prefix=CHECKBOLT %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=CHECK %s
|
||||
|
||||
# Tests BOLT does not assert when DIE reference is invalid.
|
||||
## Tests BOLT does not assert when DIE reference is invalid.
|
||||
|
||||
# CHECKBOLT: BOLT-WARNING: [internal-dwarf-error]: could not parse referenced DIE at offset:
|
||||
# CHECKBOLT-NOT: Referenced DIE offsets not in .debug_info
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: cat %tlog.txt | FileCheck --check-prefix=CHECKBOLT %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=CHECK %s
|
||||
|
||||
# Tests BOLT does not assert when DIE reference is invalid.
|
||||
## Tests BOLT does not assert when DIE reference is invalid.
|
||||
|
||||
# CHECKBOLT: BOLT-WARNING: [internal-dwarf-error]: invalid referenced DIE at offset:
|
||||
# CHECKBOLT-NOT: Referenced DIE offsets not in .debug_info
|
||||
|
@ -5,9 +5,9 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that BOLT handles DW_AT_sibling.
|
||||
## This test checks that BOLT handles DW_AT_sibling.
|
||||
|
||||
# The assembly was manually modified to do cross CU reference.
|
||||
## The assembly was manually modified to do cross CU reference.
|
||||
|
||||
# POSTCHECK: version = 0x0004
|
||||
# POSTCHECK: DW_TAG_structure_type [5]
|
||||
|
@ -16,8 +16,8 @@
|
||||
# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000000)
|
||||
|
||||
|
||||
# Testing BOLT handles correctly when size of DW_AT_inlined_subroutine is 0.
|
||||
# In other words DW_AT_high_pc is 0 or DW_AT_low_pc == DW_AT_high_pc.
|
||||
## Testing BOLT handles correctly when size of DW_AT_inlined_subroutine is 0.
|
||||
## In other words DW_AT_high_pc is 0 or DW_AT_low_pc == DW_AT_high_pc.
|
||||
|
||||
# Modified assembly manually to set DW_AT_high_pc to 0.
|
||||
# clang++ -g2 -gdwarf-4 main.cpp -O1 -S -o main4.s
|
||||
|
@ -9,7 +9,7 @@
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.exe.bolt | FileCheck -check-prefix=BOLT %s
|
||||
|
||||
; Testing that there are no asserts/crashes when one of the DWARF4 CUs does not modify .debug_addr
|
||||
;; Testing that there are no asserts/crashes when one of the DWARF4 CUs does not modify .debug_addr
|
||||
|
||||
; BOLT: DW_TAG_compile_unit
|
||||
; BOLT: DW_TAG_compile_unit
|
||||
|
@ -10,7 +10,7 @@
|
||||
# RUN: llvm-bolt maingdb.exe -o maingdb.exe.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --gdb-index maingdb.exe.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles gdb-index generated by GDB with split-dwarf DWARF4.
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB with split-dwarf DWARF4.
|
||||
|
||||
# POSTCHECK: Version = 8
|
||||
# POSTCHECK: CU list offset = 0x18, has 2 entries
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t1.txt
|
||||
# RUN: cat %t1.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks BOLT correctly handles DW_TAG_subprogram with Ranges with multiple entries.
|
||||
## This test checks BOLT correctly handles DW_TAG_subprogram with Ranges with multiple entries.
|
||||
|
||||
# POSTCHECK: _Z7doStuffi>:
|
||||
# POSTCHECK: [[#%.6x,ADDR:]]
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt > %t1.txt
|
||||
# RUN: cat %t1.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks BOLT correctly handles DW_TAG_subprogram with Ranges with single entry, when function was GCed.
|
||||
## This test checks BOLT correctly handles DW_TAG_subprogram with Ranges with single entry, when function was GCed.
|
||||
|
||||
# POSTCHECK: DW_TAG_subprogram
|
||||
# POSTCHECK-NEXT: DW_AT_frame_base
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t1.txt
|
||||
# RUN: cat %t1.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks BOLT correctly handles DW_TAG_subprogram with Ranges with single entry.
|
||||
## This test checks BOLT correctly handles DW_TAG_subprogram with Ranges with single entry.
|
||||
|
||||
# POSTCHECK: _Z7doStuffi>:
|
||||
# POSTCHECK: [[#%.6x,ADDR:]]
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-types %t.bolt | FileCheck --check-prefix=POSTCHECKTU %s
|
||||
|
||||
# Check BOLT handles DWARF4/5 with fdebug-types.
|
||||
## Check BOLT handles DWARF4/5 with fdebug-types.
|
||||
|
||||
# POSTCHECK: version = 0x0005
|
||||
# POSTCHECK: DW_TAG_type_unit
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-types %t.bolt | FileCheck --check-prefix=POSTCHECKTU %s
|
||||
|
||||
# Check BOLT handles DWARF4 with fdebug-types, and DWARF5 without.
|
||||
## Check BOLT handles DWARF4 with fdebug-types, and DWARF5 without.
|
||||
|
||||
# POSTCHECK: version = 0x0004
|
||||
# POSTCHECK: DW_TAG_compile_unit
|
||||
|
@ -5,8 +5,8 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that BOLT handles correctly backward and forward cross CU references
|
||||
# for DWARF4 with -fdebug-types-section
|
||||
## This test checks that BOLT handles correctly backward and forward cross CU references
|
||||
## for DWARF4 with -fdebug-types-section
|
||||
|
||||
# POSTCHECK: version = 0x0004
|
||||
# POSTCHECK: DW_TAG_variable [10]
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-types %t.bolt | FileCheck --check-prefix=POSTCHECKTU %s
|
||||
|
||||
# Check BOLT handles DWARF4/5 with fdebug-types.
|
||||
## Check BOLT handles DWARF4/5 with fdebug-types.
|
||||
|
||||
# POSTCHECK: version = 0x0004
|
||||
# POSTCHECK: DW_TAG_compile_unit [6]
|
||||
|
@ -6,8 +6,8 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --debug-info %t.exe.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that when a binary is bolted if CU is not modified and has DW_AT_addr_base that is shared
|
||||
# after being bolted CUs still share same entry in .debug_addr.
|
||||
## This test checks that when a binary is bolted if CU is not modified and has DW_AT_addr_base that is shared
|
||||
## after being bolted CUs still share same entry in .debug_addr.
|
||||
|
||||
# PRECHECK: DW_AT_addr_base (0x00000008)
|
||||
# PRECHECK: DW_AT_addr_base (0x00000008)
|
||||
|
@ -8,8 +8,8 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=CHECK %s
|
||||
|
||||
# Test checks we correctly handle nullptr returned by getBinaryFunctionContainingAddress for DW_AT_call_pc.
|
||||
# This happens when address is not contained in any function.
|
||||
## Test checks we correctly handle nullptr returned by getBinaryFunctionContainingAddress for DW_AT_call_pc.
|
||||
## This happens when address is not contained in any function.
|
||||
|
||||
# CHECK: DW_AT_call_pc [DW_FORM_addrx]
|
||||
# CHECK-SAME: address = 0x[[#%.16x,ADDR:]]
|
||||
|
@ -11,7 +11,7 @@
|
||||
# RUN: cat %tmain.txt | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: cat %tmainbolt.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Test checks that DW_AT_call_pc address points to a correct address for jmp instruction.
|
||||
## Test checks that DW_AT_call_pc address points to a correct address for jmp instruction.
|
||||
|
||||
# PRECHECK: DW_TAG_call_site [6]
|
||||
# PRECHECK-NEXT: DW_AT_call_origin [DW_FORM_ref4]
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This tests checks that we handle correctly, don't crash, DWARF5 CUs that does not access .debug_addr.
|
||||
## This tests checks that we handle correctly, don't crash, DWARF5 CUs that does not access .debug_addr.
|
||||
|
||||
# PRECHECK: DW_TAG_compile_unit
|
||||
# PRECHECK: DW_AT_addr_base
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-line %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-line %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that .debug_line gets generated correctly when .debug_info is DWARF5, and .debug_line is DWARF4.
|
||||
## This test checks that .debug_line gets generated correctly when .debug_info is DWARF5, and .debug_line is DWARF4.
|
||||
|
||||
# PRECHECK: version: 4
|
||||
# PRECHECK: file_names[ 1]:
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-line %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that BOLT generates correct debug_line_str when one of CU contributions is not modified.
|
||||
## This test checks that BOLT generates correct debug_line_str when one of CU contributions is not modified.
|
||||
|
||||
# POSTCHECK: version: 5
|
||||
# POSTCHECK: include_directories[ 0] = .debug_line_str[{{.*}}] = "/test"
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-line %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-line %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that DWARF5 .debug_line is handled correctly.
|
||||
## This test checks that DWARF5 .debug_line is handled correctly.
|
||||
|
||||
# PRECHECK: version: 5
|
||||
# PRECHECK: include_directories[ 0] = .debug_line_str
|
||||
|
@ -8,7 +8,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This tests checks that re-writing of .debug_loclists is handled correctly.
|
||||
## This tests checks that re-writing of .debug_loclists is handled correctly.
|
||||
|
||||
# PRECHECK: version = 0x0005
|
||||
# PRECHECK: DW_AT_loclists_base [DW_FORM_sec_offset] (0x0000000c)
|
||||
|
@ -12,7 +12,7 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo &> %t/maindwodwo.txt
|
||||
; RUN: cat %t/maindwodwo.txt | FileCheck -check-prefix=BOLT-DWO-MAIN %s
|
||||
|
||||
; Tests that DW_AT_low_pc changes in DW_TAG_call_site.
|
||||
;; Tests that DW_AT_low_pc changes in DW_TAG_call_site.
|
||||
|
||||
; PRE-BOLT-DWO-MAIN: version = 0x0005
|
||||
; PRE-BOLT-DWO-MAIN: DW_TAG_call_site
|
||||
|
@ -10,7 +10,7 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo &> %t/maindwodwo.txt
|
||||
; RUN: cat %t/maindwodwo.txt | FileCheck -check-prefix=BOLT-DWO-MAIN %s
|
||||
|
||||
; Tests that new indices are assigned to DW_OP_GNU_addr_index.
|
||||
;; Tests that new indices are assigned to DW_OP_GNU_addr_index.
|
||||
|
||||
; PRE-BOLT-DWO-MAIN: version = 0x0005
|
||||
; PRE-BOLT-DWO-MAIN: DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx 0x0)
|
||||
|
@ -12,7 +12,7 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.exe.bolt >> addr.txt
|
||||
; RUN: cat addr.txt | FileCheck -check-prefix=BOLT %s
|
||||
|
||||
; Tests we generate range when linker GCs only function used in CU
|
||||
;; Tests we generate range when linker GCs only function used in CU
|
||||
|
||||
; BOLT: Addrs:
|
||||
; BOLT-NEXT: 0x[[#%.16x,ADDR:]]
|
||||
|
@ -12,7 +12,7 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info helper.dwo | FileCheck -check-prefix=PRE-BOLT-DWO-HELPER %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info helper.dwo.dwo | FileCheck -check-prefix=BOLT-DWO-HELPER %s
|
||||
|
||||
; Testing dwarf5 split dwarf for two CUs. Making sure DW_AT_location [DW_FORM_loclistx] is updated correctly.
|
||||
;; Testing dwarf5 split dwarf for two CUs. Making sure DW_AT_location [DW_FORM_loclistx] is updated correctly.
|
||||
|
||||
; PRE-BOLT-DWO-MAIN: version = 0x0005
|
||||
; PRE-BOLT-DWO-MAIN: DW_TAG_formal_parameter [10]
|
||||
|
@ -16,8 +16,8 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info helper.dwo | FileCheck -check-prefix=PRE-BOLT-DWO-HELPER %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info helper.dwo.dwo | FileCheck -check-prefix=BOLT-DWO-HELPER %s
|
||||
|
||||
; Testing dwarf5 split dwarf for two CUs. Making sure DW_AT_low_pc/DW_AT_high_pc are converted correctly in the binary and in dwo.
|
||||
; Checking that DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx ##) are updated correctly.
|
||||
;; Testing dwarf5 split dwarf for two CUs. Making sure DW_AT_low_pc/DW_AT_high_pc are converted correctly in the binary and in dwo.
|
||||
;; Checking that DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx ##) are updated correctly.
|
||||
|
||||
; PRE-BOLT: version = 0x0005
|
||||
; PRE-BOLT: DW_TAG_skeleton_unit
|
||||
|
@ -19,8 +19,8 @@
|
||||
; RUN: cat log.txt | FileCheck -check-prefix=BOLT-PRE %s
|
||||
; RUN: cat logBolt.txt | FileCheck -check-prefix=BOLT-MAIN %s
|
||||
|
||||
; Tests whether BOLT handles correctly DW_TAG_inlined_subroutine when DW_AT_ranges is 0,
|
||||
; and split dwarf is enabled.
|
||||
;; Tests whether BOLT handles correctly DW_TAG_inlined_subroutine when DW_AT_ranges is 0,
|
||||
;; and split dwarf is enabled.
|
||||
|
||||
; BOLT-PRE: Addrs:
|
||||
; BOLT-PRE: 0x0000000000000000
|
||||
|
@ -9,8 +9,8 @@
|
||||
; RUN: llvm-dwarfdump --debug-info --verbose --show-form main.dwo.dwo >> log.txt
|
||||
; RUN: cat log.txt | FileCheck -check-prefix=BOLT-MAIN %s
|
||||
|
||||
; Tests whether BOLT handles correctly DW_TAG_inlined_subroutine when DW_AT_ranges is 0,
|
||||
; and split dwarf is enabled.
|
||||
;; Tests whether BOLT handles correctly DW_TAG_inlined_subroutine when DW_AT_ranges is 0,
|
||||
;; and split dwarf is enabled.
|
||||
|
||||
; BOLT-MAIN: 0x
|
||||
; BOLT-MAIN: 0x
|
||||
|
@ -12,7 +12,7 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo &> %t/mainddwodwo.txt
|
||||
; RUN: cat %t/mainddwodwo.txt | FileCheck -check-prefix=BOLT-DWO-MAIN %s
|
||||
|
||||
; Tests BOLT handles correctly Skeleton CU which has DW_AT_low_pc/DW_AT_ranges as input.
|
||||
;; Tests that BOLT correctly handles Skeleton CU which has DW_AT_low_pc/DW_AT_ranges as input.
|
||||
|
||||
; BOLT: Addrs: [
|
||||
; BOLT-NEXT: 0x[[#%.16x,ADDR1:]]
|
||||
|
@ -13,7 +13,7 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo | FileCheck -check-prefix=PRE-BOLT-DWO-MAIN %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo | FileCheck -check-prefix=BOLT-DWO-MAIN %s
|
||||
|
||||
; Testing dwarf5 mix of split dwarf and monolithic CUs.
|
||||
;; Testing dwarf5 mix of split dwarf and monolithic CUs.
|
||||
|
||||
; PRE-BOLT: version = 0x0005
|
||||
; PRE-BOLT: DW_TAG_skeleton_unit
|
||||
|
@ -14,15 +14,15 @@
|
||||
; RUN: llvm-dwarfdump --debug-info main.exe.bolt >> log
|
||||
; RUN: cat log | FileCheck -check-prefix=BOLT %s
|
||||
|
||||
; Tests that BOLT handles correctly writing out .dwo files to the same directory when input has input where part of path
|
||||
; is in DW_AT_dwo_name and the .dwo file names are the same.
|
||||
;; Tests that BOLT handles correctly writing out .dwo files to the same directory when input has input where part of path
|
||||
;; is in DW_AT_dwo_name and the .dwo file names are the same.
|
||||
|
||||
; BOLT: split.dwo0.dwo
|
||||
; BOLT: split.dwo1.dwo
|
||||
; BOLT: DW_AT_dwo_name ("split.dwo0.dwo")
|
||||
; BOLT: DW_AT_dwo_name ("split.dwo1.dwo")
|
||||
|
||||
; Tests that when --dwarf-output-path is specified, but path do not exist BOLT creates it.
|
||||
;; Tests that when --dwarf-output-path is specified, but path do not exist BOLT creates it.
|
||||
|
||||
; RUN: rm -rf dwo
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --dwarf-output-path=%t/dwo
|
||||
@ -30,8 +30,8 @@
|
||||
; RUN: llvm-dwarfdump --debug-info main.exe.bolt >> log
|
||||
; RUN: cat log | FileCheck -check-prefix=BOLT1 %s
|
||||
|
||||
; Tests that BOLT handles correctly writing out .dwo files to the same directory when input has input where part of path
|
||||
; is in DW_AT_dwo_name and the .dwo file names are the same.
|
||||
;; Tests that BOLT handles correctly writing out .dwo files to the same directory when input has input where part of path
|
||||
;; is in DW_AT_dwo_name and the .dwo file names are the same.
|
||||
|
||||
; BOLT1: split.dwo0.dwo
|
||||
; BOLT1: split.dwo1.dwo
|
||||
|
@ -11,7 +11,7 @@
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 main.dwo.dwo | FileCheck -check-prefix=BOLT-DWO-DWO-MAIN %s
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 helper.dwo.dwo | FileCheck -check-prefix=BOLT-DWO-DWO-HELPER %s
|
||||
|
||||
; Tests that BOLT correctly handles DWARF5 DWP file as input. Output has correct CU, and all the type units are written out.
|
||||
;; Tests that BOLT correctly handles DWARF5 DWP file as input. Output has correct CU, and all the type units are written out.
|
||||
|
||||
; BOLT-DWO-DWO-MAIN: debug_info.dwo
|
||||
; BOLT-DWO-DWO-MAIN-NEXT: type_signature = 0x49dc260088be7e56
|
||||
|
@ -6,8 +6,8 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that we do not convert low_pc/high_pc to ranges for DW_TAG_inlined_subroutine,
|
||||
# when there is only one output range entry.
|
||||
## This test checks that we do not convert low_pc/high_pc to ranges for DW_TAG_inlined_subroutine,
|
||||
## when there is only one output range entry.
|
||||
|
||||
# PRECHECK: DW_TAG_inlined_subroutine
|
||||
# PRECHECK: DW_AT_abstract_origin
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --gdb-index %tgdb.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
|
||||
# POSTCHECK: Version = 8
|
||||
# POSTCHECK: CU list offset = 0x18, has 2 entries
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --gdb-index %tgdb.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
|
||||
# POSTCHECK: Version = 8
|
||||
# POSTCHECK: CU list offset = 0x18, has 3 entries
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --gdb-index %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles gdb-index generated by LLD.
|
||||
## Tests that BOLT correctly handles gdb-index generated by LLD.
|
||||
|
||||
# POSTCHECK: Version = 7
|
||||
# POSTCHECK: CU list offset = 0x18, has 2 entries
|
||||
|
@ -15,7 +15,7 @@
|
||||
# RUN: FileCheck --check-prefix=CHECK-LINE %s --input-file %t_line.txt
|
||||
|
||||
|
||||
# Check BOLT handles monolithic mix of DWARF4 and DWARF5.
|
||||
## Check BOLT handles monolithic mix of DWARF4 and DWARF5.
|
||||
|
||||
# main.cpp
|
||||
# PRECHECK: version = 0x0005
|
||||
|
@ -7,8 +7,8 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-types %t.bolt | FileCheck --check-prefix=POSTCHECKTU %s
|
||||
|
||||
# This test checks that BOLT handles correctly backward and forward cross CU references
|
||||
# for DWARF5 and DWARF4 with -fdebug-types-section
|
||||
## This test checks that BOLT handles correctly backward and forward cross CU references
|
||||
## for DWARF5 and DWARF4 with -fdebug-types-section
|
||||
|
||||
# POSTCHECK: version = 0x0005
|
||||
# POSTCHECK: DW_TAG_type_unit
|
||||
|
@ -13,9 +13,9 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-tu-index main.exe.bolt.dwp | FileCheck -check-prefix=BOLT-DWP-TU-INDEX %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-cu-index main.exe.bolt.dwp | FileCheck -check-prefix=BOLT-DWP-CU-INDEX %s
|
||||
|
||||
; Test input into bolt a .dwo file with TU Index.
|
||||
; Test split-dwarf and monolithic TUs.
|
||||
; Make sure the output .dwp file has a type and cu information.
|
||||
;; Test input into bolt a .dwo file with TU Index.
|
||||
;; Test split-dwarf and monolithic TUs.
|
||||
;; Make sure the output .dwp file has a type and cu information.
|
||||
|
||||
; PRE-BOLT: Type Unit
|
||||
; PRE-BOLT-SAME: 0x675d23e4f33235f2
|
||||
|
@ -13,8 +13,8 @@
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo | FileCheck -check-prefix=BOLT %s
|
||||
|
||||
; Test input into bolt a DWP file with TU Index.
|
||||
; Make sure output in the .dwo files has type information.
|
||||
;; Test input into bolt a DWP file with TU Index.
|
||||
;; Make sure output in the .dwo files has type information.
|
||||
|
||||
; PRE-BOLT: DW_TAG_type_unit
|
||||
; PRE-BOLT: DW_TAG_type_unit
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --gdb-index %tgdb.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
|
||||
# POSTCHECK: Version = 8
|
||||
# POSTCHECK: CU list offset = 0x18, has 2 entries
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --gdb-index %tgdb.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
|
||||
# POSTCHECK: Version = 8
|
||||
# POSTCHECK: CU list offset = 0x18, has 4 entries
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --gdb-index %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Tests that BOLT correctly handles gdb-index generated by LLD.
|
||||
## Tests that BOLT correctly handles gdb-index generated by LLD.
|
||||
|
||||
# POSTCHECK: Version = 7
|
||||
# POSTCHECK: CU list offset = 0x18, has 2 entries
|
||||
|
@ -12,8 +12,8 @@
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info mainlocadddrx.dwo | FileCheck -check-prefix=PRE-BOLT-DWO %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info mainlocadddrx.dwo.dwo | FileCheck -check-prefix=BOLT-DWO %s
|
||||
|
||||
; Testing dwarf5 split dwarf. Making sure DW_AT_low_pc/DW_AT_high_pc are converted correctly in the binary and in dwo.
|
||||
; Checking that DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx 0x0) is updated correctly.
|
||||
;; Testing dwarf5 split dwarf. Making sure DW_AT_low_pc/DW_AT_high_pc are converted correctly in the binary and in dwo.
|
||||
;; Checking that DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx 0x0) is updated correctly.
|
||||
|
||||
; PRE-BOLT: version = 0x0005
|
||||
; PRE-BOLT: DW_TAG_skeleton_unit
|
||||
|
@ -6,8 +6,8 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This test checks that we correctly encode new index into .debug_addr section
|
||||
# from DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx 0x#)
|
||||
## This test checks that we correctly encode new index into .debug_addr section
|
||||
## from DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx 0x#)
|
||||
|
||||
# PRECHECK: version = 0x0005
|
||||
# PRECHECK: DW_TAG_variable
|
||||
|
@ -6,7 +6,7 @@
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=CHECK %s
|
||||
|
||||
# This test checks that we update relative DIE references with DW_OP_convert that are in locexpr.
|
||||
## This test checks that we update relative DIE references with DW_OP_convert that are in locexpr.
|
||||
|
||||
# CHECK: version = 0x0005
|
||||
# CHECK: DW_TAG_variable
|
||||
|
@ -9,7 +9,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Checks we can handle DWARF5 CU with DWARF4 DW_AT_location access pattern.
|
||||
## Checks we can handle DWARF5 CU with DWARF4 DW_AT_location access pattern.
|
||||
|
||||
# PRECHECK: DW_TAG_compile_unit
|
||||
# PRECHECK: DW_TAG_variable [5]
|
||||
|
@ -8,8 +8,8 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This tests checks that DW_AT_low_pc/DW_AT_high_pc is converted to DW_AT_low_pc/DW_AT_ranges.
|
||||
# Checks that DW_AT_rnglists_base is inserted, and that correct address is used.
|
||||
## This tests checks that DW_AT_low_pc/DW_AT_high_pc is converted to DW_AT_low_pc/DW_AT_ranges.
|
||||
## Checks that DW_AT_rnglists_base is inserted, and that correct address is used.
|
||||
|
||||
# PRECHECK: version = 0x0005
|
||||
# PRECHECK: DW_AT_low_pc
|
||||
|
@ -21,7 +21,7 @@
|
||||
# CHECK: DW_AT_decl_line [DW_FORM_data1]
|
||||
# CHECK: DW_AT_location [DW_FORM_exprloc] (DW_OP_addrx 0x2, DW_OP_piece 0x4, DW_OP_addrx 0x3, DW_OP_piece 0x4)
|
||||
|
||||
# This test checks that we update DW_AT_location [DW_FORM_exprloc] with multiple DW_OP_addrx.
|
||||
## This test checks that we update DW_AT_location [DW_FORM_exprloc] with multiple DW_OP_addrx.
|
||||
|
||||
# struct pair {int i; int j; };
|
||||
# static pair p;
|
||||
|
@ -9,8 +9,8 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This tests checks that re-writing of .debug_loclists is handled correctly when one of the CUs
|
||||
# doesn't have any DW_AT_location accesses.
|
||||
## This tests checks that re-writing of .debug_loclists is handled correctly when one of the CUs
|
||||
## doesn't have any DW_AT_location accesses.
|
||||
|
||||
# PRECHECK: version = 0x0005
|
||||
# PRECHECK: DW_AT_loclists_base [DW_FORM_sec_offset] (0x0000000c)
|
||||
|
@ -8,7 +8,7 @@
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# This tests conversion for DWARF5 ranges DW_AT_ranges [DW_FORM_sec_offset] to DW_AT_ranges [DW_FORM_rnglistx]
|
||||
## This tests conversion for DWARF5 ranges DW_AT_ranges [DW_FORM_sec_offset] to DW_AT_ranges [DW_FORM_rnglistx]
|
||||
|
||||
# PRECHECK: version = 0x0005
|
||||
# PRECHECK: DW_AT_ranges [DW_FORM_sec_offset]
|
||||
|
@ -11,7 +11,7 @@
|
||||
# RUN: cat %tmain.txt | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: cat %tmainbolt.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
# Test checks that DW_AT_call_return_pc points to an address after the callq instruction.
|
||||
## Test checks that DW_AT_call_return_pc points to an address after the callq instruction.
|
||||
|
||||
# PRECHECK: DW_TAG_call_site [11]
|
||||
# PRECHECK-NEXT: DW_AT_call_origin [DW_FORM_ref4]
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user