brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.0 KiB · 645507a Raw
242 lines · yaml
1## Check how obj2yaml produces YAML PGO Analysis Map in .llvm_bb_addr_map.2 3## Check that obj2yaml uses the "Entries" tag to describe an .llvm_bb_addr_map section.4 5# RUN: yaml2obj --docnum=1 %s -o %t16# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=VALID7 8# VALID:      --- !ELF9# VALID-NEXT: FileHeader:10# VALID-NEXT:   Class: ELFCLASS6411# VALID-NEXT:   Data:  ELFDATA2LSB12# VALID-NEXT:   Type:  ET_EXEC13# VALID-NEXT: Sections:14# VALID-NEXT:   - Name: .llvm_bb_addr_map15# VALID-NEXT:     Type: SHT_LLVM_BB_ADDR_MAP16# VALID-NEXT:     Entries:17# VALID-NEXT:       - Version: 218# VALID-NEXT:         Feature: 0x8719## The 'BaseAddress' field is omitted when it's zero.20# VALID-NEXT:         BBRanges:21# VALID-NEXT:           - BBEntries:22# VALID-NEXT:             - ID:            023# VALID-NEXT:               AddressOffset: 0x124# VALID-NEXT:               Size:          0x225# VALID-NEXT:               Metadata:      0x326# VALID-NEXT:             - ID:            227# VALID-NEXT:               AddressOffset: 0x428# VALID-NEXT:               Size:          0x529# VALID-NEXT:               Metadata:      0x630# VALID-NEXT:             - ID:            431# VALID-NEXT:               AddressOffset: 0xFFFFFFFFFFFFFFF732# VALID-NEXT:               Size:          0xFFFFFFFFFFFFFFF833# VALID-NEXT:               Metadata:      0xFFFFFFFFFFFFFFF934# VALID-NEXT:       - Version: 235# VALID-NEXT:         Feature: 0xA36# VALID-NEXT:         BBRanges:37# VALID-NEXT:           - BaseAddress: 0xFFFFFFFFFFFFFF2038# VALID-NEXT:             BBEntries:39# VALID-NEXT:               - ID:            640# VALID-NEXT:                 AddressOffset: 0xA41# VALID-NEXT:                 Size:          0xB42# VALID-NEXT:                 Metadata:      0xC43# VALID-NEXT:     PGOAnalyses:44# VALID-NEXT:       - FuncEntryCount: 10045# VALID-NEXT:         PGOBBEntries:46# VALID-NEXT:           - BBFreq:           10047# VALID-NEXT:             PostLinkBBFreq:   1048# VALID-NEXT:             Successors:49# VALID-NEXT:               - ID:              250# VALID-NEXT:                 BrProb:          0x8000000051# VALID-NEXT:                 PostLinkBrFreq:  752# VALID-NEXT:               - ID:              453# VALID-NEXT:                 BrProb:          0x8000000054# VALID-NEXT:                 PostLinkBrFreq:  055# VALID-NEXT:           - BBFreq:           5056# VALID-NEXT:             PostLinkBBFreq:   057# VALID-NEXT:             Successors:58# VALID-NEXT:               - ID:              459# VALID-NEXT:                 BrProb:          0xFFFFFFFF60# VALID-NEXT:                 PostLinkBrFreq:  061# VALID-NEXT:           - BBFreq:           10062# VALID-NEXT:             PostLinkBBFreq:   363# VALID-NEXT:             Successors:    []64# VALID-NEXT:         PGOBBEntries:65# VALID-NEXT:           - BBFreq:        2066 67--- !ELF68FileHeader:69  Class: ELFCLASS6470  Data:  ELFDATA2LSB71  Type:  ET_EXEC72Sections:73  - Name:   .llvm_bb_addr_map74    Type:   SHT_LLVM_BB_ADDR_MAP75    ShSize: [[SIZE=<none>]]76    Entries:77      - Version: 278        Feature: 0x8779        BBRanges:80          - BaseAddress: 0x081            BBEntries:82              - ID:            083                AddressOffset: 0x184                Size:          0x285                Metadata:      0x386              - ID:            287                AddressOffset: 0x488                Size:          0x589                Metadata:      0x690              - ID:            491                AddressOffset: 0xFFFFFFFFFFFFFFF792                Size:          0xFFFFFFFFFFFFFFF893                Metadata:      0xFFFFFFFFFFFFFFF994      - Version:   295        Feature:   0xA96        BBRanges:97          - BaseAddress:   0xFFFFFFFFFFFFFF2098            BBEntries:99             - ID:            6100               AddressOffset: 0xA101               Size:          0xB102               Metadata:      0xC103    PGOAnalyses:104      - FuncEntryCount: 100105        PGOBBEntries:106          - BBFreq:          100107            PostLinkBBFreq:  10108            Successors:109              - ID:              2110                BrProb:          0x80000000111                PostLinkBrFreq:  7112              - ID:              4113                BrProb:          0x80000000114          - BBFreq:              50115            Successors:116              - ID:              4117                BrProb:          0xFFFFFFFF118          - BBFreq:              100119            PostLinkBBFreq:      3120            Successors: []121      - PGOBBEntries:122          - BBFreq:        20123 124## Check obj2yaml can dump multiple .llvm_bb_addr_map sections.125 126# RUN: yaml2obj --docnum=2 %s -o %t2127# RUN: obj2yaml %t2 | FileCheck %s --check-prefix=MULTI128 129# MULTI:      --- !ELF130# MULTI-NEXT: FileHeader:131# MULTI-NEXT:   Class: ELFCLASS64132# MULTI-NEXT:   Data:  ELFDATA2LSB133# MULTI-NEXT:   Type:  ET_EXEC134# MULTI-NEXT: Sections:135# MULTI-NEXT:   - Name: .llvm_bb_addr_map136# MULTI-NEXT:     Type: SHT_LLVM_BB_ADDR_MAP137# MULTI-NEXT:     Entries:138## Fieldx 'BaseAddress' is omitted when it is zero.139# MULTI-NEXT:       - Version: 0140# MULTI-NEXT:         Feature: 0x3141# MULTI-NEXT:         BBRanges:142# MULTI-NEXT:           - BBEntries:143# MULTI-NEXT:              - ID:            0144# MULTI-NEXT:                AddressOffset: 0x1145# MULTI-NEXT:                Size:          0x2146# MULTI-NEXT:                Metadata:      0x3147# MULTI-NEXT:     PGOAnalyses:148# MULTI-NEXT:       - FuncEntryCount: 0149# MULTI-NEXT:         PGOBBEntries:150# MULTI-NEXT:           - BBFreq: 0151# MULTI-NEXT:   - Name: '.llvm_bb_addr_map (1)'152# MULTI-NEXT:     Type: SHT_LLVM_BB_ADDR_MAP153# MULTI-NEXT:     Entries:154# MULTI-NEXT:       - Version:   0155# MULTI-NEXT:         Feature:   0x1156# MULTI-NEXT:         BBRanges:157# MULTI-NEXT:           - BaseAddress:   0x20158# MULTI-NEXT:             BBEntries: []159# MULTI-NEXT:     PGOAnalyses:160# MULTI-NEXT:       - FuncEntryCount: 0161 162--- !ELF163FileHeader:164  Class: ELFCLASS64165  Data:  ELFDATA2LSB166  Type:  ET_EXEC167Sections:168  - Name: .llvm_bb_addr_map169    Type: SHT_LLVM_BB_ADDR_MAP170    Entries:171## Check that obj2yaml does not emit the 'BaseAddress' and 'Feature' fields when172## they are zero.173      - Version: 0174        Feature: 0x3175        BBRanges:176          - BaseAddress: 0x0177            BBEntries:178              - AddressOffset: 0x1179                Size:          0x2180                Metadata:      0x3181    PGOAnalyses:182      - FuncEntryCount: 0183        PGOBBEntries:184          - BBFreq:        0185  - Name: '.llvm_bb_addr_map (1)'186    Type:  SHT_LLVM_BB_ADDR_MAP187    Entries:188      - Version: 0189        Feature: 0x1190        BBRanges:191          - BaseAddress: 0x20192    PGOAnalyses:193      - FuncEntryCount: 0194 195## Check that obj2yaml uses the "Content" tag to describe an .llvm_bb_addr_map section196## when it can't extract the entries, for example, when the section is truncated.197 198# RUN: yaml2obj --docnum=1 -DSIZE=0x1D %s -o %t3199# RUN: obj2yaml %t3 | FileCheck %s --check-prefixes=TRUNCATED,INVALID200 201# INVALID:           --- !ELF202# INVALID-NEXT:      FileHeader:203# INVALID-NEXT:        Class: ELFCLASS64204# INVALID-NEXT:        Data:  ELFDATA2LSB205# INVALID-NEXT:        Type:  ET_EXEC206# INVALID-NEXT:      Sections:207# INVALID-NEXT:        - Name:    .llvm_bb_addr_map208# INVALID-NEXT:          Type:    SHT_LLVM_BB_ADDR_MAP209# TRUNCATED-NEXT:        Content: {{([[:xdigit:]]{58})}}{{$}}210# TRUNCATED-NEXT:        Content: {{([[:xdigit:]]{58})}}{{$}}211 212## Check that obj2yaml uses the "Content" tag when original YAML does not213## provide a PGO field that was enabled in the feature byte214 215# RUN: yaml2obj --docnum=3 %s -o %t4216# RUN: obj2yaml %t4 | FileCheck %s --check-prefix=MISSING-FEC217 218--- !ELF219FileHeader:220  Class: ELFCLASS64221  Data:  ELFDATA2LSB222  Type:  ET_EXEC223Sections:224  - Name: '.llvm_bb_addr_map'225    Type:  SHT_LLVM_BB_ADDR_MAP226    Entries:227      - Version: 0228        Feature: 0x1229        BBRanges:230          - BaseAddress: 0x20231 232# MISSING-FEC:           --- !ELF233# MISSING-FEC-NEXT:      FileHeader:234# MISSING-FEC-NEXT:        Class: ELFCLASS64235# MISSING-FEC-NEXT:        Data:  ELFDATA2LSB236# MISSING-FEC-NEXT:        Type:  ET_EXEC237# MISSING-FEC-NEXT:      Sections:238# MISSING-FEC-NEXT:        - Name:    .llvm_bb_addr_map239# MISSING-FEC-NEXT:          Type:    SHT_LLVM_BB_ADDR_MAP240# MISSING-FEC-NEXT:          Content: '{{([[:xdigit:]]+)}}'{{$}}241 242