omp-builtins.def revision 169689
1115921Sache/* This file contains the definitions and documentation for the
2115921Sache   OpenMP builtins used in the GNU compiler.
3115921Sache   Copyright (C) 2005 Free Software Foundation, Inc.
4115921Sache
5115921SacheThis file is part of GCC.
6115921Sache
7115921SacheGCC is free software; you can redistribute it and/or modify it under
8115921Sachethe terms of the GNU General Public License as published by the Free
9115921SacheSoftware Foundation; either version 2, or (at your option) any later
10115921Sacheversion.
11115921Sache
12115921SacheGCC is distributed in the hope that it will be useful, but WITHOUT ANY
13115921SacheWARRANTY; without even the implied warranty of MERCHANTABILITY or
14115921SacheFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15115921Sachefor more details.
16115921Sache
17115921SacheYou should have received a copy of the GNU General Public License
18115921Sachealong with GCC; see the file COPYING.  If not, write to the Free
19115921SacheSoftware Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
20115921Sache02110-1301, USA.  */
21115921Sache
22115921Sache/* Before including this file, you should define a macro:
23115921Sache
24115921Sache     DEF_GOMP_BUILTIN (ENUM, NAME, TYPE, ATTRS)
25115921Sache
26115921Sache   See builtins.def for details.  */
27115921Sache
28115921SacheDEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_THREAD_NUM, "omp_get_thread_num",
29115921Sache		  BT_FN_INT, ATTR_CONST_NOTHROW_LIST)
30115921SacheDEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_THREADS, "omp_get_num_threads",
31115921Sache		  BT_FN_INT, ATTR_CONST_NOTHROW_LIST)
32115921Sache
33115921SacheDEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_START, "GOMP_atomic_start",
34115925Sache		  BT_FN_VOID, ATTR_NOTHROW_LIST)
35115921SacheDEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_END, "GOMP_atomic_end",
36115921Sache		  BT_FN_VOID, ATTR_NOTHROW_LIST)
37115921SacheDEF_GOMP_BUILTIN (BUILT_IN_GOMP_BARRIER, "GOMP_barrier",
38115921Sache		  BT_FN_VOID, ATTR_NOTHROW_LIST)
39115925SacheDEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_START, "GOMP_critical_start",
40115921Sache		  BT_FN_VOID, ATTR_NOTHROW_LIST)
41115921SacheDEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_END, "GOMP_critical_end",
42115921Sache		  BT_FN_VOID, ATTR_NOTHROW_LIST)
43115921SacheDEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_START,
44		  "GOMP_critical_name_start",
45		  BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LIST)
46DEF_GOMP_BUILTIN (BUILT_IN_GOMP_CRITICAL_NAME_END,
47		  "GOMP_critical_name_end",
48		  BT_FN_VOID_PTRPTR, ATTR_NOTHROW_LIST)
49/* NOTE: Do not change the order of BUILT_IN_GOMP_LOOP_*_START.  They
50   are used in index arithmetic with enum omp_clause_schedule_kind
51   in omp-low.c.  */
52DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_START,
53		  "GOMP_loop_static_start",
54		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
55		  ATTR_NOTHROW_LIST)
56DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_START,
57		  "GOMP_loop_dynamic_start",
58		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
59		  ATTR_NOTHROW_LIST)
60DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_START,
61		  "GOMP_loop_guided_start",
62		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
63		  ATTR_NOTHROW_LIST)
64DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_START,
65		  "GOMP_loop_runtime_start",
66		  BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
67		  ATTR_NOTHROW_LIST)
68DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
69		  "GOMP_loop_ordered_static_start",
70		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
71		  ATTR_NOTHROW_LIST)
72DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
73		  "GOMP_loop_ordered_dynamic_start",
74		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
75		  ATTR_NOTHROW_LIST)
76DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
77		  "GOMP_loop_ordered_guided_start",
78		  BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
79		  ATTR_NOTHROW_LIST)
80DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
81		  "GOMP_loop_ordered_runtime_start",
82		  BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
83		  ATTR_NOTHROW_LIST)
84DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_NEXT, "GOMP_loop_static_next",
85		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST)
86DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, "GOMP_loop_dynamic_next",
87		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST)
88DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_GUIDED_NEXT, "GOMP_loop_guided_next",
89		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST)
90DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, "GOMP_loop_runtime_next",
91		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST)
92DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
93		  "GOMP_loop_ordered_static_next",
94		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST)
95DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
96		  "GOMP_loop_ordered_dynamic_next",
97		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST)
98DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
99		  "GOMP_loop_ordered_guided_next",
100		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST)
101DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
102		  "GOMP_loop_ordered_runtime_next",
103		  BT_FN_BOOL_LONGPTR_LONGPTR, ATTR_NOTHROW_LIST)
104/* NOTE: Do not change the order of BUILT_IN_GOMP_PARALLEL_LOOP_*_START.
105   They are used in index arithmetic with enum omp_clause_schedule_kind
106   in omp-low.c.  */
107DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
108		  "GOMP_parallel_loop_static_start",
109		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
110		  ATTR_NOTHROW_LIST)
111DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
112		  "GOMP_parallel_loop_dynamic_start",
113		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
114		  ATTR_NOTHROW_LIST)
115DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
116		  "GOMP_parallel_loop_guided_start",
117		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
118		  ATTR_NOTHROW_LIST)
119DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
120		  "GOMP_parallel_loop_runtime_start",
121		  BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
122		  ATTR_NOTHROW_LIST)
123DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END, "GOMP_loop_end",
124		  BT_FN_VOID, ATTR_NOTHROW_LIST)
125DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_END_NOWAIT, "GOMP_loop_end_nowait",
126		  BT_FN_VOID, ATTR_NOTHROW_LIST)
127DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_START, "GOMP_ordered_start",
128		  BT_FN_VOID, ATTR_NOTHROW_LIST)
129DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ORDERED_END, "GOMP_ordered_end",
130		  BT_FN_VOID, ATTR_NOTHROW_LIST)
131DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_START, "GOMP_parallel_start",
132		  BT_FN_VOID_OMPFN_PTR_UINT, ATTR_NOTHROW_LIST)
133DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_END, "GOMP_parallel_end",
134		  BT_FN_VOID, ATTR_NOTHROW_LIST)
135DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_START, "GOMP_sections_start",
136		  BT_FN_UINT_UINT, ATTR_NOTHROW_LIST)
137DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_NEXT, "GOMP_sections_next",
138		  BT_FN_UINT, ATTR_NOTHROW_LIST)
139DEF_GOMP_BUILTIN (BUILT_IN_GOMP_PARALLEL_SECTIONS_START,
140		  "GOMP_parallel_sections_start",
141		  BT_FN_VOID_OMPFN_PTR_UINT_UINT, ATTR_NOTHROW_LIST)
142DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END, "GOMP_sections_end",
143		  BT_FN_VOID, ATTR_NOTHROW_LIST)
144DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SECTIONS_END_NOWAIT,
145		  "GOMP_sections_end_nowait",
146		  BT_FN_VOID, ATTR_NOTHROW_LIST)
147DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_START, "GOMP_single_start",
148		  BT_FN_BOOL, ATTR_NOTHROW_LIST)
149DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_START, "GOMP_single_copy_start",
150		  BT_FN_PTR, ATTR_NOTHROW_LIST)
151DEF_GOMP_BUILTIN (BUILT_IN_GOMP_SINGLE_COPY_END, "GOMP_single_copy_end",
152		  BT_FN_VOID_PTR, ATTR_NOTHROW_LIST)
153