brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 6f756bf Raw
76 lines · yaml
1#RUN: llvm-xray graph %s -o - -m %S/Inputs/simple-instrmap.yaml -d \2#RUN:    | FileCheck %s -check-prefix=EMPTY3#RUN: llvm-xray graph %s -o - -m %S/Inputs/simple-instrmap.yaml -d -e count \4#RUN:    | FileCheck %s -check-prefix=COUNT5#6#RUN: llvm-xray graph %s -o - -m %S/Inputs/simple-instrmap.yaml -d -e min \7#RUN:    | FileCheck %s -check-prefix=TIME8#RUN: llvm-xray graph %s -o - -m %S/Inputs/simple-instrmap.yaml -d -e med \9#RUN:    | FileCheck %s -check-prefix=TIME10#RUN: llvm-xray graph %s -o - -m %S/Inputs/simple-instrmap.yaml -d -e 90p \11#RUN:    | FileCheck %s -check-prefix=TIME12#RUN: llvm-xray graph %s -o - -m %S/Inputs/simple-instrmap.yaml -d -e 99p \13#RUN:    | FileCheck %s -check-prefix=TIME14#RUN: llvm-xray graph %s -o - -m %S/Inputs/simple-instrmap.yaml -d -e max \15#RUN:    | FileCheck %s -check-prefix=TIME16#RUN: llvm-xray graph %s -o - -m %S/Inputs/simple-instrmap.yaml -d -e sum \17#RUN:    | FileCheck %s -check-prefix=TIME18#19---20header:21  version: 122  type: 023  constant-tsc: true24  nonstop-tsc: true25  cycle-frequency: 026records:27# Here we reconstruct the following call trace:28#29#   f1()30#     f2()31#       f3()32#33# But we find that we're missing an exit record for f2() because it's34# tail-called f3(). We make sure that if we see a trace like this that we can35# deduce tail calls, and account the time (potentially wrongly) to f2() when36# f1() exits. That is because we don't go back to f3()'s entry record to37# properly do the math on the timing of f2().38#39# Note that by default, tail/sibling call deduction is disabled, and is enabled40# with a flag "-d" or "-deduce-sibling-calls".41#42  - { type: 0, func-id: 1, cpu: 1, thread: 111, kind: function-enter, tsc: 10000 }43  - { type: 0, func-id: 2, cpu: 1, thread: 111, kind: function-enter, tsc: 10001 }44  - { type: 0, func-id: 3, cpu: 1, thread: 111, kind: function-enter, tsc: 10002 }45  - { type: 0, func-id: 3, cpu: 1, thread: 111, kind: function-exit,  tsc: 10003 }46  - { type: 0, func-id: 1, cpu: 1, thread: 111, kind: function-exit,  tsc: 10004 }47...48 49#EMPTY:       digraph xray {50#EMPTY-DAG:   F0 -> F1 [label=""];51#EMPTY-DAG:   F1 -> F2 [label=""];52#EMPTY-DAG:   F2 -> F3 [label=""];53#EMPTY-DAG:   F1 [label="@(1)"];54#EMPTY-DAG:   F2 [label="@(2)"];55#EMPTY-DAG:   F3 [label="@(3)"];56#EMPTY-NEXT:       }57 58#COUNT:       digraph xray {59#COUNT-DAG:   F0 -> F1 [label="1"];60#COUNT-DAG:   F1 -> F2 [label="1"];61#COUNT-DAG:   F2 -> F3 [label="1"];62#COUNT-DAG:   F1 [label="@(1)"];63#COUNT-DAG:   F2 [label="@(2)"];64#COUNT-DAG:   F3 [label="@(3)"];65#COUNT-NEXT:       }66 67 68#TIME:       digraph xray {69#TIME-DAG:   F0 -> F1 [label="4.{{.*}}"];70#TIME-DAG:   F1 -> F2 [label="3.{{.*}}"];71#TIME-DAG:   F2 -> F3 [label="1.{{.*}}"];72#TIME-DAG:   F1 [label="@(1)"];73#TIME-DAG:   F2 [label="@(2)"];74#TIME-DAG:   F3 [label="@(3)"];75#TIME-NEXT:       }76