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