LLVM OpenMP
20.0.0git
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
c
d
e
g
h
i
m
n
p
r
s
t
u
Functions
c
d
e
g
i
m
n
p
r
s
u
Variables
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
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 Functions
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
// RUN: %libomp-c99-compile-and-run | %sort-threads | FileCheck %s
2
// REQUIRES: ompt
3
// UNSUPPORTED: gcc-4, gcc-5, gcc-6, gcc-7
4
#include "
callback.h
"
5
#include <omp.h>
6
7
int
main
() {
8
int
a
[10][10];
9
#pragma omp parallel num_threads(2)
10
#pragma omp for ordered(2) schedule(static)
11
for
(
int
i
= 0;
i
< 2;
i
++)
12
for
(
int
j
= 0;
j
< 2;
j
++) {
13
a
[
i
][
j
] =
i
+
j
+ 1;
14
printf(
"%d, %d\n"
,
i
,
j
);
15
#pragma omp ordered depend(sink : i - 1, j) depend(sink : i, j - 1)
16
if
(
i
> 0 &&
j
> 0)
17
a
[
i
][
j
] =
a
[
i
- 1][
j
] +
a
[
i
][
j
- 1] + 1;
18
printf(
"%d, %d\n"
,
i
,
j
);
19
#pragma omp ordered depend(source)
20
}
21
22
return
0;
23
}
24
// CHECK: 0: NULL_POINTER=[[NULL:.*$]]
25
26
// CHECK: {{^}}[[MASTER:[0-9]+]]: ompt_event_loop_static_begin:
27
// CHECK-SAME: parallel_id={{[0-9]+}}, task_id=[[ITASK:[0-9]+]],
28
29
// CHECK: {{^}}[[MASTER]]: ompt_event_dependences: task_id=[[ITASK]],
30
// CHECK-SAME: deps=[(0, ompt_dependence_type_source), (0,
31
// CHECK-SAME: ompt_dependence_type_source)], ndeps=2
32
33
// CHECK: {{^}}[[MASTER]]: ompt_event_dependences: task_id=[[ITASK]],
34
// CHECK-SAME: deps=[(0, ompt_dependence_type_sink), (0,
35
// CHECK-SAME: ompt_dependence_type_sink)], ndeps=2
36
37
// CHECK: {{^}}[[MASTER]]: ompt_event_dependences: task_id=[[ITASK]],
38
// CHECK-SAME: deps=[(0, ompt_dependence_type_source), (1,
39
// CHECK-SAME: ompt_dependence_type_source)], ndeps=2
40
41
// CHECK: {{^}}[[WORKER:[0-9]+]]: ompt_event_loop_static_begin:
42
// CHECK-SAME: parallel_id={{[0-9]+}}, task_id=[[ITASK:[0-9]+]],
43
44
// CHECK: {{^}}[[WORKER]]: ompt_event_dependences: task_id=[[ITASK]],
45
// CHECK-SAME: deps=[(0, ompt_dependence_type_sink), (0,
46
// CHECK-SAME: ompt_dependence_type_sink)], ndeps=2
47
48
// CHECK: {{^}}[[WORKER]]: ompt_event_dependences: task_id=[[ITASK]],
49
// CHECK-SAME: deps=[(1, ompt_dependence_type_source), (0,
50
// CHECK-SAME: ompt_dependence_type_source)], ndeps=2
51
52
// either can be first for last iteration
53
54
// CHECK-DAG: [[ITASK]]{{.*}}deps=[(0{{.*}}sink), (1,{{.*}}sink)]
55
56
// CHECK-DAG: [[ITASK]]{{.*}}deps=[(1{{.*}}sink), (0,{{.*}}sink)]
57
58
// CHECK: {{^}}[[WORKER]]: ompt_event_dependences: task_id=[[ITASK]],
59
// CHECK-SAME: deps=[(1, ompt_dependence_type_source), (1,
60
// CHECK-SAME: ompt_dependence_type_source)], ndeps=2
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:7
Generated on Wed Jun 11 2025 14:17:21 for LLVM OpenMP by
1.9.6