brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 9082a8b Raw
105 lines · plain
1; REQUIRES: x86_64-linux2; RUN: rm -rf %t3; RUN: mkdir %t4; RUN: cd %t5; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-inlined-subroutine-gc-sections-range-main.s \6; RUN: -split-dwarf-file=main.dwo -o main.o7; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-inlined-subroutine-gc-sections-range-helper.s \8; RUN: -split-dwarf-file=helper.dwo -o helper.o9; RUN: %clang -fuse-ld=lld -Wl,-gc-sections -Wl,-q -gdwarf-5 -gsplit-dwarf=split main.o helper.o -o main.exe10; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections11; RUN: llvm-dwarfdump --debug-addr main.exe > log.txt12; RUN: llvm-dwarfdump --debug-rnglists --verbose --show-form main.dwo >> log.txt13; RUN: llvm-dwarfdump --debug-info --verbose --show-form main.dwo >> log.txt14; RUN: llvm-dwarfdump --debug-rnglists --verbose --show-form helper.dwo >> log.txt15; RUN: llvm-dwarfdump --debug-info --verbose --show-form helper.dwo >> log.txt16; RUN: llvm-dwarfdump --debug-addr main.exe.bolt > logBolt.txt17; RUN: llvm-dwarfdump --debug-info --verbose --show-form main.dwo.dwo >> logBolt.txt18; RUN: llvm-dwarfdump --debug-info --verbose --show-form helper.dwo.dwo >> logBolt.txt19; RUN: cat log.txt | FileCheck -check-prefix=BOLT-PRE %s20; RUN: cat logBolt.txt | FileCheck -check-prefix=BOLT-MAIN %s21 22;; Tests whether BOLT handles correctly DW_TAG_inlined_subroutine when DW_AT_ranges is 0,23;; and split dwarf is enabled.24 25; BOLT-PRE: Addrs:26; BOLT-PRE: 0x000000000000000027; BOLT-PRE: 0x000000000000000028; BOLT-PRE-NOT: 0x000000000000000029; BOLT-PRE: Addrs:30; BOLT-PRE: 0x000000000000000031; BOLT-PRE: 0x000000000000000032; BOLT-PRE: 0x000000000000000033 34; main.dwo35; BOLT-PRE: [DW_RLE_base_addressx]:  0x000000000000000236; BOLT-PRE: [DW_RLE_offset_pair  ]:  0x0000000000000018, 0x000000000000002d => [0x000000000000001a, 0x000000000000002f)37; BOLT-PRE: [DW_RLE_end_of_list  ]38; BOLT-PRE: [DW_RLE_base_addressx]:  0x000000000000000239; BOLT-PRE: [DW_RLE_offset_pair  ]:  0x0000000000000033, 0x0000000000000042 => [0x0000000000000035, 0x0000000000000044)40; BOLT-PRE: [DW_RLE_end_of_list  ]41; BOLT-PRE: DW_TAG_inlined_subroutine [9] * (0x0000006c)42; BOLT-PRE: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0044 => {0x00000044} "_Z7doStuffi")43; BOLT-PRE: DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x0) rangelist = 0x0000001444; BOLT-PRE:   [0x000000000000001a, 0x000000000000002f))45; BOLT-PRE: DW_TAG_inlined_subroutine [9] * (0x0000006c)46; BOLT-PRE: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x005a => {0x0000005a} "_Z11doStuffSamei")47; BOLT-PRE: DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x1) rangelist = 0x0000001a48; BOLT-PRE:   [0x0000000000000035, 0x0000000000000044))49 50; helper.dwo51; BOLT-PRE: [DW_RLE_base_addressx]:  0x000000000000000252; BOLT-PRE: [DW_RLE_offset_pair  ]:  0x000000000000000d, 0x000000000000001a => [0x000000000000000f, 0x000000000000001c)53; BOLT-PRE: [DW_RLE_end_of_list  ]54; BOLT-PRE: [DW_RLE_base_addressx]:  0x000000000000000255; BOLT-PRE: [DW_RLE_offset_pair  ]:  0x0000000000000020, 0x000000000000002d => [0x0000000000000022, 0x000000000000002f)56; BOLT-PRE: [DW_RLE_end_of_list  ]57; BOLT-PRE: DW_TAG_inlined_subroutine [11] * (0x0000008c)58; BOLT-PRE: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0054 => {0x00000054} "_Z12doStuff2Samei")59; BOLT-PRE: DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x0) rangelist = 0x0000001460; BOLT-PRE:   [0x000000000000000f, 0x000000000000001c))61; BOLT-PRE: DW_TAG_inlined_subroutine [11] * (0x0000008c)62; BOLT-PRE: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0072 => {0x00000072} "_Z8doStuff2i")63; BOLT-PRE: DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x1) rangelist = 0x0000001a64; BOLT-PRE:   [0x0000000000000022, 0x000000000000002f))65 66; BOLT-MAIN: Addrs:67; BOLT-MAIN: 0x000000000000000068; BOLT-MAIN-NOT: 0x000000000000000069; BOLT-MAIN-NOT: 0x000000000000000070; BOLT-MAIN-NOT: 0x000000000000000071; BOLT-MAIN: Addrs:72; BOLT-MAIN: 0x000000000000000073 74; main.dwo.dwo75; BOLT-MAIN: DW_TAG_inlined_subroutine76; BOLT-MAIN: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0044 => {0x00000044} "_Z7doStuffi")77; BOLT-MAIN: DW_AT_call_file78; BOLT-MAIN: DW_AT_call_line79; BOLT-MAIN: DW_AT_call_column80; BOLT-MAIN: DW_AT_low_pc [DW_FORM_addrx]  (indexed (00000002) address = <unresolved>)81; BOLT-MAIN: DW_AT_high_pc [DW_FORM_data4] (0x00000015)82; BOLT-MAIN: DW_TAG_inlined_subroutine83; BOLT-MAIN: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x005a => {0x0000005a} "_Z11doStuffSamei")84; BOLT-MAIN: DW_AT_call_file85; BOLT-MAIN: DW_AT_call_line86; BOLT-MAIN: DW_AT_call_column87; BOLT-MAIN: DW_AT_low_pc [DW_FORM_addrx]  (indexed (00000003) address = <unresolved>)88; BOLT-MAIN: DW_AT_high_pc [DW_FORM_data4] (0x0000000f)89 90; helper.dwo.dwo91; BOLT-MAIN: DW_TAG_inlined_subroutine92; BOLT-MAIN: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0054 => {0x00000054} "_Z12doStuff2Samei")93; BOLT-MAIN: DW_AT_call_file94; BOLT-MAIN: DW_AT_call_line95; BOLT-MAIN: DW_AT_call_column96; BOLT-MAIN: DW_AT_low_pc [DW_FORM_addrx]  (indexed (00000000) address = <unresolved>)97; BOLT-MAIN: DW_AT_high_pc [DW_FORM_data4] (0x0000001a)98; BOLT-MAIN: DW_TAG_inlined_subroutine99; BOLT-MAIN: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0072 => {0x00000072} "_Z8doStuff2i")100; BOLT-MAIN: DW_AT_call_file101; BOLT-MAIN: DW_AT_call_line102; BOLT-MAIN: DW_AT_call_column103; BOLT-MAIN: DW_AT_low_pc [DW_FORM_addrx]  (indexed (00000000) address = <unresolved>)104; BOLT-MAIN: DW_AT_high_pc [DW_FORM_data4] (0x0000002d)105