blob: ac9c8d402b0a6cf53ffeaf5d7442ac5cf7c58996 [file] [edit]
## 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