From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17250 invoked by alias); 27 Apr 2011 16:22:38 -0000 Received: (qmail 17216 invoked by uid 22791); 27 Apr 2011 16:22:34 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from outpost1.zedat.fu-berlin.de (HELO outpost1.zedat.fu-berlin.de) (130.133.4.66) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 27 Apr 2011 16:22:18 +0000 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by outpost1.zedat.fu-berlin.de (Exim 4.69) with esmtp (envelope-from ) id <1QF7VI-0005DD-Tm>; Wed, 27 Apr 2011 18:22:16 +0200 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) with esmtp (envelope-from ) id <1QF7VI-0005ot-Jf>; Wed, 27 Apr 2011 18:22:16 +0200 Received: from lenny32.physik.fu-berlin.de ([160.45.66.36]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1QF7VI-0002Qy-Ca; Wed, 27 Apr 2011 18:22:16 +0200 Received: from tburnus by lenny32.physik.fu-berlin.de with local (Exim 4.69 #1 (Debian)) id 1QF7VI-00061w-AE; Wed, 27 Apr 2011 18:22:16 +0200 Date: Wed, 27 Apr 2011 16:34:00 -0000 From: Tobias Burnus To: gcc-patches@gcc.gnu.org, Jakub Jelinek Subject: [gomp3.1] Update libgomp.texi Message-ID: <20110427162216.GA23074@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="UlVJffcvxoiEqYs2" Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-04/txt/msg02132.txt.bz2 --UlVJffcvxoiEqYs2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 487 Hi Jakub, hello all, the attached patch updates GOMP-3_1-branch's libgomp.texi for OpenMP 3.1 (current draft). Changes: - Change 3.0 to 3.1, including checking/updating the section numbers - Add omp_in_final - Add OMP_PROC_BIND - Update OMP_NUM_THREADS (now that a list is allowed) - Fix a few small issues like wrong prototypes (It think the section "The libgomp ABI" still needs to be updated, but I leave that to Jakub :-) Jakub, is the patch OK for the GOMP-3_1-branch? Tobias --UlVJffcvxoiEqYs2 Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="gomp-texi.diff" Content-length: 15596 --- libgomp/libgomp.texi.orig 2011-04-27 11:11:38.312345435 +0200 +++ libgomp/libgomp.texi 2011-04-27 11:55:30.054575590 +0200 @@ -116,7 +116,7 @@ A complete description of all OpenMP directives accepted may be found in the @uref{http://www.openmp.org, OpenMP Application Program Interface} manual, -version 3.0. +version 3.1. @c --------------------------------------------------------------------- @@ -127,7 +127,7 @@ @chapter Runtime Library Routines The runtime routines described here are defined by section 3 of the OpenMP -specifications in version 3.0. The routines are structured in following +specifications in version 3.1. The routines are structured in following three parts: Control threads, processors and the parallel environment. @@ -147,6 +147,7 @@ * omp_get_thread_limit:: Maximum number of threads * omp_get_thread_num:: Current thread ID * omp_in_parallel:: Whether a parallel region is active +* omp_in_final:: Whether in final or included task region * omp_set_dynamic:: Enable/disable dynamic teams * omp_set_max_active_levels:: Limits the number of active parallel regions * omp_set_nested:: Enable/disable nested parallel regions @@ -199,7 +200,7 @@ @ref{omp_get_level}, @ref{omp_get_max_active_levels}, @ref{omp_set_max_active_levels} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.19. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.19. @end table @@ -228,7 +229,7 @@ @ref{omp_get_level}, @ref{omp_get_thread_num}, @ref{omp_get_team_size} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.17. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.17. @end table @@ -260,7 +261,7 @@ @ref{omp_set_dynamic}, @ref{OMP_DYNAMIC} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.8. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.8. @end table @@ -286,7 +287,7 @@ @ref{omp_get_active_level} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.16. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.16. @end table @@ -311,7 +312,7 @@ @ref{omp_set_max_active_levels}, @ref{omp_get_active_level} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.14. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.15. @end table @@ -337,7 +338,7 @@ @ref{omp_set_num_threads}, @ref{omp_set_dynamic}, @ref{omp_get_thread_limit} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.3. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.3. @end table @@ -369,7 +370,7 @@ @ref{omp_set_nested}, @ref{OMP_NESTED} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.10. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.10. @end table @@ -391,7 +392,7 @@ @end multitable @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.5. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.5. @end table @@ -424,7 +425,7 @@ @ref{omp_get_max_threads}, @ref{omp_set_num_threads}, @ref{OMP_NUM_THREADS} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.2. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.2. @end table @@ -440,7 +441,7 @@ @item @emph{C/C++} @multitable @columnfractions .20 .80 -@item @emph{Prototype}: @tab @code{omp_schedule(omp_sched_t *kind, int *modifier);} +@item @emph{Prototype}: @tab @code{void omp_schedule(omp_sched_t *kind, int *modifier);} @end multitable @item @emph{Fortran}: @@ -454,7 +455,7 @@ @ref{omp_set_schedule}, @ref{OMP_SCHEDULE} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.12. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.12. @end table @@ -484,7 +485,7 @@ @ref{omp_get_num_threads}, @ref{omp_get_level}, @ref{omp_get_ancestor_thread_num} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.18. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.18. @end table @@ -509,7 +510,7 @@ @ref{omp_get_max_threads}, @ref{OMP_THREAD_LIMIT} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.13. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.13. @end table @@ -538,7 +539,7 @@ @ref{omp_get_num_threads}, @ref{omp_get_ancestor_thread_num} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.4. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.4. @end table @@ -562,7 +563,30 @@ @end multitable @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.6. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.6. +@end table + + +@node omp_in_final +@section @code{omp_in_final} -- Whether in final or included task region +@table @asis +@item @emph{Description}: +This function returns @code{true} if currently running in a final +or included task region, @code{false} otherwise. Here, @code{true} +and @code{false} represent their language-specific counterparts. + +@item @emph{C/C++}: +@multitable @columnfractions .20 .80 +@item @emph{Prototype}: @tab @code{int omp_in_final(void);} +@end multitable + +@item @emph{Fortran}: +@multitable @columnfractions .20 .80 +@item @emph{Interface}: @tab @code{logical function omp_in_final()} +@end multitable + +@item @emph{Reference}: +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.20. @end table @@ -590,7 +614,7 @@ @ref{OMP_DYNAMIC}, @ref{omp_get_dynamic} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.7. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.7. @end table @@ -617,7 +641,7 @@ @ref{omp_get_max_active_levels}, @ref{omp_get_active_level} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.14. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.14. @end table @@ -646,7 +670,7 @@ @ref{OMP_NESTED}, @ref{omp_get_nested} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.9. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.9. @end table @@ -674,7 +698,7 @@ @ref{OMP_NUM_THREADS}, @ref{omp_get_num_threads}, @ref{omp_get_max_threads} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.1. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.1. @end table @@ -692,7 +716,7 @@ @item @emph{C/C++} @multitable @columnfractions .20 .80 -@item @emph{Prototype}: @tab @code{int omp_set_schedule(omp_sched_t *kind, int *modifier);} +@item @emph{Prototype}: @tab @code{void omp_set_schedule(omp_sched_t *kind, int *modifier);} @end multitable @item @emph{Fortran}: @@ -707,7 +731,7 @@ @ref{OMP_SCHEDULE} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.2.11. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.2.11. @end table @@ -734,7 +758,7 @@ @ref{omp_destroy_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.1. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.1. @end table @@ -763,7 +787,7 @@ @ref{omp_init_lock}, @ref{omp_test_lock}, @ref{omp_unset_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.3. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.3. @end table @@ -785,8 +809,7 @@ @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{subroutine omp_test_lock(lock)} -@item @tab @code{logical(omp_logical_kind) :: omp_test_lock} +@item @emph{Interface}: @tab @code{logical function omp_test_lock(lock)} @item @tab @code{integer(omp_lock_kind), intent(inout) :: lock} @end multitable @@ -794,7 +817,7 @@ @ref{omp_init_lock}, @ref{omp_set_lock}, @ref{omp_set_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.5. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.5. @end table @@ -824,7 +847,7 @@ @ref{omp_set_lock}, @ref{omp_test_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.4. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.4. @end table @@ -851,7 +874,7 @@ @ref{omp_init_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.2. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.2. @end table @@ -878,7 +901,7 @@ @ref{omp_destroy_nest_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.1. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.1. @end table @@ -906,7 +929,7 @@ @ref{omp_init_nest_lock}, @ref{omp_unset_nest_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.3. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.3. @end table @@ -928,8 +951,7 @@ @item @emph{Fortran}: @multitable @columnfractions .20 .80 -@item @emph{Interface}: @tab @code{integer function omp_test_nest_lock(lock)} -@item @tab @code{integer(omp_integer_kind) :: omp_test_nest_lock} +@item @emph{Interface}: @tab @code{logical function omp_test_nest_lock(lock)} @item @tab @code{integer(omp_nest_lock_kind), intent(inout) :: lock} @end multitable @@ -938,7 +960,7 @@ @ref{omp_init_lock}, @ref{omp_set_lock}, @ref{omp_set_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.5. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.5. @end table @@ -968,7 +990,7 @@ @ref{omp_set_nest_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.4. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.4. @end table @@ -995,7 +1017,7 @@ @ref{omp_init_lock} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.3.2. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.3.2. @end table @@ -1021,7 +1043,7 @@ @ref{omp_get_wtime} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.4.2. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.4.2. @end table @@ -1049,7 +1071,7 @@ @ref{omp_get_wtick} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 3.4.1. +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 3.4.1. @end table @@ -1064,7 +1086,7 @@ The variables @env{OMP_DYNAMIC}, @env{OMP_MAX_ACTIVE_LEVELS}, @env{OMP_NESTED}, @env{OMP_NUM_THREADS}, @env{OMP_SCHEDULE}, @env{OMP_STACKSIZE},@env{OMP_THREAD_LIMIT} and @env{OMP_WAIT_POLICY} -are defined by section 4 of the OpenMP specifications in version 3.0, +are defined by section 4 of the OpenMP specifications in version 3.1, while @env{GOMP_CPU_AFFINITY} and @env{GOMP_STACKSIZE} are GNU extensions. @@ -1077,6 +1099,7 @@ * OMP_SCHEDULE:: How threads are scheduled * OMP_THREAD_LIMIT:: Set the maximum number of threads * OMP_WAIT_POLICY:: How waiting threads are handled +* OMP_PROC_BIND:: Whether theads may be moved between CPUs * GOMP_CPU_AFFINITY:: Bind threads to specific CPUs * GOMP_STACKSIZE:: Set default thread stack size @end menu @@ -1096,7 +1119,7 @@ @ref{omp_set_dynamic} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.3 +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 4.3 @end table @@ -1114,7 +1137,7 @@ @ref{omp_set_max_active_levels} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.7 +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 4.8 @end table @@ -1134,7 +1157,7 @@ @ref{omp_set_nested} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.4 +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 4.5 @end table @@ -1146,14 +1169,15 @@ @table @asis @item @emph{Description}: Specifies the default number of threads to use in parallel regions. The -value of this variable shall be a positive integer. If undefined one thread -per CPU is used. +value of this variable shall be a comma-separated list of positive integers; +the value specified the number of threads to use for the corresponding nested +level. If undefined one thread per CPU is used. @item @emph{See also}: @ref{omp_set_num_threads} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.2 +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 4.2 @end table @@ -1174,7 +1198,7 @@ @ref{omp_set_schedule} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, sections 2.5.1 and 4.1 +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, sections 2.5.1 and 4.1 @end table @@ -1194,7 +1218,7 @@ dependent. @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, sections 4.5 +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, sections 4.6 @end table @@ -1213,7 +1237,7 @@ @ref{omp_get_thread_limit} @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, section 4.8 +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, section 4.9 @end table @@ -1229,7 +1253,25 @@ they should. @item @emph{Reference}: -@uref{http://www.openmp.org/, OpenMP specifications v3.0}, sections 4.6 +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, sections 4.7 +@end table + + + +@node OMP_PROC_BIND +@section @env{OMP_PROC_BIND} -- Whether theads may be moved between CPUs +@cindex Environment Variable +@table @asis +@item @emph{Description}: +Specifies whether threads may be moved between processors. If set to +@code{true}, OpenMP theads should not be moved, if set to @code{false} +they may be moved. + +@item @emph{See also}: +@ref{GOMP_CPU_AFFINITY} + +@item @emph{Reference}: +@uref{http://www.openmp.org/, OpenMP specifications v3.1}, sections 4.4 @end table @@ -1258,6 +1300,9 @@ If this environment variable is omitted, the host system will handle the assignment of threads to CPUs. + +@item @emph{See also}: +@ref{OMP_PROC_BIND} @end table @@ -1275,7 +1320,7 @@ the stack size is system dependent. @item @emph{See also}: -@ref{GOMP_STACKSIZE} +@ref{OMP_STACKSIZE} @item @emph{Reference}: @uref{http://gcc.gnu.org/ml/gcc-patches/2006-06/msg00493.html, --UlVJffcvxoiEqYs2--