CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
236 lines
6.9 KiB
YAML
236 lines
6.9 KiB
YAML
## Check how yaml2obj produces .llvm_bb_addr_map sections.
|
|
|
|
# RUN: yaml2obj --docnum=1 %s -o %t1
|
|
# RUN: llvm-readobj --sections --section-data %t1 | FileCheck %s
|
|
|
|
## Case 1: Specify content.
|
|
# CHECK: Section {
|
|
# CHECK: Index: 1
|
|
# CHECK-NEXT: Name: .llvm_bb_addr_map (1)
|
|
# CHECK-NEXT: Type: SHT_LLVM_BB_ADDR_MAP (0x6FFF4C0A)
|
|
# CHECK-NEXT: Flags [ (0x0)
|
|
# CHECK-NEXT: ]
|
|
# CHECK-NEXT: Address: 0x0
|
|
# CHECK-NEXT: Offset: 0x40
|
|
# CHECK-NEXT: Size: 13
|
|
# CHECK-NEXT: Link: 0
|
|
# CHECK-NEXT: Info: 0
|
|
# CHECK-NEXT: AddressAlignment: 0
|
|
# CHECK-NEXT: EntrySize: 0
|
|
# CHECK-NEXT: SectionData (
|
|
# CHECK-NEXT: 0000: 00000000 00000000 01010203 04
|
|
# CHECK-NEXT: )
|
|
# CHECK-NEXT: }
|
|
|
|
## Case 2: Empty.
|
|
# CHECK: Name: .llvm_bb_addr_map (1)
|
|
# CHECK: Size:
|
|
# CHECK-SAME: {{^ 0$}}
|
|
|
|
## Case 3: Specify Size only.
|
|
# CHECK: Name: .llvm_bb_addr_map (1)
|
|
# CHECK: SectionData (
|
|
# CHECK-NEXT: 0000: 00000000 00000000
|
|
# CHECK-NEXT: )
|
|
|
|
# Case 4: Specify Entries.
|
|
# CHECK: Name: .llvm_bb_addr_map (1)
|
|
# CHECK: SectionData (
|
|
# CHECK-NEXT: 0000: 03002000 00000000 0000010B 01020102
|
|
# CHECK-NEXT: 0010: 0203
|
|
# CHECK-NEXT: )
|
|
|
|
# Case 5: Specify Entries and omit the Address field.
|
|
# CHECK: Name: .llvm_bb_addr_map (1)
|
|
# CHECK: Address:
|
|
# CHECK-SAME: {{^ 0x0$}}
|
|
# CHECK: SectionData (
|
|
# CHECK-NEXT: 0000: 03000000 00000000 0000010C 010203
|
|
# CHECK-NEXT: )
|
|
|
|
# Case 6: Override the NumBlocks field.
|
|
# CHECK: Name: .llvm_bb_addr_map (1)
|
|
# CHECK: SectionData (
|
|
# CHECK-NEXT: 0000: 03002000 00000000 0000020D 010203
|
|
# CHECK-NEXT: )
|
|
|
|
# Case 7: Specify empty BBRanges.
|
|
# CHECK: Name: .llvm_bb_addr_map (1)
|
|
# CHECK: SectionData (
|
|
# CHECK-NEXT: 0000: 030000
|
|
# CHECK-NEXT: )
|
|
|
|
# Case 8: Specify empty BBRanges with multi-bb-range.
|
|
# CHECK: Name: .llvm_bb_addr_map (1)
|
|
# CHECK: SectionData (
|
|
# CHECK-NEXT: 0000: 030800
|
|
# CHECK-NEXT: )
|
|
|
|
# Case 9: Specify empty CallsiteEndOffsets.
|
|
# CHECK: Name: .llvm_bb_addr_map (1)
|
|
# CHECK: SectionData (
|
|
# CHECK-NEXT: 0000: 03202000 00000000 0000010E 01000203
|
|
# CHECK-NEXT: )
|
|
|
|
# Case 10: Specify basic block hash.
|
|
# CHECK: Name: .llvm_bb_addr_map (1)
|
|
# CHECK: SectionData (
|
|
# CHECK-NEXT: 0000: 04602000 00000000 0000010E 01000203
|
|
# CHECK-NEXT: 0010: 23010000 00000000
|
|
# 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 section
|
|
## content.
|
|
## Specify Content.
|
|
- Name: '.llvm_bb_addr_map (1)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Content: "00000000000000000101020304"
|
|
|
|
## 2) We can produce an empty .llvm_bb_addr_map section from a description
|
|
## with empty section content.
|
|
- Name: '.llvm_bb_addr_map (2)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
|
|
## 3) We can produce a zero .llvm_bb_addr_map section of a specific size when
|
|
## we specify the size only.
|
|
- Name: '.llvm_bb_addr_map (3)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Size: 8
|
|
|
|
## 4) We can produce an .llvm_bb_addr_map section from a description with
|
|
## Entries.
|
|
- Name: '.llvm_bb_addr_map (4)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Entries:
|
|
- Version: 3
|
|
BBRanges:
|
|
- BaseAddress: 0x0000000000000020
|
|
BBEntries:
|
|
- ID: 11
|
|
AddressOffset: 0x00000001
|
|
Size: 0x00000002
|
|
Metadata: 0x00000003
|
|
CallsiteEndOffsets: [0x1, 0x2]
|
|
|
|
## 5) When specifying the description with Entries, the 'Address' field will be
|
|
## zero when omitted.
|
|
- Name: '.llvm_bb_addr_map (5)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Entries:
|
|
- Version: 3
|
|
BBRanges:
|
|
- BBEntries:
|
|
- ID: 12
|
|
AddressOffset: 0x00000001
|
|
Size: 0x00000002
|
|
Metadata: 0x00000003
|
|
|
|
## 6) We can override the NumBlocks field with a value different from the
|
|
## actual number of BB Entries.
|
|
- Name: '.llvm_bb_addr_map (6)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Entries:
|
|
- Version: 3
|
|
BBRanges:
|
|
- BaseAddress: 0x0000000000000020
|
|
NumBlocks: 2
|
|
BBEntries:
|
|
- ID: 13
|
|
AddressOffset: 0x00000001
|
|
Size: 0x00000002
|
|
Metadata: 0x00000003
|
|
|
|
## 7) We can produce a SHT_LLVM_BB_ADDR_MAP section from a description
|
|
## with one entry with empty BBRanges.
|
|
- Name: '.llvm_bb_addr_map (7)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Entries:
|
|
- Version: 3
|
|
BBRanges: []
|
|
|
|
## 8) We can produce a SHT_LLVM_BB_ADDR_MAP section from a multi-bb-range
|
|
## description with one entry with empty BBRanges.
|
|
- Name: '.llvm_bb_addr_map (8)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Entries:
|
|
- Version: 3
|
|
Feature: 0x8
|
|
BBRanges: []
|
|
|
|
## 9) We can produce a SHT_LLVM_BB_ADDR_MAP section from a description
|
|
## with empty callsite offsets.
|
|
- Name: '.llvm_bb_addr_map (9)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Entries:
|
|
- Version: 3
|
|
Feature: 0x20
|
|
BBRanges:
|
|
- BaseAddress: 0x0000000000000020
|
|
BBEntries:
|
|
- ID: 14
|
|
AddressOffset: 0x00000001
|
|
Size: 0x00000002
|
|
Metadata: 0x00000003
|
|
CallsiteEndOffsets: []
|
|
|
|
## 10) We can produce a SHT_LLVM_BB_ADDR_MAP section with basic block hash.
|
|
- Name: '.llvm_bb_addr_map (10)'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Entries:
|
|
- Version: 4
|
|
Feature: 0x60
|
|
BBRanges:
|
|
- BaseAddress: 0x0000000000000020
|
|
BBEntries:
|
|
- ID: 14
|
|
AddressOffset: 0x00000001
|
|
Size: 0x00000002
|
|
Metadata: 0x00000003
|
|
CallsiteEndOffsets: []
|
|
Hash: 0x123
|
|
|
|
## Check we can't use Entries at the same time as either Content or Size.
|
|
# RUN: not yaml2obj --docnum=2 -DCONTENT="00" %s 2>&1 | FileCheck %s --check-prefix=INVALID
|
|
# RUN: not yaml2obj --docnum=2 -DSIZE="0" %s 2>&1 | FileCheck %s --check-prefix=INVALID
|
|
|
|
# INVALID: error: "Entries" cannot be used with "Content" or "Size"
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_EXEC
|
|
Sections:
|
|
## Specify Content and Size
|
|
- Name: '.llvm_bb_addr_map'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Entries: []
|
|
Content: [[CONTENT=<none>]]
|
|
Size: [[SIZE=<none>]]
|
|
|
|
## Check that yaml2obj generates a warning when we use unsupported versions.
|
|
# RUN: yaml2obj --docnum=3 %s 2>&1 | FileCheck %s --check-prefix=INVALID-VERSION
|
|
# INVALID-VERSION: warning: unsupported SHT_LLVM_BB_ADDR_MAP version: 6; encoding using the most recent version
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_EXEC
|
|
Sections:
|
|
- Name: '.llvm_bb_addr_map'
|
|
Type: SHT_LLVM_BB_ADDR_MAP
|
|
Entries:
|
|
## Specify unsupported version
|
|
- Version: 6
|