public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [gomp4.1] OpenMP 4.1 is dead, long live OpenMP 4.5
@ 2015-10-09  7:55 Jakub Jelinek
  2015-10-09 17:26 ` Ilya Verbin
  0 siblings, 1 reply; 4+ messages in thread
From: Jakub Jelinek @ 2015-10-09  7:55 UTC (permalink / raw)
  To: gcc-patches

Hi!

Yesterday the upcoming OpenMP specification got renumbered from 4.1
to 4.5 to take into the amount of 4.0 -> 4.5 changes.

This patch adjusts the 4.1 occurrences I could find.  Not going to rename
the development branch at this point, I hope it can be merged RSN into the
trunk.

2015-10-09  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (gimplify_scan_omp_clauses): Adjust OpenMP version
	number from 4.1 to 4.5 in a comment.
c-family/
	* c-pragma.h (enum pragma_omp_clause): Adjust OpenMP version
	number from 4.1 to 4.5 in a comment.
c/
	* c-parser.c: Adjust OpenMP version numbers from 4.1 to 4.5 in
	all comments.
cp/
	* parser.c: Adjust OpenMP version numbers from 4.1 to 4.5 in
	all comments.
libgomp/
	* libgomp.map (OMP_4.1): Renamed to ...
	(OMP_4.5): ... this.
	(GOMP_4.1): Renamed to ...
	(GOMP_4.5): ... this.
	* libgomp.texi: Adjust OpenMP version number from 4.1 to 4.5.

--- gcc/gimplify.c.jj	2015-10-01 12:55:44.000000000 +0200
+++ gcc/gimplify.c	2015-10-09 09:28:04.025923436 +0200
@@ -6225,7 +6225,7 @@ gimplify_scan_omp_clauses (tree *list_p,
     {
       ctx->target_map_pointers_as_0len_arrays = true;
       /* FIXME: For Fortran we want to set this too, when
-	 the Fortran FE is updated to OpenMP 4.1.  */
+	 the Fortran FE is updated to OpenMP 4.5.  */
       ctx->target_map_scalars_firstprivate = true;
     }
   if (!lang_GNU_Fortran ())
--- gcc/c-family/c-pragma.h.jj	2015-09-03 16:36:02.000000000 +0200
+++ gcc/c-family/c-pragma.h	2015-10-09 09:26:37.283158076 +0200
@@ -76,7 +76,7 @@ enum pragma_kind {
 };
 
 
-/* All clauses defined by OpenACC 2.0, and OpenMP 2.5, 3.0, 3.1, 4.0 and 4.1.
+/* All clauses defined by OpenACC 2.0, and OpenMP 2.5, 3.0, 3.1, 4.0 and 4.5.
    Used internally by both C and C++ parsers.  */
 enum pragma_omp_clause {
   PRAGMA_OMP_CLAUSE_NONE = 0,
--- gcc/c/c-parser.c.jj	2015-09-25 14:47:20.000000000 +0200
+++ gcc/c/c-parser.c	2015-10-09 09:26:12.902505095 +0200
@@ -10586,7 +10586,7 @@ c_parser_omp_clause_final (c_parser *par
 /* OpenACC, OpenMP 2.5:
    if ( expression )
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    if ( directive-name-modifier : expression )
 
    directive-name-modifier:
@@ -10862,7 +10862,7 @@ c_parser_omp_clause_num_threads (c_parse
   return list;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    num_tasks ( expression ) */
 
 static tree
@@ -10906,7 +10906,7 @@ c_parser_omp_clause_num_tasks (c_parser
   return list;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    grainsize ( expression ) */
 
 static tree
@@ -10950,7 +10950,7 @@ c_parser_omp_clause_grainsize (c_parser
   return list;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    priority ( expression ) */
 
 static tree
@@ -10995,7 +10995,7 @@ c_parser_omp_clause_priority (c_parser *
   return list;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    hint ( expression ) */
 
 static tree
@@ -11027,7 +11027,7 @@ c_parser_omp_clause_hint (c_parser *pars
   return list;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    defaultmap ( tofrom : scalar ) */
 
 static tree
@@ -11076,7 +11076,7 @@ c_parser_omp_clause_defaultmap (c_parser
   return list;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    use_device_ptr ( variable-list ) */
 
 static tree
@@ -11086,7 +11086,7 @@ c_parser_omp_clause_use_device_ptr (c_pa
 				       list);
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    is_device_ptr ( variable-list ) */
 
 static tree
@@ -11192,7 +11192,7 @@ c_parser_oacc_clause_wait (c_parser *par
 /* OpenMP 2.5:
    ordered
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    ordered ( constant-expression ) */
 
 static tree
@@ -11371,7 +11371,7 @@ c_parser_omp_clause_reduction (c_parser
    schedule-kind:
      static | dynamic | guided | runtime | auto
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    schedule ( schedule-modifier : schedule-kind )
    schedule ( schedule-modifier : schedule-kind , expression )
 
@@ -11581,7 +11581,7 @@ c_parser_omp_clause_cancelkind (c_parser
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    nogroup */
 
 static tree
@@ -11594,7 +11594,7 @@ c_parser_omp_clause_nogroup (c_parser *p
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    simd
    threads */
 
@@ -11740,7 +11740,7 @@ c_parser_omp_clause_aligned (c_parser *p
    linear ( variable-list )
    linear ( variable-list : expression )
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    linear ( modifier ( variable-list ) )
    linear ( modifier ( variable-list ) : expression ) */
 
@@ -11880,7 +11880,7 @@ c_parser_omp_clause_simdlen (c_parser *p
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    vec:
      identifier [+/- integer]
      vec , identifier [+/- integer]
@@ -11968,7 +11968,7 @@ c_parser_omp_clause_depend_sink (c_parse
    depend-kind:
      in | out | inout
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    depend ( source )
 
    depend ( sink  : vec )  */
@@ -12045,7 +12045,7 @@ c_parser_omp_clause_depend (c_parser *pa
    map-kind:
      alloc | to | from | tofrom
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    map-kind:
      alloc | to | from | tofrom | release | delete
 
@@ -13565,7 +13565,7 @@ c_parser_omp_barrier (c_parser *parser)
    # pragma omp critical [(name)] new-line
      structured-block
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    # pragma omp critical [(name) [hint(expression)]] new-line
 
   LOC is the location of the #pragma itself.  */
@@ -14125,7 +14125,7 @@ c_parser_omp_master (location_t loc, c_p
    # pragma omp ordered new-line
      structured-block
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    # pragma omp ordered ordered-clauses new-line
      structured-block
 
@@ -14828,7 +14828,7 @@ c_parser_omp_target_update (location_t l
   return false;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    # pragma omp target enter data target-data-clause[optseq] new-line  */
 
 #define OMP_TARGET_ENTER_DATA_CLAUSE_MASK			\
@@ -14912,7 +14912,7 @@ c_parser_omp_target_enter_data (location
   return stmt;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    # pragma omp target exit data target-data-clause[optseq] new-line  */
 
 #define OMP_TARGET_EXIT_DATA_CLAUSE_MASK			\
@@ -15410,7 +15410,7 @@ c_finish_omp_declare_simd (c_parser *par
    declarations and definitions
    # pragma omp end declare target new-line
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    # pragma omp declare target ( extended-list ) new-line
 
    # pragma omp declare target declare-target-clauses[seq] new-line  */
@@ -15898,7 +15898,7 @@ c_parser_omp_declare (c_parser *parser,
   c_parser_skip_to_pragma_eol (parser);
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    #pragma omp taskloop taskloop-clause[optseq] new-line
      for-loop
 
--- gcc/cp/parser.c.jj	2015-09-25 14:47:29.000000000 +0200
+++ gcc/cp/parser.c	2015-10-09 09:27:22.018521342 +0200
@@ -29389,7 +29389,7 @@ cp_parser_omp_clause_final (cp_parser *p
 /* OpenMP 2.5:
    if ( expression )
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    if ( directive-name-modifier : expression )
 
    directive-name-modifier:
@@ -29638,7 +29638,7 @@ cp_parser_omp_clause_num_threads (cp_par
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    num_tasks ( expression ) */
 
 static tree
@@ -29668,7 +29668,7 @@ cp_parser_omp_clause_num_tasks (cp_parse
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    grainsize ( expression ) */
 
 static tree
@@ -29698,7 +29698,7 @@ cp_parser_omp_clause_grainsize (cp_parse
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    priority ( expression ) */
 
 static tree
@@ -29728,7 +29728,7 @@ cp_parser_omp_clause_priority (cp_parser
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    hint ( expression ) */
 
 static tree
@@ -29757,7 +29757,7 @@ cp_parser_omp_clause_hint (cp_parser *pa
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    defaultmap ( tofrom : scalar ) */
 
 static tree
@@ -29856,7 +29856,7 @@ cp_parser_omp_clause_num_workers (cp_par
 /* OpenMP 2.5:
    ordered
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    ordered ( constant-expression ) */
 
 static tree
@@ -30017,7 +30017,7 @@ cp_parser_omp_clause_reduction (cp_parse
    schedule-kind:
      static | dynamic | guided | runtime | auto
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    schedule ( schedule-modifier : schedule-kind )
    schedule ( schedule-modifier : schedule-kind , expression )
 
@@ -30168,7 +30168,7 @@ cp_parser_omp_clause_cancelkind (cp_pars
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    nogroup */
 
 static tree
@@ -30181,7 +30181,7 @@ cp_parser_omp_clause_nogroup (cp_parser
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    simd
    threads */
 
@@ -30295,7 +30295,7 @@ cp_parser_omp_clause_aligned (cp_parser
    linear ( variable-list )
    linear ( variable-list : expression )
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    linear ( modifier ( variable-list ) )
    linear ( modifier ( variable-list ) : expression ) */
 
@@ -30428,7 +30428,7 @@ cp_parser_omp_clause_simdlen (cp_parser
   return c;
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    vec:
      identifier [+/- integer]
      vec , identifier [+/- integer]
@@ -30519,7 +30519,7 @@ cp_parser_omp_clause_depend_sink (cp_par
    depend-kind:
      in | out | inout
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    depend ( source )
 
    depend ( sink : vec ) */
@@ -30600,7 +30600,7 @@ cp_parser_omp_clause_depend (cp_parser *
    map-kind:
      alloc | to | from | tofrom
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    map-kind:
      alloc | to | from | tofrom | release | delete
 
@@ -31795,7 +31795,7 @@ cp_parser_omp_barrier (cp_parser *parser
    # pragma omp critical [(name)] new-line
      structured-block
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    # pragma omp critical [(name) [hint(expression)]] new-line
      structured-block  */
 
@@ -32653,7 +32653,7 @@ cp_parser_omp_master (cp_parser *parser,
    # pragma omp ordered new-line
      structured-block
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    # pragma omp ordered ordered-clauses new-line
      structured-block  */
 
@@ -33311,7 +33311,7 @@ cp_parser_omp_target_data (cp_parser *pa
   return add_stmt (stmt);
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    # pragma omp target enter data target-enter-data-clause[optseq] new-line
      structured-block  */
 
@@ -33397,7 +33397,7 @@ cp_parser_omp_target_enter_data (cp_pars
   return add_stmt (stmt);
 }
 
-/* OpenMP 4.1:
+/* OpenMP 4.5:
    # pragma omp target exit data target-enter-data-clause[optseq] new-line
      structured-block  */
 
@@ -34172,7 +34172,7 @@ cp_parser_late_parsing_omp_declare_simd
    declarations and definitions
    # pragma omp end declare target new-line
 
-   OpenMP 4.1:
+   OpenMP 4.5:
    # pragma omp declare target ( extended-list ) new-line
 
    # pragma omp declare target declare-target-clauses[seq] new-line  */
@@ -34716,8 +34716,8 @@ cp_parser_omp_declare (cp_parser *parser
   cp_parser_require_pragma_eol (parser, pragma_tok);
 }
 
-/* OpenMP 4.1:
-7   #pragma omp taskloop taskloop-clause[optseq] new-line
+/* OpenMP 4.5:
+   #pragma omp taskloop taskloop-clause[optseq] new-line
      for-loop
 
    #pragma omp taskloop simd taskloop-simd-clause[optseq] new-line
--- libgomp/libgomp.map.jj	2015-10-01 17:03:55.000000000 +0200
+++ libgomp/libgomp.map	2015-10-09 09:29:12.742940007 +0200
@@ -134,7 +134,7 @@ OMP_4.0 {
 	omp_is_initial_device_;
 } OMP_3.1;
 
-OMP_4.1 {
+OMP_4.5 {
   global:
 	omp_get_max_task_priority;
 	omp_get_max_task_priority_;
@@ -264,7 +264,7 @@ GOMP_4.0.1 {
 	GOMP_offload_unregister;
 } GOMP_4.0;
 
-GOMP_4.1 {
+GOMP_4.5 {
   global:
 	GOMP_target_41;
 	GOMP_target_data_41;
--- libgomp/libgomp.texi.jj	2015-09-03 16:43:49.000000000 +0200
+++ libgomp/libgomp.texi	2015-10-09 09:29:40.371543893 +0200
@@ -407,7 +407,7 @@ This function obtains the maximum allowe
 @end multitable
 
 @item @emph{Reference}:
-@uref{http://www.openmp.org/, OpenMP specification v4.1}, Section 3.2.29.
+@uref{http://www.openmp.org/, OpenMP specification v4.5}, Section 3.2.29.
 @end table
 
 
@@ -1458,7 +1458,7 @@ integer, and zero is allowed.  If undefi
 @ref{omp_get_max_task_priority}
 
 @item @emph{Reference}: 
-@uref{http://www.openmp.org/, OpenMP specification v4.1}, Section 4.14
+@uref{http://www.openmp.org/, OpenMP specification v4.5}, Section 4.14
 @end table
 
 


	Jakub

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gomp4.1] OpenMP 4.1 is dead, long live OpenMP 4.5
  2015-10-09  7:55 [gomp4.1] OpenMP 4.1 is dead, long live OpenMP 4.5 Jakub Jelinek
@ 2015-10-09 17:26 ` Ilya Verbin
  2015-10-15 11:06   ` Jakub Jelinek
  0 siblings, 1 reply; 4+ messages in thread
From: Ilya Verbin @ 2015-10-09 17:26 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: gcc-patches

On Fri, Oct 09, 2015 at 09:55:07 +0200, Jakub Jelinek wrote:
> -GOMP_4.1 {
> +GOMP_4.5 {
>    global:
>  	GOMP_target_41;
>  	GOMP_target_data_41;

Should we rename it to GOMP_target*_45, or do you know some more mnemonic name?

  -- Ilya

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gomp4.1] OpenMP 4.1 is dead, long live OpenMP 4.5
  2015-10-09 17:26 ` Ilya Verbin
