[clang] [lld] [llvm] [SHT_LLVM_BB_ADDR_MAP] Allow basic-block-sections and labels be used together by decoupling the handling of the two features. (PR #74128)
Rahman Lavaee via cfe-commits
cfe-commits at lists.llvm.org
Thu Feb 1 11:49:40 PST 2024
================
@@ -73,68 +83,89 @@ FileHeader:
Sections:
- Name: .text.foo
Type: SHT_PROGBITS
- Address: [[FOO_ADDR]]
+ Address: 0x4000
Flags: [SHF_ALLOC, SHF_EXECINSTR]
- Content: '503b0505200000907d02ebf5c3'
+ Content: '503b0505300000907d08ebf50f8dee1f0000c3'
- Name: .text.bar
Type: SHT_PROGBITS
- Address: [[BAR_ADDR]]
+ Address: 0x5000
Flags: [SHF_ALLOC, SHF_EXECINSTR]
Content: '5089d0740231f6e8f4ffffffc3'
+ - Name: .text.split
+ Type: SHT_PROGBITS
+ Address: 0x6000
+ Flags: [SHF_ALLOC, SHF_EXECINSTR]
+ Content: 'c3'
- Name: .data
Type: SHT_PROGBITS
Flags: [SHF_ALLOC, SHF_WRITE]
- Address: 0x6000
+ Address: 0x7000
- Name: .llvm_bb_addr_map.foo
Type: SHT_LLVM_BB_ADDR_MAP
Link: .text.foo
Entries:
- Version: 2
- Address: [[FOO_ADDR]]
- BBEntries:
- - ID: 3
- AddressOffset: 0x0
- Size: 0x1
- Metadata: 0x1
- - ID: 1
- AddressOffset: 0x0
- Size: 0x6
- Metadata: 0x0
- - ID: 2
- AddressOffset: 0x1
- Size: 0x4
- Metadata: 0x0
- - ID: 5
- AddressOffset: 0x0
- Size: 0x1
- Metadata: 0x2
+ Feature: 0x8
+ BBRanges:
+ - BaseAddress: 0x4000
+ BBEntries:
+ - ID: 3
+ AddressOffset: 0x0
----------------
rlavaee wrote:
Starting from version 2, `AddressOffset` in yaml is relative to the end of the previous block. This reduces the size of the section since we are using ULEB128 to encode them. When decoded Address is properly computed.
https://github.com/llvm/llvm-project/pull/74128
More information about the cfe-commits
mailing list