Most builtins in omp-builtins.def is marked as LEAF. At a glance, that's surprising but looking at the functions, it turns out that most of them just call 'gomp_thread ()' which is a simple inline function such that no function call remains.
However, that's not true for all - and omp_get_mapped_ptr and omp_getinterop_int really do more. (The other one is an accidental change of mine, which I somehow missed: omp_is_initial_device in the library returns a constant and is already simplified in the compiler. Thus, it really doesn't call any other function.) Comments before I commit this patch, planed for later today? Tobias
omp-builtins.def: Leaf attribute fixes to omp_{is_initial_device,get_{mapped_ptr,interop_int}} gcc/ChangeLog: * omp-builtins.def (BUILT_IN_OMP_IS_INITIAL_DEVICE): Re-add LEAF to the attributes. (BUILT_IN_OMP_GET_MAPPED_PTR, BUILT_IN_OMP_GET_INTEROP_INT): Remove LEAF from the attributes as functions are called. gcc/omp-builtins.def | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/omp-builtins.def b/gcc/omp-builtins.def index db1ec963841..2df2b18122b 100644 --- a/gcc/omp-builtins.def +++ b/gcc/omp-builtins.def @@ -71,7 +71,7 @@ DEF_GOACC_BUILTIN_ONLY (BUILT_IN_GOACC_SINGLE_COPY_END, "GOACC_single_copy_end", DEF_GOMP_BUILTIN_COMPILER (BUILT_IN_OMP_IS_INITIAL_DEVICE, "omp_is_initial_device", BT_FN_INT, - ATTR_CONST_NOTHROW_LIST) + ATTR_CONST_NOTHROW_LEAF_LIST) DEF_GOMP_BUILTIN_COMPILER (BUILT_IN_OMP_GET_INITIAL_DEVICE, "omp_get_initial_device", BT_FN_INT, ATTR_PURE_NOTHROW_LIST) @@ -86,13 +86,13 @@ DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_TEAM_NUM, "omp_get_team_num", DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_NUM_TEAMS, "omp_get_num_teams", BT_FN_INT, ATTR_CONST_NOTHROW_LEAF_LIST) DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_MAPPED_PTR, "omp_get_mapped_ptr", - BT_FN_PTR_CONST_PTR_INT, ATTR_NOTHROW_LEAF_LIST) + BT_FN_PTR_CONST_PTR_INT, ATTR_NOTHROW_LIST) DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_DEFAULT_DEVICE, "omp_get_default_device", BT_FN_INT, ATTR_NOTHROW_LEAF_LIST) DEF_GOMP_BUILTIN (BUILT_IN_OMP_SET_DEFAULT_DEVICE, "omp_set_default_device", BT_FN_INT, ATTR_NOTHROW_LEAF_LIST) DEF_GOMP_BUILTIN (BUILT_IN_OMP_GET_INTEROP_INT, "omp_get_interop_int", - BT_FN_PTRMODE_PTR_INT_PTR, ATTR_NOTHROW_LEAF_LIST) + BT_FN_PTRMODE_PTR_INT_PTR, ATTR_NOTHROW_LIST) DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ATOMIC_START, "GOMP_atomic_start", BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)