xref: /llvm-project/mlir/test/Dialect/Transform/test-interpreter-external-concurrent.mlir (revision 5468f8841353cd56350a6ebe6898d2563e5c34b0)
1*5468f884SOleksandr "Alex" Zinenko// RUN: mlir-opt %s --pass-pipeline="builtin.module(\
2*5468f884SOleksandr "Alex" Zinenko// RUN:     transform-preload-library{transform-library-paths=%p%{fs-sep}include%{fs-sep}test-interpreter-external-concurrent-source.mlir},\
3*5468f884SOleksandr "Alex" Zinenko// RUN:     func.func(transform-interpreter))" \
4b7895f9dSAlex Zinenko// RUN:             --verify-diagnostics
5b7895f9dSAlex Zinenko
6b7895f9dSAlex Zinenko// Exercising the pass on multiple functions of different lengths that may be
7b7895f9dSAlex Zinenko// processed concurrently. This should expose potential races.
8b7895f9dSAlex Zinenko
9b7895f9dSAlex Zinenkofunc.func @f1() {
10b7895f9dSAlex Zinenko  // expected-remark @below {{matched}}
11b7895f9dSAlex Zinenko  return
12b7895f9dSAlex Zinenko}
13b7895f9dSAlex Zinenko
14b7895f9dSAlex Zinenkofunc.func @f2() {
15b7895f9dSAlex Zinenko  // expected-remark @below {{matched}}
16b7895f9dSAlex Zinenko  return
17b7895f9dSAlex Zinenko}
18b7895f9dSAlex Zinenko
19b7895f9dSAlex Zinenkofunc.func @f3() {
20b7895f9dSAlex Zinenko  call @f2() : () -> ()
21b7895f9dSAlex Zinenko  call @f2() : () -> ()
22b7895f9dSAlex Zinenko  call @f5() : () -> ()
23b7895f9dSAlex Zinenko  call @f7() : () -> ()
24b7895f9dSAlex Zinenko  call @f5() : () -> ()
25b7895f9dSAlex Zinenko  call @f5() : () -> ()
26b7895f9dSAlex Zinenko  // expected-remark @below {{matched}}
27b7895f9dSAlex Zinenko  return
28b7895f9dSAlex Zinenko}
29b7895f9dSAlex Zinenko
30b7895f9dSAlex Zinenkofunc.func @f4() {
31b7895f9dSAlex Zinenko  call @f3() : () -> ()
32b7895f9dSAlex Zinenko  call @f3() : () -> ()
33b7895f9dSAlex Zinenko  // expected-remark @below {{matched}}
34b7895f9dSAlex Zinenko  return
35b7895f9dSAlex Zinenko}
36b7895f9dSAlex Zinenko
37b7895f9dSAlex Zinenkofunc.func @f5() {
38b7895f9dSAlex Zinenko  call @f7() : () -> ()
39b7895f9dSAlex Zinenko  call @f7() : () -> ()
40b7895f9dSAlex Zinenko  call @f7() : () -> ()
41b7895f9dSAlex Zinenko  call @f7() : () -> ()
42b7895f9dSAlex Zinenko  call @f1() : () -> ()
43b7895f9dSAlex Zinenko  call @f1() : () -> ()
44b7895f9dSAlex Zinenko  call @f7() : () -> ()
45b7895f9dSAlex Zinenko  call @f7() : () -> ()
46b7895f9dSAlex Zinenko  call @f7() : () -> ()
47b7895f9dSAlex Zinenko  call @f7() : () -> ()
48b7895f9dSAlex Zinenko  // expected-remark @below {{matched}}
49b7895f9dSAlex Zinenko  return
50b7895f9dSAlex Zinenko}
51b7895f9dSAlex Zinenko
52b7895f9dSAlex Zinenkofunc.func @f6() {
53b7895f9dSAlex Zinenko  // expected-remark @below {{matched}}
54b7895f9dSAlex Zinenko  return
55b7895f9dSAlex Zinenko}
56b7895f9dSAlex Zinenko
57b7895f9dSAlex Zinenkofunc.func @f7() {
58b7895f9dSAlex Zinenko  // expected-remark @below {{matched}}
59b7895f9dSAlex Zinenko  return
60b7895f9dSAlex Zinenko}
61