57 lines · plain
1## Checks that llvm-bolt is able to read data generated by perf2bolt and update2## the CFG edges accordingly with absolute number of branches and mispredictions.3## Also checks that llvm-bolt disassembler and CFG builder is working properly.4 5RUN: yaml2obj %p/Inputs/blarge.yaml &> %t.exe6RUN: llvm-bolt %t.exe -o %t.null --data %p/Inputs/blarge.fdata --print-cfg | FileCheck %s7 8CHECK: Binary Function "usqrt"9CHECK: State : CFG constructed10CHECK: Address : 0x40117011CHECK: Size : 0x4312CHECK: MaxSize : 0x4313CHECK: Offset : 0xcb014CHECK: Section : .text15CHECK: IsSimple : 116CHECK: BB Count : 517CHECK: Exec Count : 19918CHECK: Sample Count: 768919CHECK: }20CHECK: .LBB{{.*}}21CHECK: Exec Count : 19922CHECK: {{.*}}: movl $0x20, %r8d23CHECK: {{.*}}: xorl %eax, %eax24CHECK: {{.*}}: xorl %edx, %edx25CHECK: Successors: .Ltmp{{.*}} (mispreds: 0, count: 0)26CHECK: .Ltmp{{.*}}27CHECK: Exec Count : 471128CHECK: Predecessors: .Ltmp{{.*}}, .LBB{{.*}}29CHECK: {{.*}}: movq %rdi, %rcx30CHECK: {{.*}}: addq %rax, %rax31CHECK: {{.*}}: shlq $0x2, %rdi32CHECK: {{.*}}: andl $0xc0000000, %ecx33CHECK: {{.*}}: shrq $0x1e, %rcx34CHECK: {{.*}}: leaq (%rcx,%rdx,4), %rdx35CHECK: {{.*}}: leaq 0x1(%rax,%rax), %rcx36CHECK: {{.*}}: cmpq %rcx, %rdx37CHECK: {{.*}}: jb .Ltmp{{.*}}38CHECK: Successors: .Ltmp{{.*}} (mispreds: 171, count: 2886), .LFT{{.*}} (mispreds: 0, count: 0)39CHECK: .LFT{{.*}}40CHECK: Exec Count : 041CHECK: Predecessors: .Ltmp{{.*}}42CHECK: {{.*}}: subq %rcx, %rdx43CHECK: {{.*}}: addq $0x1, %rax44CHECK: Successors: .Ltmp{{.*}} (mispreds: 0, count: 0)45CHECK: .Ltmp{{.*}}46CHECK: Exec Count : 471147CHECK: Predecessors: .Ltmp{{.*}}, .LFT{{.*}}48CHECK: {{.*}}: subl $0x1, %r8d49CHECK: {{.*}}: jne .Ltmp{{.*}}50CHECK: Successors: .Ltmp{{.*}} (mispreds: 33, count: 4711), .LFT{{.*}} (mispreds: 0, count: 0)51CHECK: .LFT{{.*}}52CHECK: Exec Count : 053CHECK: Predecessors: .Ltmp{{.*}}54CHECK: {{.*}}: movq %rax, (%rsi)55CHECK: {{.*}}: retq56CHECK: End of Function "usqrt"57