From: Tobias Burnus Date: Thu, 5 Mar 2020 13:47:08 +0000 (+0100) Subject: Merge remote-tracking branch 'origin/releases/gcc-9' into devel/omp/gcc-9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=34fdecb2eb442640e3f5ad40320bd5859392c9f7;p=thirdparty%2Fgcc.git Merge remote-tracking branch 'origin/releases/gcc-9' into devel/omp/gcc-9 Update all GCC 9 commits between tag 'releases/gcc-9.2.0' (r9-7613) and today's GCC 9 branch (r9-8340-g7beafc829c5b122298093ba517023015611aeca8). --- 34fdecb2eb442640e3f5ad40320bd5859392c9f7 diff --cc gcc/c-family/c-common.h index c99f7b422866,68376426721b..a6c13d0c14cf --- a/gcc/c-family/c-common.h +++ b/gcc/c-family/c-common.h @@@ -1184,8 -1185,8 +1185,9 @@@ extern void c_omp_split_clauses (locati tree, tree *); extern tree c_omp_declare_simd_clauses_to_numbers (tree, tree); extern void c_omp_declare_simd_clauses_to_decls (tree, tree); + extern bool c_omp_predefined_variable (tree); extern enum omp_clause_default_kind c_omp_predetermined_sharing (tree); +extern const char *c_omp_map_clause_name (tree, bool); /* Return next tree in the chain for chain_next walking of tree nodes. */ static inline tree diff --cc gcc/c-family/c-omp.c index 50c5296e015e,ebe0b4e81559..d3126e33602b --- a/gcc/c-family/c-omp.c +++ b/gcc/c-family/c-omp.c @@@ -2036,38 -2055,8 +2055,41 @@@ c_omp_predetermined_sharing (tree decl && INTEGRAL_TYPE_P (TREE_TYPE (decl))) return OMP_CLAUSE_DEFAULT_SHARED; + if (c_omp_predefined_variable (decl)) + return OMP_CLAUSE_DEFAULT_SHARED; + return OMP_CLAUSE_DEFAULT_UNSPECIFIED; } + +/* For OpenACC, the OMP_CLAUSE_MAP_KIND of an OMP_CLAUSE_MAP is used internally + to distinguish clauses as seen by the user. Return the "friendly" clause + name for error messages etc., where possible. See also + c/c-parser.c:c_parser_oacc_data_clause and + cp/parser.c:cp_parser_oacc_data_clause. */ + +const char * +c_omp_map_clause_name (tree clause, bool oacc) +{ + if (oacc && OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_MAP) + switch (OMP_CLAUSE_MAP_KIND (clause)) + { + case GOMP_MAP_FORCE_ALLOC: + case GOMP_MAP_ALLOC: return "create"; + case GOMP_MAP_FORCE_TO: + case GOMP_MAP_TO: return "copyin"; + case GOMP_MAP_FORCE_FROM: + case GOMP_MAP_FROM: return "copyout"; + case GOMP_MAP_FORCE_TOFROM: + case GOMP_MAP_TOFROM: return "copy"; + case GOMP_MAP_RELEASE: return "delete"; + case GOMP_MAP_FORCE_PRESENT: return "present"; + case GOMP_MAP_ATTACH: return "attach"; + case GOMP_MAP_FORCE_DETACH: + case GOMP_MAP_DETACH: return "detach"; + case GOMP_MAP_DEVICE_RESIDENT: return "device_resident"; + case GOMP_MAP_LINK: return "link"; + case GOMP_MAP_FORCE_DEVICEPTR: return "deviceptr"; + default: break; + } + return omp_clause_code_name[OMP_CLAUSE_CODE (clause)]; +} diff --cc libgomp/affinity-fmt.c index cd5783f4658e,61417c9e5ae3..09a66f02925c --- a/libgomp/affinity-fmt.c +++ b/libgomp/affinity-fmt.c @@@ -37,10 -37,10 +37,10 @@@ #include #endif - void + bool -gomp_print_string (const char *str, size_t len) +gomp_write_string (const char *str, size_t len) { - fwrite (str, 1, len, stderr); + return fwrite (str, 1, len, stderr) != len; } void diff --cc libgomp/libgomp.h index ab216a312067,c98c1452bd4d..a59bc3330f4b --- a/libgomp/libgomp.h +++ b/libgomp/libgomp.h @@@ -769,7 -751,7 +769,7 @@@ extern void gomp_display_affinity_plac /* affinity-fmt.c */ - extern void gomp_write_string (const char *str, size_t len); -extern bool gomp_print_string (const char *str, size_t len); ++extern bool gomp_write_string (const char *str, size_t len); extern void gomp_set_affinity_format (const char *, size_t); extern void gomp_display_string (char *, size_t, size_t *, const char *, size_t); diff --cc libgomp/target.c index 683a42b1164f,97fc1ee2ddc4..9a5b259223ea --- a/libgomp/target.c +++ b/libgomp/target.c @@@ -2170,8 -1214,8 +2170,9 @@@ gomp_load_image_to_device (struct gomp_ k->tgt = tgt; k->tgt_offset = target_table[i].start; k->refcount = REFCOUNT_INFINITY; - k->dynamic_refcount = 0; - k->link_key = NULL; + k->virtual_refcount = 0; + k->u.attach_count = NULL; ++ k->u.link_key = NULL; array->left = NULL; array->right = NULL; splay_tree_insert (&devicep->mem_map, array); @@@ -2203,8 -1247,8 +2204,9 @@@ k->tgt = tgt; k->tgt_offset = target_var->start; k->refcount = target_size & link_bit ? REFCOUNT_LINK : REFCOUNT_INFINITY; - k->dynamic_refcount = 0; - k->link_key = NULL; + k->virtual_refcount = 0; + k->u.attach_count = NULL; ++ k->u.link_key = NULL; array->left = NULL; array->right = NULL; splay_tree_insert (&devicep->mem_map, array);