brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.4 KiB · 8e9d227 Raw
246 lines · plain
1## This test checks how llvm-readobj prints the PGO Analysis Map with the2## --bb-addr-map option.3 4## Check 64-bit:5# RUN: yaml2obj %s -DBITS=64 -DADDR=0x999999999 -o %t1.x64.o6# RUN: llvm-readobj %t1.x64.o --bb-addr-map 2>&1 | FileCheck --match-full-lines %s -DADDR=0x999999999 -DFILE=%t1.x64.o --check-prefixes=CHECK,RAW7# RUN: llvm-readobj %t1.x64.o --bb-addr-map --pretty-pgo-analysis-map 2>&1 | FileCheck --match-full-lines %s -DADDR=0x999999999 -DFILE=%t1.x64.o --check-prefixes=CHECK,PRETTY8# RUN: llvm-readelf %t1.x64.o --bb-addr-map | FileCheck %s --check-prefix=GNU9# RUN: llvm-readobj %t1.x64.o --pretty-pgo-analysis-map 2>&1 | FileCheck %s --check-prefix=PRETTY-NO-BAM10 11## Check 32-bit:12# RUN: yaml2obj %s -DBITS=32 -o %t1.x32.o13# RUN: llvm-readobj %t1.x32.o --bb-addr-map 2>&1 | FileCheck --match-full-lines -DADDR=0x11111 %s -DFILE=%t1.x32.o --check-prefixes=CHECK,RAW14# RUN: llvm-readelf %t1.x32.o --bb-addr-map | FileCheck %s --check-prefix=GNU15 16## Check that a malformed section can be handled.17# RUN: yaml2obj %s -DBITS=32 -DSIZE=24 -o %t2.o18# RUN: llvm-readobj %t2.o --bb-addr-map 2>&1 | FileCheck --match-full-lines %s -DOFFSET=0x00000015 -DFILE=%t2.o --check-prefix=TRUNCATED19 20## Check that missing features can be handled.21# RUN: yaml2obj %s -DBITS=32 -DFEATURE=0x2 -o %t3.o22# RUN: llvm-readobj %t3.o --bb-addr-map 2>&1 | FileCheck %s -DFILE=%t3.o --check-prefix=INVALIDFT23 24# CHECK:      BBAddrMap [25# CHECK-NEXT:   Function {26# CHECK-NEXT:     At: [[ADDR]]27# CHECK-NEXT: {{.*}}: warning: '[[FILE]]': could not identify function symbol for address ([[ADDR]]) in SHT_LLVM_BB_ADDR_MAP section with index 328# CHECK-NEXT:     Name: <?>29# CHECK-NEXT:     BB Ranges [30# CHECK-NEXT:       {31# CHECK-NEXT:         Base Address: [[ADDR]]32# CHECK-NEXT:         BB Entries [33# CHECK-NEXT:           {34# CHECK-NEXT:             ID: 035# CHECK-NEXT:             Offset: 0x036# CHECK-NEXT:             Size: 0x137# CHECK-NEXT:             HasReturn: No38# CHECK-NEXT:             HasTailCall: Yes39# CHECK-NEXT:             IsEHPad: No40# CHECK-NEXT:             CanFallThrough: No41# CHECK-NEXT:             HasIndirectBranch: No42# CHECK-NEXT:           }43# CHECK-NEXT:           {44# CHECK-NEXT:             ID: 245# CHECK-NEXT:             Offset: 0x446# CHECK-NEXT:             Size: 0x447# CHECK-NEXT:             HasReturn: Yes48# CHECK-NEXT:             HasTailCall: No49# CHECK-NEXT:             IsEHPad: Yes50# CHECK-NEXT:             CanFallThrough: No51# CHECK-NEXT:             HasIndirectBranch: Yes52# CHECK-NEXT:           }53# CHECK-NEXT:         ]54# CHECK-NEXT:       }55# CHECK-NEXT:     ]56# CHECK-NEXT:     PGO analyses {57# CHECK-NEXT:       FuncEntryCount: 10058# CHECK-NEXT:       PGO BB entries [59# CHECK-NEXT:         {60# RAW-NEXT:             Frequency: 10061# PRETTY-NEXT:          Frequency: 1.062# CHECK-NEXT:           PostLink Frequency: 1063# CHECK-NEXT:           Successors [64# CHECK-NEXT:             {65# CHECK-NEXT:               ID: 266# RAW-NEXT:                 Probability: 0x8000000067# PRETTY-NEXT:              Probability: 0x80000000 / 0x80000000 = 100.00%68# CHECK-NEXT:               PostLink Probability: 769# CHECK-NEXT:             }70# CHECK-NEXT:           ]71# CHECK-NEXT:         }72# CHECK-NEXT:         {73# RAW-NEXT:             Frequency: 10074# PRETTY-NEXT:          Frequency: 1.075# CHECK-NEXT:           PostLink Frequency: 076# CHECK-NEXT:           Successors [77# CHECK-NEXT:           ]78# CHECK-NEXT:         }79# CHECK-NEXT:       ]80# CHECK-NEXT:     }81# CHECK-NEXT:   }82# CHECK-NEXT:   Function {83# CHECK-NEXT:     At: 0x2222284# CHECK-NEXT:     Name: foo85# CHECK-NEXT:     BB Ranges [86# CHECK-NEXT:       {87# CHECK-NEXT:         Base Address: 0x2222288# CHECK-NEXT:         BB Entries [89# CHECK-NEXT:           {90# CHECK-NEXT:             ID: 491# CHECK-NEXT:             Offset: 0x692# CHECK-NEXT:             Size: 0x793# CHECK-NEXT:             HasReturn: No94# CHECK-NEXT:             HasTailCall: No95# CHECK-NEXT:             IsEHPad: No96# CHECK-NEXT:             CanFallThrough: Yes97# CHECK-NEXT:             HasIndirectBranch: No98# CHECK-NEXT:           }99# CHECK-NEXT:         ]100# CHECK-NEXT:       }101# CHECK-NEXT:     ]102# CHECK-NEXT:     PGO analyses {103# CHECK-NEXT:       FuncEntryCount: 8888104# CHECK-NEXT:       PGO BB entries [105# CHECK-NEXT:         {106# RAW-NEXT:             Frequency: 9000107# PRETTY-NEXT:          Frequency: 1.0108# CHECK-NEXT:         }109# CHECK-NEXT:       ]110# CHECK-NEXT:     }111# CHECK-NEXT:   }112# CHECK-NEXT: ]113 114# GNU: GNUStyle::printBBAddrMaps not implemented115 116# PRETTY-NO-BAM: warning: --bb-addr-map must be enabled for --pretty-pgo-analysis-map to have an effect117 118# TRUNCATED:      BBAddrMap [119# TRUNCATED-NEXT: {{.*}}: warning: '[[FILE]]': unable to dump SHT_LLVM_BB_ADDR_MAP section with index 3: unable to decode LEB128 at offset [[OFFSET]]: malformed uleb128, extends past end120# TRUNCATED-NEXT: ]121## Check that the other valid section is properly dumped.122# TRUNCATED-NEXT: BBAddrMap [123# TRUNCATED-NEXT:   Function {124# TRUNCATED-NEXT:     At: 0x33333125# TRUNCATED-NEXT:     Name: bar126# TRUNCATED-NEXT:     BB Ranges [127# TRUNCATED-NEXT:       {128# TRUNCATED-NEXT:         Base Address: 0x33333129# TRUNCATED-NEXT:         BB Entries [130# TRUNCATED-NEXT:           {131# TRUNCATED-NEXT:             ID: 6132# TRUNCATED-NEXT:             Offset: 0x9133# TRUNCATED-NEXT:             Size: 0xA134# TRUNCATED-NEXT:             HasReturn: Yes135# TRUNCATED-NEXT:             HasTailCall: Yes136# TRUNCATED-NEXT:             IsEHPad: No137# TRUNCATED-NEXT:             CanFallThrough: Yes138# TRUNCATED-NEXT:             HasIndirectBranch: Yes139# TRUNCATED-NEXT:           }140# TRUNCATED-NEXT:           {141# TRUNCATED-NEXT:             ID: 7142# TRUNCATED-NEXT:             Offset: 0x1F143# TRUNCATED-NEXT:             Size: 0xD144# TRUNCATED-NEXT:             HasReturn: No145# TRUNCATED-NEXT:             HasTailCall: Yes146# TRUNCATED-NEXT:             IsEHPad: Yes147# TRUNCATED-NEXT:             CanFallThrough: Yes148# TRUNCATED-NEXT:             HasIndirectBranch: No149# TRUNCATED-NEXT:           }150# TRUNCATED-NEXT:         ]151# TRUNCATED-NEXT:       }152# TRUNCATED-NEXT:     ]153# TRUNCATED-NEXT:     PGO analyses {154# TRUNCATED-NEXT:       FuncEntryCount: 89155# TRUNCATED-NEXT:     }156# TRUNCATED-NEXT:   }157# TRUNCATED-NEXT: ]158 159# INVALIDFT:   warning: '[[FILE]]': unable to dump SHT_LLVM_BB_ADDR_MAP section with index 5: unable to decode LEB128 at offset 0x00000010: malformed uleb128, extends past end160 161--- !ELF162FileHeader:163  Class: ELFCLASS[[BITS]]164  Data:  ELFDATA2LSB165  Type:  ET_EXEC166Sections:167  - Name:   .text168    Type:   SHT_PROGBITS169    Flags:  [SHF_ALLOC]170  - Name:   .text.bar171    Type:   SHT_PROGBITS172    Flags:  [SHF_ALLOC]173  - Name:   .llvm_bb_addr_map174    Type:   SHT_LLVM_BB_ADDR_MAP175    ShSize: [[SIZE=<none>]]176    Link:   .text177    Entries:178      - Version: 5179        Feature: 0x87180        BBRanges:181          - BaseAddress: [[ADDR=0x11111]]182            BBEntries:183              - ID:            0184                AddressOffset: 0x0185                Size:          0x1186                Metadata:      0x2187              - ID:            2188                AddressOffset: 0x3189                Size:          0x4190                Metadata:      0x15191      - Version: 2192        Feature: 0x3193        BBRanges:194          - BaseAddress: 0x22222195            BBEntries:196              - ID:            4197                AddressOffset: 0x6198                Size:          0x7199                Metadata:      0x8200    PGOAnalyses:201      - FuncEntryCount: 100202        PGOBBEntries:203          - BBFreq:          100204            PostLinkBBFreq: 10205            Successors:206              - ID:              2207                BrProb:          0x80000000208                PostLinkBrFreq: 7209          - BBFreq:        100210            Successors:    []211      - FuncEntryCount: 8888212        PGOBBEntries:213          - BBFreq:        9000214  - Name: dummy_section215    Type: SHT_PROGBITS216    Size: 16217  - Name: '.llvm_bb_addr_map (1)'218    Type: SHT_LLVM_BB_ADDR_MAP219    Link: .text.bar220    Entries:221      - Version: 2222        Feature: [[FEATURE=0x1]]223        BBRanges:224          - BaseAddress: 0x33333225            BBEntries:226              - ID:            6227                AddressOffset: 0x9228                Size:          0xa229                Metadata:      0x1b230              - ID:            7231                AddressOffset: 0xc232                Size:          0xd233                Metadata:      0xe234    PGOAnalyses:235      - FuncEntryCount: 89236Symbols:237  - Name:    foo238    Section: .text239    Type:    STT_FUNC240    Value:   0x22222241  - Name:    bar242    Section: .text.bar243    Type:    STT_FUNC244    Value:   0x33333245 246