Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[PR] Fix update-debug-sections for AArch64
Summary: This patch adds AArch64 relocations handling in case updating of debug sections is enabled Elvina Yakubova, Advanced Software Technology Lab, Huawei (cherry picked from FBD33077609)
- Loading branch information
1 parent
283a877
commit 4a4045f
Showing
9 changed files
with
91 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# 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 -g %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: 0x0000000b: DW_TAG_compile_unit | ||
CHECK-NEXT: DW_AT_stmt_list (0x00000000) | ||
CHECK-NEXT: DW_AT_low_pc (0x0000000000000000) | ||
CHECK-NEXT: DW_AT_ranges | ||
CHECK-NEXT: [0x0000000000[[#%x,ADDR:]], | ||
CHECK-SAME: 0x0000000000[[#ADDR+4]])) | ||
CHECK-NEXT: DW_AT_name ("{{.*}}/asm_foo.s") | ||
|
||
# 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+4]]) | ||
|
||
# Check line number info was updated | ||
CHECK: 0x0000000000[[#ADDR]] 13 0 1 0 0 is_stmt | ||
CHECK-NEXT: 0x0000000000[[#ADDR+4]] 13 0 1 0 0 is_stmt end_sequence |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Verify that bolt correctly handle AArch64 relocations in case of enabling | ||
# update-debug-sections option. | ||
|
||
RUN: %clang -g %p/../Inputs/asm_foo.s %p/../Inputs/asm_main.c -o %t.exe | ||
RUN: llvm-bolt %t.exe -o %t -update-debug-sections | ||
|
||
CHECK: BOLT-INFO: Target architecture: aarch64 | ||
CHECK-NOT: Reloc num: 10 | ||
CHECK-NOT: unsupported relocation type |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
int main() { | ||
foo(); | ||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters