blob: ee5149aac90de5e8860198171502ad9ecfea52ec [file] [log] [blame]
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: ld.lld -e A %t -o %t2
# RUN: llvm-readobj -symbols %t2 | FileCheck %s --check-prefix=NOSORT
# RUN: echo "A B 10" > %t.call_graph
# RUN: echo "A B 10" >> %t.call_graph
# RUN: echo "Aa B 80" >> %t.call_graph
# RUN: echo "A C 40" >> %t.call_graph
# RUN: echo "B C 30" >> %t.call_graph
# RUN: echo "C D 90" >> %t.call_graph
# RUN: echo "PP TS 100" >> %t.call_graph
# RUN: echo "_init2 _init 24567837" >> %t.call_graph
# RUN: echo "TS QC 9001" >> %t.call_graph
# RUN: echo "TooManyPreds0 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds1 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds2 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds3 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds4 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds5 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds6 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds7 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds8 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds9 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds10 TooManyPreds 11" >> %t.call_graph
# RUN: ld.lld -e A %t --call-graph-ordering-file %t.call_graph -o %t2
# RUN: llvm-readobj -symbols %t2 | FileCheck %s
.section .text.D,"ax",@progbits
D:
retq
.section .text.C,"ax",@progbits
.globl C
C:
retq
.section .text.B,"ax",@progbits
.globl B
B:
retq
.section .text.A,"ax",@progbits
.globl A
A:
Aa:
retq
.section .ponies,"ax",@progbits,unique,1
.globl TS
TS:
retq
.section .ponies,"ax",@progbits,unique,2
.globl PP
PP:
retq
.section .other,"ax",@progbits,unique,1
.globl QC
QC:
retq
.section .other,"ax",@progbits,unique,2
.globl GB
GB:
retq
.section .init,"ax",@progbits,unique,1
.globl _init
_init:
retq
.section .init,"ax",@progbits,unique,2
.globl _init2
_init2:
retq
.section .text.TooManyPreds,"ax",@progbits
TooManyPreds:
retq
retq
retq
retq
retq
retq
retq
retq
retq
retq
.section .text.TooManyPreds0,"ax",@progbits
TooManyPreds0:
retq
.section .text.TooManyPreds1,"ax",@progbits
TooManyPreds1:
retq
.section .text.TooManyPreds2,"ax",@progbits
TooManyPreds2:
retq
.section .text.TooManyPreds3,"ax",@progbits
TooManyPreds3:
retq
.section .text.TooManyPreds4,"ax",@progbits
TooManyPreds4:
retq
.section .text.TooManyPreds5,"ax",@progbits
TooManyPreds5:
retq
.section .text.TooManyPreds6,"ax",@progbits
TooManyPreds6:
retq
.section .text.TooManyPreds7,"ax",@progbits
TooManyPreds7:
retq
.section .text.TooManyPreds8,"ax",@progbits
TooManyPreds8:
retq
.section .text.TooManyPreds9,"ax",@progbits
TooManyPreds9:
retq
.section .text.TooManyPreds10,"ax",@progbits
TooManyPreds10:
retq
# CHECK: Name: D
# CHECK-NEXT: Value: 0x201003
# CHECK: Name: TooManyPreds
# CHECK-NEXT: Value: 0x201004
# CHECK: Name: TooManyPreds10
# CHECK-NEXT: Value: 0x201018
# CHECK: Name: A
# CHECK-NEXT: Value: 0x201000
# CHECK: Name: B
# CHECK-NEXT: Value: 0x201001
# CHECK: Name: C
# CHECK-NEXT: Value: 0x201002
# CHECK: Name: GB
# CHECK-NEXT: Value: 0x20101F
# CHECK: Name: PP
# CHECK-NEXT: Value: 0x20101C
# CHECK: Name: QC
# CHECK-NEXT: Value: 0x20101E
# CHECK: Name: TS
# CHECK-NEXT: Value: 0x20101D
# CHECK: Name: _init
# CHECK-NEXT: Value: 0x201020
# CHECK: Name: _init2
# CHECK-NEXT: Value: 0x201021
# NOSORT: Name: D
# NOSORT-NEXT: Value: 0x201000
# NOSORT: Name: TooManyPreds
# NOSORT-NEXT: Value: 0x201004
# NOSORT: Name: TooManyPreds10
# NOSORT-NEXT: Value: 0x201018
# NOSORT: Name: A
# NOSORT-NEXT: Value: 0x201003
# NOSORT: Name: B
# NOSORT-NEXT: Value: 0x201002
# NOSORT: Name: C
# NOSORT-NEXT: Value: 0x201001
# NOSORT: Name: GB
# NOSORT-NEXT: Value: 0x20101C
# NOSORT: Name: PP
# NOSORT-NEXT: Value: 0x20101A
# NOSORT: Name: QC
# NOSORT-NEXT: Value: 0x20101B
# NOSORT: Name: TS
# NOSORT-NEXT: Value: 0x201019
# NOSORT: Name: _init
# NOSORT-NEXT: Value: 0x20101D
# NOSORT: Name: _init2
# NOSORT-NEXT: Value: 0x20101E