[llvm] a18d06a - Add support to dsymutil for dumping out new swift5 reflection sections
Shubham Sandeep Rastogi via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 10 13:51:55 PST 2022
Author: Shubham Sandeep Rastogi
Date: 2022-02-10T13:51:46-08:00
New Revision: a18d06a0f8ff2cce09166c814caeff97eefce03f
URL: https://github.com/llvm/llvm-project/commit/a18d06a0f8ff2cce09166c814caeff97eefce03f
DIFF: https://github.com/llvm/llvm-project/commit/a18d06a0f8ff2cce09166c814caeff97eefce03f.diff
LOG: Add support to dsymutil for dumping out new swift5 reflection sections
This change adds support for dsymutil to be able to dump out the new swift5 reflection sections called swift5_proto and swift5_protos. The test is also updated to check for this.
Differential Revision: https://reviews.llvm.org/D119310
Added:
Modified:
llvm/include/llvm/BinaryFormat/Swift.def
llvm/test/tools/dsymutil/Inputs/reflection_metadata.yaml
llvm/test/tools/dsymutil/X86/reflection-dump.test
Removed:
################################################################################
diff --git a/llvm/include/llvm/BinaryFormat/Swift.def b/llvm/include/llvm/BinaryFormat/Swift.def
index 6160e2551432..4ec432001283 100644
--- a/llvm/include/llvm/BinaryFormat/Swift.def
+++ b/llvm/include/llvm/BinaryFormat/Swift.def
@@ -24,3 +24,7 @@ HANDLE_SWIFT_SECTION(builtin, "__swift5_builtin", "swift5_builtin", ".sw5bltn")
HANDLE_SWIFT_SECTION(capture, "__swift5_capture", "swift5_capture", ".sw5cptr")
HANDLE_SWIFT_SECTION(typeref, "__swift5_typeref", "swift5_typeref", ".sw5tyrf")
HANDLE_SWIFT_SECTION(reflstr, "__swift5_reflstr", "swift5_reflstr", ".sw5rfst")
+HANDLE_SWIFT_SECTION(conform, "__swift5_proto", "swift5_protocol_confromances",
+ ".sw5prtc$B")
+HANDLE_SWIFT_SECTION(protocs, "__swift5_protos", "swift5_protocols",
+ ".sw5prt$B")
diff --git a/llvm/test/tools/dsymutil/Inputs/reflection_metadata.yaml b/llvm/test/tools/dsymutil/Inputs/reflection_metadata.yaml
index b2179a23bf28..791b914eaf73 100644
--- a/llvm/test/tools/dsymutil/Inputs/reflection_metadata.yaml
+++ b/llvm/test/tools/dsymutil/Inputs/reflection_metadata.yaml
@@ -16,12 +16,12 @@ FileHeader:
cpusubtype: 0x3
filetype: 0x1
ncmds: 8
- sizeofcmds: 2800
+ sizeofcmds: 2960
flags: 0x2000
reserved: 0x0
LoadCommands:
- cmd: LC_SEGMENT_64
- cmdsize: 2552
+ cmdsize: 2712
segname: ''
vmaddr: 0
vmsize: 21352
@@ -29,14 +29,14 @@ LoadCommands:
filesize: 20967
maxprot: 7
initprot: 7
- nsects: 31
+ nsects: 33
flags: 0
Sections:
- sectname: __text
segname: __TEXT
addr: 0x0
size: 4571
- offset: 0xB10
+ offset: 0xBB0
align: 4
reloff: 0x5CF8
nreloc: 74
@@ -56,7 +56,7 @@ LoadCommands:
segname: __TEXT
addr: 0x11DC
size: 117
- offset: 0x1CEC
+ offset: 0x1D8C
align: 1
reloff: 0x5F48
nreloc: 22
@@ -77,7 +77,7 @@ LoadCommands:
segname: __TEXT
addr: 0x1254
size: 24
- offset: 0x1D64
+ offset: 0x1E04
align: 2
reloff: 0x5FF8
nreloc: 6
@@ -98,7 +98,7 @@ LoadCommands:
segname: __TEXT
addr: 0x17D8
size: 37
- offset: 0x22E8
+ offset: 0x2388
align: 0
reloff: 0x0
nreloc: 0
@@ -110,7 +110,7 @@ LoadCommands:
segname: __TEXT
addr: 0x1800
size: 24
- offset: 0x2310
+ offset: 0x23B0
align: 2
reloff: 0x6530
nreloc: 8
@@ -131,7 +131,7 @@ LoadCommands:
segname: __TEXT
addr: 0x1818
size: 260
- offset: 0x2328
+ offset: 0x23C8
align: 2
reloff: 0x6570
nreloc: 60
@@ -152,7 +152,7 @@ LoadCommands:
segname: __TEXT
addr: 0x1AC8
size: 20
- offset: 0x25D8
+ offset: 0x2678
align: 2
reloff: 0x67F8
nreloc: 2
@@ -169,11 +169,35 @@ LoadCommands:
type: 5
scattered: false
value: 0
+ - sectname: __swift5_proto
+ segname: __TEXT
+ addr: 0x1AEC
+ size: 10
+ offset: 0x269C
+ align: 2
+ reloff: 0x0
+ nreloc: 0
+ flags: 0x10000000
+ reserved1: 0x0
+ reserved2: 0x0
+ content: 41424344454647484950
+ - sectname: __swift5_protos
+ segname: __TEXT
+ addr: 0x1AF8
+ size: 10
+ offset: 0x26C0
+ align: 2
+ reloff: 0x0
+ nreloc: 0
+ flags: 0x10000000
+ reserved1: 0x0
+ reserved2: 0x0
+ content: 51525354555657585960
- sectname: __bss
segname: __DATA
addr: 0x3372
size: 2084
- offset: 0x50B0
+ offset: 0x5150
align: 3
reloff: 0x0
nreloc: 0
diff --git a/llvm/test/tools/dsymutil/X86/reflection-dump.test b/llvm/test/tools/dsymutil/X86/reflection-dump.test
index 90e63968331c..f3daa75adbb6 100644
--- a/llvm/test/tools/dsymutil/X86/reflection-dump.test
+++ b/llvm/test/tools/dsymutil/X86/reflection-dump.test
@@ -42,3 +42,9 @@ CHECK-NEXT: 10000e23c f0ffffff ecffffff ........
CHECK: Contents of section __DWARF,__swift5_builtin:
CHECK-NEXT: 10000e244 00000000 09000000 08000100 10000000 ................
CHECK-NEXT: 10000e254 fe000000 ....
+
+CHECK: Contents of section __DWARF,__swift5_proto:
+CHECK-NEXT: 10000e258 41424344 45464748 4950 ABCDEFGHIP
+
+CHECK: Contents of section __DWARF,__swift5_protos:
+CHECK-NEXT: 10000e264 51525354 55565758 5960 QRSTUVWXY`
More information about the llvm-commits
mailing list