annotate mlir/test/Analysis/test-callgraph.mlir @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
1 // RUN: mlir-opt %s -test-print-callgraph -split-input-file -allow-unregistered-dialect 2>&1 | FileCheck %s
150
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 // CHECK-LABEL: Testing : "simple"
anatofuz
parents:
diff changeset
4 module attributes {test.name = "simple"} {
anatofuz
parents:
diff changeset
5
anatofuz
parents:
diff changeset
6 // CHECK: Node{{.*}}func_a
anatofuz
parents:
diff changeset
7 func @func_a() {
anatofuz
parents:
diff changeset
8 return
anatofuz
parents:
diff changeset
9 }
anatofuz
parents:
diff changeset
10
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
11 func private @func_b()
150
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 // CHECK: Node{{.*}}func_c
anatofuz
parents:
diff changeset
14 // CHECK-NEXT: Call-Edge{{.*}}External-Node
anatofuz
parents:
diff changeset
15 func @func_c() {
anatofuz
parents:
diff changeset
16 call @func_b() : () -> ()
anatofuz
parents:
diff changeset
17 return
anatofuz
parents:
diff changeset
18 }
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 // CHECK: Node{{.*}}func_d
anatofuz
parents:
diff changeset
21 // CHECK-NEXT: Call-Edge{{.*}}func_c
anatofuz
parents:
diff changeset
22 func @func_d() {
anatofuz
parents:
diff changeset
23 call @func_c() : () -> ()
anatofuz
parents:
diff changeset
24 return
anatofuz
parents:
diff changeset
25 }
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 // CHECK: Node{{.*}}func_e
anatofuz
parents:
diff changeset
28 // CHECK-DAG: Call-Edge{{.*}}func_c
anatofuz
parents:
diff changeset
29 // CHECK-DAG: Call-Edge{{.*}}func_d
anatofuz
parents:
diff changeset
30 // CHECK-DAG: Call-Edge{{.*}}func_e
anatofuz
parents:
diff changeset
31 func @func_e() {
anatofuz
parents:
diff changeset
32 call @func_c() : () -> ()
anatofuz
parents:
diff changeset
33 call @func_d() : () -> ()
anatofuz
parents:
diff changeset
34 call @func_e() : () -> ()
anatofuz
parents:
diff changeset
35 return
anatofuz
parents:
diff changeset
36 }
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 // CHECK: Node{{.*}}func_f
anatofuz
parents:
diff changeset
39 // CHECK: Child-Edge{{.*}}test.functional_region_op
anatofuz
parents:
diff changeset
40 // CHECK: Call-Edge{{.*}}test.functional_region_op
anatofuz
parents:
diff changeset
41 func @func_f() {
anatofuz
parents:
diff changeset
42 // CHECK: Node{{.*}}test.functional_region_op
anatofuz
parents:
diff changeset
43 // CHECK: Call-Edge{{.*}}func_f
anatofuz
parents:
diff changeset
44 %fn = "test.functional_region_op"() ({
anatofuz
parents:
diff changeset
45 call @func_f() : () -> ()
anatofuz
parents:
diff changeset
46 "test.return"() : () -> ()
anatofuz
parents:
diff changeset
47 }) : () -> (() -> ())
anatofuz
parents:
diff changeset
48
anatofuz
parents:
diff changeset
49 call_indirect %fn() : () -> ()
anatofuz
parents:
diff changeset
50 return
anatofuz
parents:
diff changeset
51 }
anatofuz
parents:
diff changeset
52 }
anatofuz
parents:
diff changeset
53
anatofuz
parents:
diff changeset
54 // -----
anatofuz
parents:
diff changeset
55
anatofuz
parents:
diff changeset
56 // CHECK-LABEL: Testing : "nested"
anatofuz
parents:
diff changeset
57 module attributes {test.name = "nested"} {
anatofuz
parents:
diff changeset
58 module @nested_module {
anatofuz
parents:
diff changeset
59 // CHECK: Node{{.*}}func_a
anatofuz
parents:
diff changeset
60 func @func_a() {
anatofuz
parents:
diff changeset
61 return
anatofuz
parents:
diff changeset
62 }
anatofuz
parents:
diff changeset
63 }
anatofuz
parents:
diff changeset
64
anatofuz
parents:
diff changeset
65 // CHECK: Node{{.*}}func_b
anatofuz
parents:
diff changeset
66 // CHECK: Call-Edge{{.*}}func_a
anatofuz
parents:
diff changeset
67 func @func_b() {
anatofuz
parents:
diff changeset
68 "test.conversion_call_op"() { callee = @nested_module::@func_a } : () -> ()
anatofuz
parents:
diff changeset
69 return
anatofuz
parents:
diff changeset
70 }
anatofuz
parents:
diff changeset
71 }