brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · f6c9ff5 Raw
99 lines · plain
1// RUN: mlir-opt %s -test-print-callgraph -split-input-file -allow-unregistered-dialect 2>&1 | FileCheck %s2 3// CHECK-LABEL: Testing : "simple"4module attributes {test.name = "simple"} {5 6  // CHECK: Node{{.*}}func_a7  func.func @func_a() {8    return9  }10 11  func.func private @func_b()12 13  // CHECK: Node{{.*}}func_c14  // CHECK-NEXT: Call-Edge{{.*}}Unknown-Callee-Node15  func.func @func_c() {16    call @func_b() : () -> ()17    return18  }19 20  // CHECK: Node{{.*}}func_d21  // CHECK-NEXT: Call-Edge{{.*}}func_c22  func.func @func_d() {23    call @func_c() : () -> ()24    return25  }26 27  // CHECK: Node{{.*}}func_e28  // CHECK-DAG: Call-Edge{{.*}}func_c29  // CHECK-DAG: Call-Edge{{.*}}func_d30  // CHECK-DAG: Call-Edge{{.*}}func_e31  func.func @func_e() {32    call @func_c() : () -> ()33    call @func_d() : () -> ()34    call @func_e() : () -> ()35    return36  }37 38  // CHECK: Node{{.*}}func_f39  // CHECK: Child-Edge{{.*}}test.functional_region_op40  // CHECK: Call-Edge{{.*}}test.functional_region_op41  func.func @func_f() {42    // CHECK: Node{{.*}}test.functional_region_op43    // CHECK: Call-Edge{{.*}}func_f44    %fn = "test.functional_region_op"() ({45      call @func_f() : () -> ()46      "test.return"() : () -> ()47    }) : () -> (() -> ())48 49    call_indirect %fn() : () -> ()50    return51  }52}53 54// -----55 56// CHECK-LABEL: Testing : "nested"57module attributes {test.name = "nested"} {58  module @nested_module {59    // CHECK: Node{{.*}}func_a60    func.func @func_a() {61      return62    }63  }64 65  // CHECK: Node{{.*}}func_b66  // CHECK: Call-Edge{{.*}}func_a67  func.func @func_b() {68    "test.conversion_call_op"() { callee = @nested_module::@func_a } : () -> ()69    return70  }71}72 73// -----74 75// CHECK-LABEL: Testing : "SCC"76// CHECK: SCCs77module attributes {test.name = "SCC"} {78  // CHECK: SCC :79  // CHECK-NEXT: Node{{.*}}Unknown-Callee-Node80 81  // CHECK: SCC :82  // CHECK-NEXT: Node{{.*}}foo83  func.func @foo(%arg0 : () -> ()) {84    call_indirect %arg0() : () -> ()85    return86  }87 88  // CHECK: SCC :89  // CHECK-NEXT: Node{{.*}}bar90  func.func @bar(%arg1 : () -> ()) {91    call_indirect %arg1() : () -> ()92    return93  }94 95  // CHECK: SCC :96  // CHECK-NEXT: Node{{.*}}External-Caller-Node97}98 99