86 lines · yaml
1## Check how yaml2obj produces PGO Analysis Map in .llvm_bb_addr_map section.2 3# RUN: yaml2obj --docnum=1 %s -o %t14# RUN: llvm-readobj --sections --section-data %t1 | FileCheck %s5 6# Case 4: Specify Entries.7# CHECK: Name: .llvm_bb_addr_map (1)8# CHECK: SectionData (9# CHECK-NEXT: 0000: 02872000 00000000 0000010B 010203E810# CHECK-NEXT: 0010: 07E80764 020CEEDD BBF70E28 0D91A2C411# CHECK-NEXT: 0020: 88010012# CHECK-NEXT: )13 14# Case 7: Not including a field which is enabled in feature doesn't emit value15# CHECK: Name: .llvm_bb_addr_map (1)16# CHECK: SectionData (17# CHECK-NEXT: 0000: 02012000 00000000 0000020D 010203 |18# CHECK-NEXT: )19 20--- !ELF21FileHeader:22 Class: ELFCLASS6423 Data: ELFDATA2LSB24 Type: ET_EXEC25Sections:26 27## Test the following cases:28 29## 1) We can produce an .llvm_bb_addr_map section from a description with30## Entries and PGO Analysis and Post Link data.31 - Name: '.llvm_bb_addr_map (1)'32 Type: SHT_LLVM_BB_ADDR_MAP33 Entries:34 - Version: 235 Feature: 0x8736 BBRanges:37 - BaseAddress: 0x000000000000002038 BBEntries:39 - ID: 1140 AddressOffset: 0x0000000141 Size: 0x0000000242 Metadata: 0x0000000343 PGOAnalyses:44 - FuncEntryCount: 100045 PGOBBEntries:46 - BBFreq: 100047 PostLinkBBFreq: 10048 Successors:49 - ID: 1250 BrProb: 0xeeeeeeee51 PostLinkBrFreq: 4052 - ID: 1353 BrProb: 0x1111111154 55## 2) According to feature we have FuncEntryCount but none is provided in yaml56 - Name: '.llvm_bb_addr_map (2)'57 Type: SHT_LLVM_BB_ADDR_MAP58 Entries:59 - Version: 260 Feature: 0x161 BBRanges:62 - BaseAddress: 0x000000000000002063 NumBlocks: 264 BBEntries:65 - ID: 1366 AddressOffset: 0x0000000167 Size: 0x0000000268 Metadata: 0x0000000369 70## Check that yaml2obj generates a warning when we use unsupported feature.71# RUN: yaml2obj --docnum=2 %s 2>&1 | FileCheck %s --check-prefix=INVALID-FEATURE72# INVALID-FEATURE: warning: invalid encoding for BBAddrMap::Features: 0x10073 74--- !ELF75FileHeader:76 Class: ELFCLASS6477 Data: ELFDATA2LSB78 Type: ET_EXEC79Sections:80 - Name: '.llvm_bb_addr_map'81 Type: SHT_LLVM_BB_ADDR_MAP82 Entries:83 - Version: 284## Specify unsupported feature85 Feature: 0x10086