@ 2015-10-15 11:06   ` Jakub Jelinek
  2015-10-16 10:29     ` Thomas Schwinge
  0 siblings, 1 reply; 4+ messages in thread
From: Jakub Jelinek @ 2015-10-15 11:06 UTC (permalink / raw)
  To: Ilya Verbin; +Cc: gcc-patches

On Fri, Oct 09, 2015 at 08:26:25PM +0300, Ilya Verbin wrote:
> On Fri, Oct 09, 2015 at 09:55:07 +0200, Jakub Jelinek wrote:
> > -GOMP_4.1 {
> > +GOMP_4.5 {
> >    global:
> >  	GOMP_target_41;
> >  	GOMP_target_data_41;
> 
> Should we rename it to GOMP_target*_45, or do you know some more mnemonic name?

Either to 45, or find a better name, sure.  The latter would be preferable.
Now, for the latter, either we could add something to say those use 16bit
kinds, or something to indicate they allow both synchronous and asynchronous
execution (but what word covers both of that), or that they create a target
task (but that is the case only for GOMP_target and GOMP_target_update (and
the new GOMP_target_enter_exit_data)).
So 16bit kinds is the only thing all of them have in common, thus perhaps
_kind16 suffixes instead of _4{1,5} ?

	Jakub

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [gomp4.1] OpenMP 4.1 is dead, long live OpenMP 4.5
  2015-10-15 11:06   ` Jakub Jelinek
@ 2015-10-16 10:29     ` Thomas Schwinge
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Schwinge @ 2015-10-16 10:29 UTC (permalink / raw)
  To: Jakub Jelinek, Ilya Verbin; +Cc: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1927 bytes --]

Hi!

;-) "Bikeshed" discussion, but while waiting for a test run to finish:

