| # REQUIRES: x86 |
| # This test checks that CallGraphSort ignores edges that would form "bad" |
| # clusters. |
| |
| # RUN: llvm-mc -filetype=obj -triple=x86_64-pc-win32 %s -o %t |
| # RUN: echo "A C 1" > %t.call_graph |
| # RUN: echo "E B 4" >> %t.call_graph |
| # RUN: echo "C D 2" >> %t.call_graph |
| # RUN: echo "B D 1" >> %t.call_graph |
| # RUN: echo "F G 6" >> %t.call_graph |
| # RUN: echo "G H 5" >> %t.call_graph |
| # RUN: echo "H I 4" >> %t.call_graph |
| # RUN: lld-link /subsystem:console /entry:A %t /call-graph-ordering-file:%t.call_graph /out:%t2 /debug:symtab |
| # RUN: llvm-nm --numeric-sort %t2 | FileCheck %s |
| |
| .section .text,"ax",one_only,A |
| .globl A |
| A: |
| retq |
| |
| .section .text,"ax",one_only,D |
| D: |
| .fill 1000, 1, 0 |
| |
| .section .text,"ax",one_only,E |
| E: |
| retq |
| |
| .section .text,"ax",one_only,C |
| C: |
| retq |
| |
| .section .text,"ax",one_only,B |
| B: |
| .fill 1000, 1, 0 |
| |
| .section .text,"ax",one_only,F |
| F: |
| .fill (1024 * 1024) - 1, 1, 0 |
| |
| .section .text,"ax",one_only,G |
| G: |
| retq |
| |
| .section .text,"ax",one_only,H |
| H: |
| retq |
| |
| .section .text,"ax",one_only,I |
| I: |
| .fill 13, 1, 0 |
| |
| # CHECK: 140001000 t H |
| # CHECK: 140001001 t I |
| # CHECK: 14000100e T A |
| # CHECK: 14000100f t C |
| # CHECK: 140001010 t E |
| # CHECK: 140001011 t B |
| # CHECK: 1400013f9 t D |
| # CHECK: 1400017e1 t F |
| # CHECK: 1401017e0 t G |