File: bb-addr-map-pgo-analysis-map.yaml

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (83 lines) | stat: -rw-r--r-- 2,446 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
## 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: 02072000 00000000 0000010B 010203E8
# CHECK-NEXT:     0010: 07E80702 0CEEDDBB F70E0D91 A2C48801
# 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 data.
  - Name: '.llvm_bb_addr_map (1)'
    Type: SHT_LLVM_BB_ADDR_MAP
    Entries:
      - Version: 2
        Feature: 0x7
        BBRanges:
          - BaseAddress: 0x0000000000000020
            BBEntries:
              - ID:            11
                AddressOffset: 0x00000001
                Size:          0x00000002
                Metadata:      0x00000003
    PGOAnalyses:
      - FuncEntryCount: 1000
        PGOBBEntries:
          - BBFreq:        1000
            Successors:
              - ID:        12
                BrProb:    0xeeeeeeee
              - 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: 0xff

--- !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: 0xFF