1/*
2 * Copyright (c) 2014 ETH Zurich.
3 * All rights reserved.
4 *
5 * This file is distributed under the terms in the attached LICENSE file.
6 * If you do not find this file, copies can be found by writing to:
7 * ETH Zurich D-INFK, Universitaetsstrasse 6, CH-8092 Zurich. Attn: Systems Group.
8 */
9#include <bomp_internal.h>
10
11/*
12 * this implements the FOR constructs
13 *
14 * #pragma omp parallel for
15 * for (i = lb; i <= ub; i++)
16 *  body;
17 *
18 * becomes
19 *
20 * void subfunction (void *data) {
21 *   long _s0, _e0;
22 *   while (GOMP_loop_static_next (&_s0, &_e0)) {
23 *      long _e1 = _e0, i;
24 *      for (i = _s0; i < _e1; i++)
25 *          body;
26 *   }
27 *   GOMP_loop_end_nowait ();
28 * }
29 * GOMP_parallel_loop_static (subfunction, NULL, 0, lb, ub+1, 1, 0);
30 * subfunction (NULL);
31 * GOMP_parallel_end ();
32 */
33
34bool GOMP_loop_ordered_runtime_start(long start,
35                                     long end,
36                                     long incr,
37                                     long *istart,
38                                     long *iend)
39{
40    assert(!"NYI");
41    return 0;
42}
43
44bool GOMP_loop_dynamic_start(long start,
45                             long end,
46                             long incr,
47                             long chunk_size,
48                             long *istart,
49                             long *iend)
50{
51    assert(!"NYI");
52    return 0;
53}
54
55bool GOMP_loop_runtime_next(long *istart,
56                            long *iend)
57{
58    assert(!"NYI");
59    return 0;
60}
61
62bool GOMP_loop_ordered_runtime_next(long *istart,
63                                    long *iend)
64{
65    assert(!"NYI");
66    return 0;
67}
68
69bool GOMP_loop_dynamic_next(long *istart,
70                            long *iend)
71{
72    assert(!"NYI");
73    return 0;
74}
75
76void GOMP_loop_end_nowait(void)
77{
78    assert(!"NYI");
79}
80
81void GOMP_loop_end(void)
82{
83    assert(!"NYI");
84}
85
86