LLVM OpenMP
22.0.0git
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
a
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
Functions
c
d
e
f
g
i
m
n
o
p
r
s
t
u
Variables
Enumerations
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
~
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Typedefs
Enumerations
Enumerator
Related Symbols
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Typedefs
_
a
b
c
d
e
i
k
l
m
n
o
p
r
t
u
Enumerations
_
b
c
d
f
k
l
n
o
s
t
Enumerator
_
a
b
c
d
e
f
k
l
n
o
p
r
s
t
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
runtime
test
ompt
synchronization
ordered_dependences.c
Go to the documentation of this file.
1
// clang-format off
2
// RUN: %libomp-c99-compile-and-run | %sort-threads | FileCheck %s
3
// REQUIRES: ompt
4
// UNSUPPORTED: gcc-4, gcc-5, gcc-6, gcc-7
5
// clang-format on
6
#include "
callback.h
"
7
#include <omp.h>
8
9
int
main
() {
10
int
a
[10][10];
11
#pragma omp parallel num_threads(2)
12
#pragma omp for ordered(2) schedule(static)
13
for
(
int
i
= 0;
i
< 2;
i
++)
14
for
(
int
j
= 0;
j
< 2;
j
++) {
15
a
[
i
][
j
] =
i
+
j
+ 1;
16
printf(
"%d, %d\n"
,
i
,
j
);
17
#pragma omp ordered depend(sink : i - 1, j) depend(sink : i, j - 1)
18
if
(
i
> 0 &&
j
> 0)
19
a
[
i
][
j
] =
a
[
i
- 1][
j
] +
a
[
i
][
j
- 1] + 1;
20
printf(
"%d, %d\n"
,
i
,
j
);
21
#pragma omp ordered depend(source)
22
}
23
24
return
0;
25
}
9
int
main
() {
…
}
26
// clang-format off
27
// CHECK: 0: NULL_POINTER=[[NULL:.*$]]
28
29
// CHECK: {{^}}[[MASTER:[0-9]+]]: ompt_event_loop_static_begin:
30
// CHECK-SAME: parallel_id={{[0-f]+}}, task_id=[[ITASK:[0-9]+]],
31
32
// CHECK: {{^}}[[MASTER]]: ompt_event_dependences: task_id=[[ITASK]],
33
// CHECK-SAME: deps=[(0, ompt_dependence_type_source), (0,
34
// CHECK-SAME: ompt_dependence_type_source)], ndeps=2
35
36
// CHECK: {{^}}[[MASTER]]: ompt_event_dependences: task_id=[[ITASK]],
37
// CHECK-SAME: deps=[(0, ompt_dependence_type_sink), (0,
38
// CHECK-SAME: ompt_dependence_type_sink)], ndeps=2
39
40
// CHECK: {{^}}[[MASTER]]: ompt_event_dependences: task_id=[[ITASK]],
41
// CHECK-SAME: deps=[(0, ompt_dependence_type_source), (1,
42
// CHECK-SAME: ompt_dependence_type_source)], ndeps=2
43
44
// CHECK: {{^}}[[WORKER:[0-9]+]]: ompt_event_loop_static_begin:
45
// CHECK-SAME: parallel_id={{[0-f]+}}, task_id=[[ITASK:[0-9]+]],
46
47
// CHECK: {{^}}[[WORKER]]: ompt_event_dependences: task_id=[[ITASK]],
48
// CHECK-SAME: deps=[(0, ompt_dependence_type_sink), (0,
49
// CHECK-SAME: ompt_dependence_type_sink)], ndeps=2
50
51
// CHECK: {{^}}[[WORKER]]: ompt_event_dependences: task_id=[[ITASK]],
52
// CHECK-SAME: deps=[(1, ompt_dependence_type_source), (0,
53
// CHECK-SAME: ompt_dependence_type_source)], ndeps=2
54
55
// either can be first for last iteration
56
57
// CHECK-DAG: [[ITASK]]{{.*}}deps=[(0{{.*}}sink), (1,{{.*}}sink)]
58
59
// CHECK-DAG: [[ITASK]]{{.*}}deps=[(1{{.*}}sink), (0,{{.*}}sink)]
60
61
// CHECK: {{^}}[[WORKER]]: ompt_event_dependences: task_id=[[ITASK]],
62
// CHECK-SAME: deps=[(1, ompt_dependence_type_source), (1,
63
// CHECK-SAME: ompt_dependence_type_source)], ndeps=2
64
// clang-format on
callback.h
i
#define i
Definition
kmp_stub.cpp:87
a
int a
Definition
llvm-issue-80664.c:20
j
int j
Definition
omp_single_copyprivate.c:6
main
int main()
Definition
ordered_dependences.c:9
Generated on
for LLVM OpenMP by
1.14.0