# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -S --symbols --sd --cg-profile - | FileCheck %s .section .test,"aw",@progbits a: .word b .cg_profile a, b, 32 .cg_profile freq, a, 11 .cg_profile late, late2, 20 .cg_profile .L.local, b, 42 .globl late late: late2: .word 0 late3: .L.local: # CHECK: Name: .llvm.call-graph-profile # CHECK-NEXT: Type: SHT_LLVM_CALL_GRAPH_PROFILE (0x6FFF4C09) # CHECK-NEXT: Flags [ (0x80000000) # CHECK-NEXT: SHF_EXCLUDE (0x80000000) # CHECK-NEXT: ] # CHECK-NEXT: Address: # CHECK-NEXT: Offset: # CHECK-NEXT: Size: 32 # CHECK-NEXT: Link: 7 # CHECK-NEXT: Info: 0 # CHECK-NEXT: AddressAlignment: 1 # CHECK-NEXT: EntrySize: 8 # CHECK-NEXT: SectionData ( # CHECK-NEXT: 0000: 20000000 00000000 0B000000 00000000 # CHECK-NEXT: 0010: 14000000 00000000 2A000000 00000000 # CHECK-NEXT: ) # CHECK: Name: .rel.llvm.call-graph-profile (28) # CHECK-NEXT: Type: SHT_REL (0x9) # CHECK-NEXT: Flags [ (0x40) # CHECK-NEXT: SHF_INFO_LINK # CHECK-NEXT: ] # CHECK-NEXT: Address: 0x0 # CHECK-NEXT: Offset: 0x140 # CHECK-NEXT: Size: 128 # CHECK-NEXT: Link: 7 # CHECK-NEXT: Info: 5 # CHECK-NEXT: AddressAlignment: 8 # CHECK-NEXT: EntrySize: 16 # CHECK-NEXT: SectionData ( # CHECK-NEXT: 0000: 00000000 00000000 00000000 02000000 # CHECK-NEXT: 0010: 00000000 00000000 00000000 05000000 # CHECK-NEXT: 0020: 08000000 00000000 00000000 07000000 # CHECK-NEXT: 0030: 08000000 00000000 00000000 02000000 # CHECK-NEXT: 0040: 10000000 00000000 00000000 06000000 # CHECK-NEXT: 0050: 10000000 00000000 00000000 03000000 # CHECK-NEXT: 0060: 18000000 00000000 00000000 01000000 # CHECK-NEXT: 0070: 18000000 00000000 00000000 05000000 # CHECK-NEXT: ) # CHECK: Symbols [ # CHECK: Name: a # CHECK-NEXT: Value: # CHECK-NEXT: Size: # CHECK-NEXT: Binding: Local # CHECK-NEXT: Type: # CHECK-NEXT: Other: # CHECK-NEXT: Section: .test # CHECK: Name: late2 # CHECK-NEXT: Value: # CHECK-NEXT: Size: # CHECK-NEXT: Binding: Local # CHECK-NEXT: Type: # CHECK-NEXT: Other: # CHECK-NEXT: Section: .test # CHECK: Name: late3 # CHECK-NEXT: Value: # CHECK-NEXT: Size: # CHECK-NEXT: Binding: Local # CHECK-NEXT: Type: # CHECK-NEXT: Other: # CHECK-NEXT: Section: .test # CHECK: Name: b # CHECK-NEXT: Value: # CHECK-NEXT: Size: # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: # CHECK-NEXT: Other: # CHECK-NEXT: Section: Undefined # CHECK: Name: late # CHECK-NEXT: Value: # CHECK-NEXT: Size: # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: # CHECK-NEXT: Other: # CHECK-NEXT: Section: .test # CHECK: Name: freq # CHECK-NEXT: Value: # CHECK-NEXT: Size: # CHECK-NEXT: Binding: Global # CHECK-NEXT: Type: # CHECK-NEXT: Other: # CHECK-NEXT: Section: Undefined # CHECK: CGProfile [ # CHECK-NEXT: CGProfileEntry { # CHECK-NEXT: From: a # CHECK-NEXT: To: b # CHECK-NEXT: Weight: 32 # CHECK-NEXT: } # CHECK-NEXT: CGProfileEntry { # CHECK-NEXT: From: freq # CHECK-NEXT: To: a # CHECK-NEXT: Weight: 11 # CHECK-NEXT: } # CHECK-NEXT: CGProfileEntry { # CHECK-NEXT: From: late # CHECK-NEXT: To: late2 # CHECK-NEXT: Weight: 20 # CHECK-NEXT: } # CHECK-NEXT: CGProfileEntry { # CHECK-NEXT: From: # CHECK-NEXT: To: b # CHECK-NEXT: Weight: 42 # CHECK-NEXT: } # CHECK-NEXT: ]