| ## Check how yaml2obj produces PGO Analysis Map in .llvm_bb_addr_map section. |
| |
| # RUN: yaml2obj --docnum=1 %s -o %t1 |
| # RUN: llvm-readobj --sections --section-data %t1 | FileCheck %s |
| |
| # Case 4: Specify Entries. |
| # CHECK: Name: .llvm_bb_addr_map (1) |
| # CHECK: SectionData ( |
| # CHECK-NEXT: 0000: 02872000 00000000 0000010B 010203E8 |
| # CHECK-NEXT: 0010: 07E80764 020CEEDD BBF70E28 0D91A2C4 |
| # CHECK-NEXT: 0020: 880100 |
| # CHECK-NEXT: ) |
| |
| # Case 7: Not including a field which is enabled in feature doesn't emit value |
| # CHECK: Name: .llvm_bb_addr_map (1) |
| # CHECK: SectionData ( |
| # CHECK-NEXT: 0000: 02012000 00000000 0000020D 010203 | |
| # CHECK-NEXT: ) |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Sections: |
| |
| ## Test the following cases: |
| |
| ## 1) We can produce an .llvm_bb_addr_map section from a description with |
| ## Entries and PGO Analysis and Post Link data. |
| - Name: '.llvm_bb_addr_map (1)' |
| Type: SHT_LLVM_BB_ADDR_MAP |
| Entries: |
| - Version: 2 |
| Feature: 0x87 |
| BBRanges: |
| - BaseAddress: 0x0000000000000020 |
| BBEntries: |
| - ID: 11 |
| AddressOffset: 0x00000001 |
| Size: 0x00000002 |
| Metadata: 0x00000003 |
| PGOAnalyses: |
| - FuncEntryCount: 1000 |
| PGOBBEntries: |
| - BBFreq: 1000 |
| PostLinkBBFreq: 100 |
| Successors: |
| - ID: 12 |
| BrProb: 0xeeeeeeee |
| PostLinkBrFreq: 40 |
| - ID: 13 |
| BrProb: 0x11111111 |
| |
| ## 2) According to feature we have FuncEntryCount but none is provided in yaml |
| - Name: '.llvm_bb_addr_map (2)' |
| Type: SHT_LLVM_BB_ADDR_MAP |
| Entries: |
| - Version: 2 |
| Feature: 0x1 |
| BBRanges: |
| - BaseAddress: 0x0000000000000020 |
| NumBlocks: 2 |
| BBEntries: |
| - ID: 13 |
| AddressOffset: 0x00000001 |
| Size: 0x00000002 |
| Metadata: 0x00000003 |
| |
| ## Check that yaml2obj generates a warning when we use unsupported feature. |
| # RUN: yaml2obj --docnum=2 %s 2>&1 | FileCheck %s --check-prefix=INVALID-FEATURE |
| # INVALID-FEATURE: warning: invalid encoding for BBAddrMap::Features: 0x100 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Sections: |
| - Name: '.llvm_bb_addr_map' |
| Type: SHT_LLVM_BB_ADDR_MAP |
| Entries: |
| - Version: 2 |
| ## Specify unsupported feature |
| Feature: 0x100 |