On Thu, 15 Oct 2015 13:06:42 +0200, Jakub Jelinek <jakub@redhat.com> wrote:
> On Fri, Oct 09, 2015 at 08:26:25PM +0300, Ilya Verbin wrote:
> > On Fri, Oct 09, 2015 at 09:55:07 +0200, Jakub Jelinek wrote:
> > > -GOMP_4.1 {
> > > +GOMP_4.5 {
> > >    global:
> > >  	GOMP_target_41;
> > >  	GOMP_target_data_41;
> > 
> > Should we rename it to GOMP_target*_45, or do you know some more mnemonic name?

The OpenMP version is already being encoded in the symbol version.  Which
to me appears a bit "arbitrary", but that at least makes sense in that it
documents for which OpenMP version a specific symbol was introduced
first, and the symbol versions form a list in the libgomp.map file that
is easily understood.  But, encoding the OpenMP version also in the
symbol name itself might be more confusing, because to the casual reader
it's not clear whether, for example, GOMP_target_41 applies just to OpeMP
4.1, or OpenMP 4.1 and later, and likewise, whether the generic
GOMP_target applies to OpenMP versions before or after GOMP_target_41.

> Either to 45, or find a better name, sure.  The latter would be preferable.
> Now, for the latter, either we could add something to say those use 16bit
> kinds, or something to indicate they allow both synchronous and asynchronous
> execution (but what word covers both of that), or that they create a target
> task (but that is the case only for GOMP_target and GOMP_target_update (and
> the new GOMP_target_enter_exit_data)).
> So 16bit kinds is the only thing all of them have in common, thus perhaps
> _kind16 suffixes instead of _4{1,5} ?

Given that it seeems difficult to express the several kinds of changes,
what about simply using GOMP_target_2 and so on?  Everyone should then
understand that it's a replacement/successor of GOMP_target.


Grüße,
 Thomas

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 472 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-10-16 10:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-09  7:55 [gomp4.1] OpenMP 4.1 is dead, long live OpenMP 4.5 Jakub Jelinek
2015-10-09 17:26 ` Ilya Verbin
2015-10-15 11:06   ` Jakub Jelinek
2015-10-16 10:29     ` Thomas Schwinge

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).