On 08/03/2022 11:30, Hafiz Abid Qadeer wrote:
gcc/ChangeLog:* omp-low.cc (omp_enable_pinned_mode): New function. (execute_lower_omp): Call omp_enable_pinned_mode.
This worked for x86_64, but I needed to make the attached adjustment to work on powerpc without a linker error.
I've committed it to OG11. Andrew
openmp: BUILT_IN_GOMP_ENABLE_PINNED_MODE Rework the GOMP_enable_pinned_mode call so that it works on powerpc where the old way gave a local call. gcc/ChangeLog: * omp-builtins.def (BUILT_IN_GOMP_ENABLE_PINNED_MODE): New. * omp-low.c (omp_enable_pinned_mode): Use BUILT_IN_GOMP_ENABLE_PINNED_MODE. diff --git a/gcc/omp-builtins.def b/gcc/omp-builtins.def index c591d79fa07..e442b0b5c94 100644 --- a/gcc/omp-builtins.def +++ b/gcc/omp-builtins.def @@ -468,3 +468,6 @@ DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ERROR, "GOMP_error", DEF_GOMP_BUILTIN (BUILT_IN_GOMP_EVALUATE_TARGET_DEVICE, "GOMP_evaluate_target_device", BT_FN_BOOL_INT_CONST_PTR_CONST_PTR_CONST_PTR, ATTR_NOTHROW_LEAF_LIST) +DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ENABLE_PINNED_MODE, + "GOMP_enable_pinned_mode", + BT_FN_VOID, ATTR_NOTHROW_LIST) diff --git a/gcc/omp-low.c b/gcc/omp-low.c index f7ecfb52c73..4e8ab9e4ca0 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -15432,9 +15432,7 @@ omp_enable_pinned_mode () push_struct_function (decl); init_tree_ssa (cfun); - tree callname = get_identifier ("GOMP_enable_pinned_mode"); - tree calldecl = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL, callname, - voidfntype); + tree calldecl = builtin_decl_explicit (BUILT_IN_GOMP_ENABLE_PINNED_MODE); gcall *call = gimple_build_call (calldecl, 0); gimple_seq seq = NULL;