2019-08-08 08:39:02 +02:00
|
|
|
|
2019-08-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.c (gomp_map_vars_internal): For GOMP_MAP_USE_DEVICE_PTR
|
|
|
|
|
perform the lookup in the first loop only if !not_found_cnt, otherwise
|
|
|
|
|
perform lookups for it in the second loop guarded with
|
|
|
|
|
if (not_found_cnt || has_firstprivate).
|
|
|
|
|
* testsuite/libgomp.c/target-37.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-22.C: New test.
|
|
|
|
|
|
tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR OpenMP description.
* tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
* tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
for OMP_CLAUSE_USE_DEVICE_ADDR clause.
(walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
* tree-pretty-print.c (dump_omp_clause): Likewise.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Likewise.
* gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
Likewise.
* omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
clause with array or reference to array types, no matter what type
except for reference it has.
gcc/c-family/
* c-pragma.h (enum pragma_omp_clause): Add
PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR. Set PRAGMA_OACC_CLAUSE_USE_DEVICE
equal to PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR instead of being a separate
enumeration value.
gcc/c/
* c-parser.c (c_parser_omp_clause_name): Parse use_device_addr clause.
(c_parser_omp_clause_use_device_addr): New function.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
(OMP_TARGET_DATA_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
(c_parser_omp_target_data): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR
like PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR, adjust diagnostics about no
map or use_device_* clauses.
* c-typeck.c (c_finish_omp_clauses): For OMP_CLAUSE_USE_DEVICE_PTR
in OpenMP, require pointer type rather than pointer or array type.
Handle OMP_CLAUSE_USE_DEVICE_ADDR.
gcc/cp/
* parser.c (cp_parser_omp_clause_name): Parse use_device_addr clause.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
(OMP_TARGET_DATA_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR.
(cp_parser_omp_target_data): Handle PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR
like PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR, adjust diagnostics about no
map or use_device_* clauses.
* semantics.c (finish_omp_clauses): For OMP_CLAUSE_USE_DEVICE_PTR
in OpenMP, require pointer or reference to pointer type rather than
pointer or array or reference to pointer or array type. Handle
OMP_CLAUSE_USE_DEVICE_ADDR.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
gcc/testsuite/
* c-c++-common/gomp/target-data-1.c (foo): Use use_device_addr clause
instead of use_device_ptr clause where required by OpenMP 5.0, add
further tests for both use_device_ptr and use_device_addr clauses.
libgomp/
* testsuite/libgomp.c/target-18.c (struct S): New type.
(foo): Use use_device_addr clause instead of use_device_ptr clause
where required by OpenMP 5.0, add further tests for both use_device_ptr
and use_device_addr clauses.
* testsuite/libgomp.c++/target-9.C (struct S): New type.
(foo): Use use_device_addr clause instead of use_device_ptr clause
where required by OpenMP 5.0, add further tests for both use_device_ptr
and use_device_addr clauses. Add t and u arguments.
(main): Adjust caller.
From-SVN: r274159
2019-08-07 09:27:10 +02:00
|
|
|
|
2019-08-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-18.c (struct S): New type.
|
|
|
|
|
(foo): Use use_device_addr clause instead of use_device_ptr clause
|
|
|
|
|
where required by OpenMP 5.0, add further tests for both use_device_ptr
|
|
|
|
|
and use_device_addr clauses.
|
|
|
|
|
* testsuite/libgomp.c++/target-9.C (struct S): New type.
|
|
|
|
|
(foo): Use use_device_addr clause instead of use_device_ptr clause
|
|
|
|
|
where required by OpenMP 5.0, add further tests for both use_device_ptr
|
|
|
|
|
and use_device_addr clauses. Add t and u arguments.
|
|
|
|
|
(main): Adjust caller.
|
|
|
|
|
|
tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
* tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
(OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment.
* gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
(gimplify_omp_for): Don't do C++ random access iterator clause
adjustments on combined constructs from OMP_LOOP. For OMP_LOOP,
don't predetermine the artificial iterator in case of C++ random
access iterators as lastprivate, but private. For OMP_LOOP, force
bind expr around simd body and force for_pre_body before the
construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
(gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
diff var of C++ random access iterators. Handle
OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
* omp-low.c (lower_rec_input_clauses): For
OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
variables instead of default constructing them.
(lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
is_taskloop_ctx check from the assert to the guarding condition.
gcc/cp/
* parser.c (cp_parser_omp_for_loop): For OMP_LOOP, ignore parallel
clauses and predetermine iterator as lastprivate.
* semantics.c (handle_omp_for_class_iterator): Use
OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV, set it for lastprivate also
on OMP_LOOP construct. If a clause is missing for class iterator
on OMP_LOOP, add firstprivate clause, and if there is private
clause, turn it into firstprivate too.
(finish_omp_for): Formatting fix. For OMP_LOOP, adjust
OMP_CLAUSE_LASTPRIVATE_LOOP_IV clause CP_CLAUSE_INFO, so that it
uses copy ctor instead of default ctor.
* cp-gimplify.c (cp_gimplify_expr): Handle OMP_LOOP like
OMP_DISTRIBUTE etc.
(cp_fold_r): Likewise.
(cp_genericize_r): Likewise.
(cxx_omp_finish_clause): Also finish lastprivate clause with
OMP_CLAUSE_LASTPRIVATE_LOOP_IV flag.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_BIND.
(tsubst_omp_for_iterator): For OMP_LOOP, ignore parallel
clauses and predetermine iterator as lastprivate.
* constexpr.c (potential_constant_expression_1): Handle OMP_LOOP
like OMP_DISTRIBUTE etc.
libgomp/
* testsuite/libgomp.c++/loop-13.C: New test.
* testsuite/libgomp.c++/loop-14.C: New test.
* testsuite/libgomp.c++/loop-15.C: New test.
From-SVN: r274138
2019-08-06 09:26:32 +02:00
|
|
|
|
2019-08-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/loop-13.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-14.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-15.C: New test.
|
|
|
|
|
|
2019-07-31 09:49:56 +02:00
|
|
|
|
2019-07-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/91301
|
|
|
|
|
* testsuite/libgomp.c++/for-27.C: New test.
|
|
|
|
|
|
arith.c (gfc_convert_integer, [...]): Move to ...
2019-07-23 Steven G. Kargl <kargl@gcc.gnu.org>
* arith.c (gfc_convert_integer, gfc_convert_real, gfc_convert_complex):
Move to ...
* primary.c (convert_integer, convert_real, convert_complex): ... here.
Rename and make static functions.
(match_integer_constant): Use convert_integer
(match_real_constant): Use convert_real.
(match_complex_constant: Use convert_complex.
* arith.h (gfc_convert_integer, gfc_convert_real, gfc_convert_complex):
Remove prototypes.
* array.c (match_array_cons_element): A BOZ cannot be a data
statement value. Jump to a common exit point.
* check.c (gfc_invalid_boz): New function. Emit error or warning
for a BOZ in an invalid context.
(boz_args_check): Move to top of file to prevent need of forward
declaration.
(is_boz_constant): New function. Check that BOZ expr is constant.
(gfc_b z2real): New function. In-place conversion of BOZ literal
constant to REAL in accordance to F2018.
(gfc_boz2int): New function. In-place conversion of BOZ literal
onstant to INTEGER in accordance to F2018.
(gfc_check_achar, gfc_check_char, gfc_check_float): Use gfc_invalid_boz.
Convert BOZ as needed.
(gfc_check_bge_bgt_ble_blt): Enforce F2018 requirements on BGE,
BGT, BLE, and BLT intrinsic functions.
(gfc_check_cmplx): Re-organize to check kind, if present, first.
Convert BOZ real and/or imaginary parts as needed in accordance to
F2018.
(gfc_check_complex): Use gfc_invalid_boz. Convert BOZ as needed.
(gfc_check_dcmplx, gfc_check_dble ): Convert BOZ as needed.
(gfc_check_dshift): Make dshift[lr] conform to F2018 standard.
gfc_check_float (gfc_expr *a)
(gfc_check_iand_ieor_ior): Make IAND, IEOR, and IOR conform to
F2018 standard.
(gfc_check_int): Conform to F2018 standard.
(gfc_check_intconv): Deprecate SHORT and LONG aliases for INT2 and
INT. Simply return for a BOZ argument. See gfc_simplify_intconv.
(gfc_check_merge_bits): Make MERGE_BITS conform to Fortran 2018
standard.
(gfc_check_real): Remove incorrect comment. Check kind, if present,
first. Simply return for a BOZ argument. See gfc_simplify_real.
(gfc_check_and): Re-do error handling for BOZ arguments. Remove
special casing ts.type != BT_INTEGER or BT_LOGICAL.
* decl.c (match_old_style_init): Check for BOZ in old-style
initialization. Issue error or warning depending on
-fallow-invalid-boz option. Issue error if variable is not an
INTEGER or REAL and the value is BOZ.
* expr.c (gfc_copy_expr): Copy a BT_BOZ gfc_expr.
(gfc_check_assign): Re-do error handling for a BOZ in an assignment
statement. Do in-place conversion of RHS based on LHS type of
INTEGER or REAL.
* gfortran.h (gfc_expr): Add a boz component. Remove is_boz component.
(gfc_boz2int, gfc_boz2real, gfc_invalid_boz): New prototypes.
* interface.c (gfc_extend_assign): Guard against replacing an
intrinsic involving a BOZ literal constant on RHS.
* invoke.texi: Doument -fallow-invalid-boz.
* lang.opt: New option. -fallow-invalid-boz.
* libgfortran.h (bt): Elevate BOZ to a basic type.
* misc.c (gfc_basic_typename, gfc_typename): Translate BT_BOZ to BOZ.
* primary.c (convert_integer, convert_real, convert_complex): to here.
Rename and make static functions.
* primary.c(match_boz_constant): Rewrite parsing of a BOZ. Re-do
error handling. Deprecate 'X' for hexidecimal and postfix notation.
Use -fallow-invalid-boz and gfc_invalid_boz to accept deprecated code.
* resolve.c (resolve_ordinary_assign): Rework a RHS that is a
BOZ literal constant. Use gfc_invalid_boz to allow previous
nonstandard behavior. Remove range checking of BOZ conversion.
* simplify.c (convert_boz): Remove function.
(simplify_cmplx): Remove conversion of BOZ constants, because
conversion is done in gfc_check_cmplx.
(gfc_simplify_float): Remove conversion of BOZ constant, because
conversion is done in gfc_check_float.
(simplify_intconv): Use gfc_boz2int to convert BOZ to INTEGER.
Remove range checking for BOZ conversion.
(gfc_simplify_real): Use k, if present, to determine kind. Convert
BOZ to REAL. Remove range checking for BOZ conversion.
target-memory.c (gfc_convert_boz): Rewrite to deal with convert of
a BOZ to a REAL value.
2019-07-23 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.dg/achar_5.f90: Fix for new BOZ handling.
* arithmetic_overflow_1.f90: Ditto.
* gfortran.dg/boz_11.f90: Ditto.
* gfortran.dg/boz_12.f90: Ditto.
* gfortran.dg/boz_4.f90: Ditto.
* gfortran.dg/boz_5.f90: Ditto.
* gfortran.dg/boz_6.f90: Ditto.
* gfortran.dg/boz_7.f90: Ditto.
* gfortran.dg/boz_8.f90: Ditto.
* gfortran.dg/dec_structure_6.f90: Ditto.
* gfortran.dg/dec_union_1.f90: Ditto.
* gfortran.dg/dec_union_2.f90: Ditto.
* gfortran.dg/dec_union_5.f90: Ditto.
* gfortran.dg/dshift_3.f90: Ditto.
* gfortran.dg/gnu_logical_2.f90: Ditto.
* gfortran.dg/int_conv_1.f90: Ditto.
* gfortran.dg/ishft_1.f90: Ditto.
* gfortran.dg/nan_4.f90: Ditto.
* gfortran.dg/no_range_check_3.f90: Ditto.
* gfortran.dg/pr16433.f: Ditto.
* gfortran.dg/pr44491.f90: Ditto.
* gfortran.dg/pr58027.f90: Ditto.
* gfortran.dg/pr81509_2.f90: Ditto.
* gfortran.dg/unf_io_convert_1.f90: Ditto.
* gfortran.dg/unf_io_convert_2.f90: Ditto.
* gfortran.fortran-torture/execute/intrinsic_fraction_exponent.f90:
Ditto.
* gfortran.fortran-torture/execute/intrinsic_mvbits.f90: Ditto.
* gfortran.fortran-torture/execute/intrinsic_nearest.f90: Ditto.
* gfortran.fortran-torture/execute/seq_io.f90: Ditto.
* gfortran.dg/gnu_logical_1.F: Delete test.
* gfortran.dg/merge_bits_3.f90: New test.
* gfortran.dg/merge_bits_3.f90: Ditto.
* gfortran.dg/boz_int.f90: Ditto.
* gfortran.dg/boz_bge.f90: Ditto.
* gfortran.dg/boz_complex_1.f90: Ditto.
* gfortran.dg/boz_complex_2.f90: Ditto.
* gfortran.dg/boz_complex_3.f90: Ditto.
* gfortran.dg/boz_dble.f90: Ditto.
* gfortran.dg/boz_dshift_1.f90: Ditto.
* gfortran.dg/boz_dshift_2.f90: Ditto.
* gfortran.dg/boz_float_1.f90: Ditto.
* gfortran.dg/boz_float_2.f90: Ditto.
* gfortran.dg/boz_float_3.f90: Ditto.
* gfortran.dg/boz_iand_1.f90: Ditto.
* gfortran.dg/boz_iand_2.f90: Ditto.
2019-07-23 Steven G. Kargl <kargl@gcc.gnu.org>
* testsuite/libgomp.fortran/reduction4.f90: Update BOZ usage
* testsuite/libgomp.fortran/reduction5.f90: Ditto.
From-SVN: r273747
2019-07-23 23:43:21 +02:00
|
|
|
|
2019-07-23 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reduction4.f90: Update BOZ usage
|
|
|
|
|
* testsuite/libgomp.fortran/reduction5.f90: Ditto.
|
|
|
|
|
|
tree.def (OMP_LOOP): New tree code.
* tree.def (OMP_LOOP): New tree code.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
(enum omp_clause_bind_kind): New enum.
(struct tree_omp_clause): Add subcode.bind_kind.
* tree.h (OMP_LOOP_CHECK): Rename to ...
(OMP_LOOPING_CHECK): ... this.
(OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
(OMP_CLAUSE_BIND_KIND): Define.
* tree.c (omp_clause_num_ops, omp_clause_code_name): Add
bind clause entries.
(walk_tree_1): Handle OMP_CLAUSE_BIND.
* tree-pretty-print.c (dump_omp_clause): Likewise.
(dump_generic_node): Handle OMP_LOOP.
* gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
(in_omp_construct): New variable.
(is_gimple_stmt): Handle OMP_LOOP.
(gimplify_scan_omp_clauses): For lastprivate don't set
check_non_private if code == OMP_LOOP. For reduction clause
on OMP_LOOP combined with parallel or teams propagate as shared
on the combined construct. Handle OMP_CLAUSE_BIND.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
(gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
for constructs from a loop construct to gimplify_scan_omp_clauses.
Don't predetermine iterator linear on OMP_SIMD from loop construct.
(replace_reduction_placeholders, gimplify_omp_loop): New functions.
(gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
to match the implicit ORT_TARGET construct around whole body.
Temporarily clear in_omp_construct when processing body.
(gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP
etc. temporarily set in_omp_construct when processing body.
(gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
* omp-low.c (struct omp_context): Add loop_p.
(build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
in that the original var might be private.
(scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
(check_omp_nesting_restrictions): Adjust nesting restrictions for
addition of loop construct.
(scan_omp_1_stmt): Allow setjmp inside of loop construct.
gcc/c-family/
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_LOOP.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_BIND.
* c-pragma.c (omp_pragmas_simd): Add PRAGMA_OMP_LOOP entry.
* c-common.h (enum c_omp_clause_split): Add C_OMP_CLAUSE_SPLIT_LOOP.
* c-omp.c (c_omp_split_clauses): Add support for 4 new combined
constructs with the loop construct.
gcc/c/
* c-parser.c (c_parser_omp_clause_name): Handle bind clause.
(c_parser_omp_clause_bind): New function.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_BIND.
(OMP_LOOP_CLAUSE_MASK): Define.
(c_parser_omp_loop): New function.
(c_parser_omp_parallel, c_parser_omp_teams): Handle parsing of
loop combined with parallel or teams.
(c_parser_omp_construct): Handle PRAGMA_OMP_LOOP.
* c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_BIND.
gcc/cp/
* cp-tree.h (OMP_FOR_GIMPLIFYING_P): Use OMP_LOOPING_CHECK
instead of OMP_LOOP_CHECK.
* parser.c (cp_parser_omp_clause_name): Handle bind clause.
(cp_parser_omp_clause_bind): New function.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_BIND.
(OMP_LOOP_CLAUSE_MASK): Define.
(cp_parser_omp_loop): New function.
(cp_parser_omp_parallel, cp_parser_omp_teams): Handle parsing of
loop combined with parallel or teams.
(cp_parser_omp_construct): Handle PRAGMA_OMP_LOOP.
(cp_parser_pragma): Likewise.
* pt.c (tsubst_expr): Handle OMP_LOOP.
* semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_BIND.
gcc/testsuite/
* c-c++-common/gomp/cancel-1.c: Adjust expected diagnostic wording.
* c-c++-common/gomp/clauses-1.c (foo, baz, bar): Add order(concurrent)
clause where allowed. Add combined constructs with loop with all
possible clauses.
(qux): New function.
* c-c++-common/gomp/loop-1.c: New test.
* c-c++-common/gomp/loop-2.c: New test.
* c-c++-common/gomp/loop-3.c: New test.
* c-c++-common/gomp/loop-4.c: New test.
* c-c++-common/gomp/loop-5.c: New test.
* c-c++-common/gomp/order-3.c: Adjust expected diagnostic wording.
* c-c++-common/gomp/simd-setjmp-1.c: New test.
* c-c++-common/gomp/teams-2.c: Adjust expected diagnostic wording.
libgomp/
* testsuite/libgomp.c-c++-common/loop-1.c: New test.
From-SVN: r273621
2019-07-20 13:21:42 +02:00
|
|
|
|
2019-07-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c-c++-common/loop-1.c: New test.
|
|
|
|
|
|
2019-07-09 00:11:59 +02:00
|
|
|
|
2019-07-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/scan-13.C: Replace xfail with target x86.
|
|
|
|
|
* testsuite/libgomp.c++/scan-16.C: Likewise.
|
|
|
|
|
|
2019-07-06 09:53:48 +02:00
|
|
|
|
2019-07-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-07-06 23:58:01 +02:00
|
|
|
|
* testsuite/libgomp.c/scan-19.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-20.c: New test.
|
|
|
|
|
|
2019-07-06 09:53:48 +02:00
|
|
|
|
* testsuite/libgomp.c/scan-11.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-12.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-13.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-14.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-15.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-16.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-17.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-18.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-9.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-10.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-12.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-13.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-14.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-15.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-16.C: New test.
|
|
|
|
|
|
2019-07-04 23:40:56 +02:00
|
|
|
|
2019-07-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/scan-9.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-10.c: New test.
|
|
|
|
|
|
2019-07-03 07:03:58 +02:00
|
|
|
|
2019-07-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/scan-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/scan-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/scan-8.c: New test.
|
|
|
|
|
|
2019-06-19 00:14:43 +02:00
|
|
|
|
2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2019-06-19 00:15:03 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c++/firstprivate-mappings-1.C: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/firstprivate-mappings-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2019-06-19 00:14:43 +02:00
|
|
|
|
* testsuite/libgomp.fortran/allocatable3.f90: Add missing results
|
|
|
|
|
check.
|
|
|
|
|
|
2019-06-19 00:14:34 +02:00
|
|
|
|
2019-06-18 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/allocatable-array-1.f90: New
|
|
|
|
|
file.
|
|
|
|
|
|
2019-06-19 00:13:54 +02:00
|
|
|
|
2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2019-06-19 00:14:24 +02:00
|
|
|
|
PR fortran/90743
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed): Handle NULL mapping
|
|
|
|
|
case.
|
|
|
|
|
* testsuite/libgomp.fortran/target-allocatable-1-1.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/target-allocatable-1-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/allocatable-1-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/allocatable-1-2.f90: Likewise.
|
|
|
|
|
|
2019-06-19 00:14:14 +02:00
|
|
|
|
PR testsuite/90861
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-vla.c: Update.
|
|
|
|
|
|
2019-06-19 00:13:54 +02:00
|
|
|
|
PR middle-end/90862
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-1.c: Update.
|
|
|
|
|
|
2019-06-16 09:47:15 +02:00
|
|
|
|
2019-06-16 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/89376
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr89376.c: New test.
|
|
|
|
|
|
2019-06-15 14:01:30 +02:00
|
|
|
|
2019-06-15 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/89713
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Expect no bar.sync.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Same.
|
|
|
|
|
|
2019-06-15 09:09:04 +02:00
|
|
|
|
2019-06-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/90779
|
|
|
|
|
* testsuite/libgomp.c/pr90779.c: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr90779.f90: New test.
|
|
|
|
|
|
2019-06-15 09:06:19 +02:00
|
|
|
|
2019-06-15 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90009
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr90009.c: New test.
|
|
|
|
|
|
2019-06-13 06:17:42 +02:00
|
|
|
|
2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/89713
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr84955-1.c: New test.
|
|
|
|
|
|
2019-06-11 18:40:10 +02:00
|
|
|
|
2019-06-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/90811
|
|
|
|
|
* testsuite/libgomp.c/pr90811.c: New test.
|
|
|
|
|
|
2019-06-05 09:37:40 +02:00
|
|
|
|
2019-06-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/lastprivate-conditional-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/lastprivate-conditional-2.C: New test.
|
|
|
|
|
|
2019-06-04 14:49:03 +02:00
|
|
|
|
2019-06-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-8.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-9.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-10.c: New test.
|
|
|
|
|
|
2019-05-30 11:06:48 +02:00
|
|
|
|
2019-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Call AX_COUNT_CPUS.
|
|
|
|
|
Substitute CPU_COUNT.
|
|
|
|
|
* testsuite/Makefile.am (check-am): Use CPU_COUNT as processor
|
|
|
|
|
count fallback.
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* Makefile.in, testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
2019-05-29 09:51:43 +02:00
|
|
|
|
2019-05-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: Rename
|
|
|
|
|
to ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-4.c: ... this.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-6.c: New test.
|
|
|
|
|
|
2019-05-27 23:27:00 +02:00
|
|
|
|
2019-05-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-05-27 23:33:37 +02:00
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: New test.
|
|
|
|
|
|
2019-05-27 23:31:40 +02:00
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-3.c: New test.
|
|
|
|
|
|
2019-05-27 23:27:00 +02:00
|
|
|
|
PR libgomp/90641
|
|
|
|
|
* work.c (gomp_init_work_share): Instead of aligning final ordered
|
|
|
|
|
value to multiples of long long alignment, align to that the
|
|
|
|
|
first part (ordered team ids) and if inline_ordered_team_ids
|
|
|
|
|
is not on a long long alignment boundary within the structure,
|
|
|
|
|
use __alignof__ (long long) - 1 pad size always.
|
|
|
|
|
* loop.c (GOMP_loop_start): Fix *mem computation if
|
|
|
|
|
inline_ordered_team_ids is not aligned on long long alignment boundary
|
|
|
|
|
within the structure.
|
|
|
|
|
* loop-ull.c (GOMP_loop_ull_start): Likewise.
|
|
|
|
|
* sections.c (GOMP_sections2_start): Likewise.
|
|
|
|
|
|
2019-05-24 10:59:37 +02:00
|
|
|
|
2019-05-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
* tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
OMP_CLAUSE__REDUCTEMP_.
* tree.c (omp_clause_num_ops, omp_clause_code_name): Add
OMP_CLAUSE__CONDTEMP_.
(walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
* tree-pretty-print.c (dump_omp_clause): Likewise.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Likewise.
* gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
(gimplify_scan_omp_clauses): Don't reject lastprivate conditional
on OMP_FOR.
(gimplify_omp_for): Warn and disable conditional modifier from
lastprivate on loop iterators.
* omp-general.h (struct omp_for_data): Add lastprivate_conditional
member.
* omp-general.c (omp_extract_for_data): Initialize it.
* omp-low.c (struct omp_context): Add lastprivate_conditional_map
member.
(delete_omp_context): Delete it.
(lower_lastprivate_conditional_clauses): New function.
(lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
handle lastprivate conditional clauses.
(lower_reduction_clauses): Add CLIST argument, emit it into
the critical section if any.
(lower_omp_sections): Adjust lower_lastprivate_clauses and
lower_reduction_clauses callers.
(lower_omp_for_lastprivate): Add CLIST argument, pass it through
to lower_lastprivate_clauses.
(lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
clist into a critical section if not emitted there already by
lower_reduction_clauses.
(lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
callers.
(lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
conditional variables.
* omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
clause is present.
(expand_omp_for_generic, expand_omp_for_static_nochunk,
expand_omp_for_static_chunk): Handle lastprivate conditional.
(expand_omp_for): Handle fd.lastprivate_conditional like
fd.have_reductemp.
gcc/testsuite/
* c-c++-common/gomp/lastprivate-conditional-2.c (foo): Don't expect
sorry for omp for.
* c-c++-common/gomp/lastprivate-conditional-3.c: New test.
libgomp/
* testsuite/libgomp.c-c++-common/lastprivate-conditional-1.c: New test.
* testsuite/libgomp.c-c++-common/lastprivate-conditional-2.c: New test.
From-SVN: r271610
2019-05-24 23:31:59 +02:00
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/lastprivate-conditional-2.c: New test.
|
|
|
|
|
|
2019-05-24 10:59:37 +02:00
|
|
|
|
PR libgomp/90585
|
|
|
|
|
* plugin/plugin-hsa.c: Include gstdint.h. Include inttypes.h only if
|
|
|
|
|
HAVE_INTTYPES_H is defined.
|
|
|
|
|
(print_uint64_t): New typedef.
|
|
|
|
|
(PRIu64): Define if HAVE_INTTYPES_H is not defined.
|
|
|
|
|
(print_kernel_dispatch, run_kernel): Use PRIu64 macro instead of
|
|
|
|
|
"lu", cast uint64_t HSA_DEBUG and fprintf arguments to print_uint64_t.
|
|
|
|
|
(release_kernel_dispatch): Likewise. Cast shadow->debug to uintptr_t
|
|
|
|
|
before casting to void *.
|
|
|
|
|
* plugin/plugin-nvptx.c: Include gstdint.h instead of stdint.h.
|
|
|
|
|
* oacc-mem.c: Don't include config.h nor stdint.h.
|
|
|
|
|
* target.c: Don't include config.h.
|
|
|
|
|
* oacc-cuda.c: Likewise.
|
|
|
|
|
* oacc-host.c: Don't include stdint.h.
|
|
|
|
|
|
2019-05-20 23:29:17 +02:00
|
|
|
|
2019-05-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/90527
|
|
|
|
|
* alloc.c (_GNU_SOURCE): Define.
|
|
|
|
|
|
OpenACC Profiling Interface (incomplete)
libgomp/
* acc_prof.h: New file.
* oacc-profiling.c: Likewise.
* Makefile.am (nodist_libsubinclude_HEADERS, libgomp_la_SOURCES):
Add these, respectively.
* Makefile.in: Regenerate.
* env.c (initialize_env): Call goacc_profiling_initialize.
* oacc-plugin.c (GOMP_PLUGIN_goacc_thread)
(GOMP_PLUGIN_goacc_profiling_dispatch): New functions.
* oacc-plugin.h (GOMP_PLUGIN_goacc_thread)
(GOMP_PLUGIN_goacc_profiling_dispatch): Declare.
* libgomp.map (OACC_2.5.1): Add acc_prof_lookup,
acc_prof_register, acc_prof_unregister, and acc_register_library.
(GOMP_PLUGIN_1.3): Add GOMP_PLUGIN_goacc_profiling_dispatch, and
GOMP_PLUGIN_goacc_thread.
* oacc-int.h (struct goacc_thread): Add prof_info, api_info,
prof_callbacks_enabled members.
(goacc_prof_enabled, goacc_profiling_initialize)
(_goacc_profiling_dispatch_p, _goacc_profiling_setup_p)
(goacc_profiling_dispatch): Declare.
(GOACC_PROF_ENABLED, GOACC_PROFILING_DISPATCH_P)
(GOACC_PROFILING_SETUP_P): Define.
* oacc-async.c (acc_async_test, acc_async_test_all, acc_wait)
(acc_wait_async, acc_wait_all, acc_wait_all_async): Update for
OpenACC Profiling Interface.
* oacc-cuda.c (acc_get_current_cuda_device)
(acc_get_current_cuda_context, acc_get_cuda_stream)
(acc_set_cuda_stream): Likewise.
* oacc-init.c (acc_init_1, goacc_attach_host_thread_to_device)
(acc_init, acc_set_device_type, acc_get_device_type)
(acc_get_device_num, goacc_lazy_initialize): Likewise.
* oacc-mem.c (acc_malloc, acc_free, memcpy_tofrom_device)
(acc_deviceptr, acc_hostptr, acc_is_present, acc_map_data)
(acc_unmap_data, present_create_copy, delete_copyout)
(update_dev_host): Likewise.
* oacc-parallel.c (GOACC_parallel_keyed, GOACC_data_start)
(GOACC_data_end, GOACC_enter_exit_data, GOACC_update, GOACC_wait):
Likewise.
* plugin/plugin-nvptx.c (nvptx_exec, nvptx_alloc, nvptx_free)
(GOMP_OFFLOAD_openacc_exec, GOMP_OFFLOAD_openacc_async_exec):
Likewise.
* libgomp.texi: Update.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-dispatch-1.c: New
file.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-valid_bytes-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-version-1.c:
Likewise.
From-SVN: r271346
2019-05-17 21:13:36 +02:00
|
|
|
|
2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* acc_prof.h: New file.
|
|
|
|
|
* oacc-profiling.c: Likewise.
|
|
|
|
|
* Makefile.am (nodist_libsubinclude_HEADERS, libgomp_la_SOURCES):
|
|
|
|
|
Add these, respectively.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* env.c (initialize_env): Call goacc_profiling_initialize.
|
|
|
|
|
* oacc-plugin.c (GOMP_PLUGIN_goacc_thread)
|
|
|
|
|
(GOMP_PLUGIN_goacc_profiling_dispatch): New functions.
|
|
|
|
|
* oacc-plugin.h (GOMP_PLUGIN_goacc_thread)
|
|
|
|
|
(GOMP_PLUGIN_goacc_profiling_dispatch): Declare.
|
|
|
|
|
* libgomp.map (OACC_2.5.1): Add acc_prof_lookup,
|
|
|
|
|
acc_prof_register, acc_prof_unregister, and acc_register_library.
|
|
|
|
|
(GOMP_PLUGIN_1.3): Add GOMP_PLUGIN_goacc_profiling_dispatch, and
|
|
|
|
|
GOMP_PLUGIN_goacc_thread.
|
|
|
|
|
* oacc-int.h (struct goacc_thread): Add prof_info, api_info,
|
|
|
|
|
prof_callbacks_enabled members.
|
|
|
|
|
(goacc_prof_enabled, goacc_profiling_initialize)
|
|
|
|
|
(_goacc_profiling_dispatch_p, _goacc_profiling_setup_p)
|
|
|
|
|
(goacc_profiling_dispatch): Declare.
|
|
|
|
|
(GOACC_PROF_ENABLED, GOACC_PROFILING_DISPATCH_P)
|
|
|
|
|
(GOACC_PROFILING_SETUP_P): Define.
|
|
|
|
|
* oacc-async.c (acc_async_test, acc_async_test_all, acc_wait)
|
|
|
|
|
(acc_wait_async, acc_wait_all, acc_wait_all_async): Update for
|
|
|
|
|
OpenACC Profiling Interface.
|
|
|
|
|
* oacc-cuda.c (acc_get_current_cuda_device)
|
|
|
|
|
(acc_get_current_cuda_context, acc_get_cuda_stream)
|
|
|
|
|
(acc_set_cuda_stream): Likewise.
|
|
|
|
|
* oacc-init.c (acc_init_1, goacc_attach_host_thread_to_device)
|
|
|
|
|
(acc_init, acc_set_device_type, acc_get_device_type)
|
|
|
|
|
(acc_get_device_num, goacc_lazy_initialize): Likewise.
|
|
|
|
|
* oacc-mem.c (acc_malloc, acc_free, memcpy_tofrom_device)
|
|
|
|
|
(acc_deviceptr, acc_hostptr, acc_is_present, acc_map_data)
|
|
|
|
|
(acc_unmap_data, present_create_copy, delete_copyout)
|
|
|
|
|
(update_dev_host): Likewise.
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed, GOACC_data_start)
|
|
|
|
|
(GOACC_data_end, GOACC_enter_exit_data, GOACC_update, GOACC_wait):
|
|
|
|
|
Likewise.
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec, nvptx_alloc, nvptx_free)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_exec, GOMP_OFFLOAD_openacc_async_exec):
|
|
|
|
|
Likewise.
|
|
|
|
|
* libgomp.texi: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_prof-dispatch-1.c: New
|
|
|
|
|
file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_prof-valid_bytes-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_prof-version-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2019-05-13 Chung-Lin Tang <cltang@codesourcery.com>
Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
libgomp/
* libgomp-plugin.h (struct goacc_asyncqueue): Declare.
(struct goacc_asyncqueue_list): Likewise.
(goacc_aq): Likewise.
(goacc_aq_list): Likewise.
(GOMP_OFFLOAD_openacc_register_async_cleanup): Remove.
(GOMP_OFFLOAD_openacc_async_test): Remove.
(GOMP_OFFLOAD_openacc_async_test_all): Remove.
(GOMP_OFFLOAD_openacc_async_wait): Remove.
(GOMP_OFFLOAD_openacc_async_wait_async): Remove.
(GOMP_OFFLOAD_openacc_async_wait_all): Remove.
(GOMP_OFFLOAD_openacc_async_wait_all_async): Remove.
(GOMP_OFFLOAD_openacc_async_set_async): Remove.
(GOMP_OFFLOAD_openacc_exec): Adjust declaration.
(GOMP_OFFLOAD_openacc_cuda_get_stream): Likewise.
(GOMP_OFFLOAD_openacc_cuda_set_stream): Likewise.
(GOMP_OFFLOAD_openacc_async_exec): Declare.
(GOMP_OFFLOAD_openacc_async_construct): Declare.
(GOMP_OFFLOAD_openacc_async_destruct): Declare.
(GOMP_OFFLOAD_openacc_async_test): Declare.
(GOMP_OFFLOAD_openacc_async_synchronize): Declare.
(GOMP_OFFLOAD_openacc_async_serialize): Declare.
(GOMP_OFFLOAD_openacc_async_queue_callback): Declare.
(GOMP_OFFLOAD_openacc_async_host2dev): Declare.
(GOMP_OFFLOAD_openacc_async_dev2host): Declare.
* libgomp.h (struct acc_dispatch_t): Define 'async' sub-struct.
(gomp_acc_insert_pointer): Adjust declaration.
(gomp_copy_host2dev): New declaration.
(gomp_copy_dev2host): Likewise.
(gomp_map_vars_async): Likewise.
(gomp_unmap_tgt): Likewise.
(gomp_unmap_vars_async): Likewise.
(gomp_fini_device): Likewise.
* oacc-async.c (get_goacc_thread): New function.
(get_goacc_thread_device): New function.
(lookup_goacc_asyncqueue): New function.
(get_goacc_asyncqueue): New function.
(acc_async_test): Adjust code to use new async design.
(acc_async_test_all): Likewise.
(acc_wait): Likewise.
(acc_wait_async): Likewise.
(acc_wait_all): Likewise.
(acc_wait_all_async): Likewise.
(goacc_async_free): New function.
(goacc_init_asyncqueues): Likewise.
(goacc_fini_asyncqueues): Likewise.
* oacc-cuda.c (acc_get_cuda_stream): Adjust code to use new async
design.
(acc_set_cuda_stream): Likewise.
* oacc-host.c (host_openacc_exec): Adjust parameters, remove 'async'.
(host_openacc_register_async_cleanup): Remove.
(host_openacc_async_exec): New function.
(host_openacc_async_test): Adjust parameters.
(host_openacc_async_test_all): Remove.
(host_openacc_async_wait): Remove.
(host_openacc_async_wait_async): Remove.
(host_openacc_async_wait_all): Remove.
(host_openacc_async_wait_all_async): Remove.
(host_openacc_async_set_async): Remove.
(host_openacc_async_synchronize): New function.
(host_openacc_async_serialize): New function.
(host_openacc_async_host2dev): New function.
(host_openacc_async_dev2host): New function.
(host_openacc_async_queue_callback): New function.
(host_openacc_async_construct): New function.
(host_openacc_async_destruct): New function.
(struct gomp_device_descr host_dispatch): Remove initialization of old
interface, add intialization of new async sub-struct.
* oacc-init.c (acc_shutdown_1): Adjust to use gomp_fini_device.
(goacc_attach_host_thread_to_device): Remove old async code usage.
* oacc-int.h (goacc_init_asyncqueues): New declaration.
(goacc_fini_asyncqueues): Likewise.
(goacc_async_copyout_unmap_vars): Likewise.
(goacc_async_free): Likewise.
(get_goacc_asyncqueue): Likewise.
(lookup_goacc_asyncqueue): Likewise.
* oacc-mem.c (memcpy_tofrom_device): Adjust code to use new async
design.
(present_create_copy): Adjust code to use new async design.
(delete_copyout): Likewise.
(update_dev_host): Likewise.
(gomp_acc_insert_pointer): Add async parameter, adjust code to use new
async design.
(gomp_acc_remove_pointer): Adjust code to use new async design.
* oacc-parallel.c (GOACC_parallel_keyed): Adjust code to use new async
design.
(GOACC_enter_exit_data): Likewise.
(goacc_wait): Likewise.
(GOACC_update): Likewise.
* oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Change to assert fail
when called, warn as obsolete in comment.
* target.c (goacc_device_copy_async): New function.
(gomp_copy_host2dev): Remove 'static', add goacc_asyncqueue parameter,
add goacc_device_copy_async case.
(gomp_copy_dev2host): Likewise.
(gomp_map_vars_existing): Add goacc_asyncqueue parameter, adjust code.
(gomp_map_pointer): Likewise.
(gomp_map_fields_existing): Likewise.
(gomp_map_vars_internal): New always_inline function, renamed from
gomp_map_vars.
(gomp_map_vars): Implement by calling gomp_map_vars_internal.
(gomp_map_vars_async): Implement by calling gomp_map_vars_internal,
passing goacc_asyncqueue argument.
(gomp_unmap_tgt): Remove static, add attribute_hidden.
(gomp_unref_tgt): New function.
(gomp_unmap_vars_internal): New always_inline function, renamed from
gomp_unmap_vars.
(gomp_unmap_vars): Implement by calling gomp_unmap_vars_internal.
(gomp_unmap_vars_async): Implement by calling
gomp_unmap_vars_internal, passing goacc_asyncqueue argument.
(gomp_fini_device): New function.
(gomp_exit_data): Adjust gomp_copy_dev2host call.
(gomp_load_plugin_for_device): Remove old interface, adjust to load
new async interface.
(gomp_target_fini): Adjust code to call gomp_fini_device.
* plugin/plugin-nvptx.c (struct cuda_map): Remove.
(struct ptx_stream): Remove.
(struct nvptx_thread): Remove current_stream field.
(cuda_map_create): Remove.
(cuda_map_destroy): Remove.
(map_init): Remove.
(map_fini): Remove.
(map_pop): Remove.
(map_push): Remove.
(struct goacc_asyncqueue): Define.
(struct nvptx_callback): Define.
(struct ptx_free_block): Define.
(struct ptx_device): Remove null_stream, active_streams, async_streams,
stream_lock, and next fields.
(enum ptx_event_type): Remove.
(struct ptx_event): Remove.
(ptx_event_lock): Remove.
(ptx_events): Remove.
(init_streams_for_device): Remove.
(fini_streams_for_device): Remove.
(select_stream_for_async): Remove.
(nvptx_init): Remove ptx_events and ptx_event_lock references.
(nvptx_attach_host_thread_to_device): Remove CUDA_ERROR_NOT_PERMITTED
case.
(nvptx_open_device): Add free_blocks initialization, remove
init_streams_for_device call.
(nvptx_close_device): Remove fini_streams_for_device call, add
free_blocks destruct code.
(event_gc): Remove.
(event_add): Remove.
(nvptx_exec): Adjust parameters and code.
(nvptx_free): Likewise.
(nvptx_host2dev): Remove.
(nvptx_dev2host): Remove.
(nvptx_set_async): Remove.
(nvptx_async_test): Remove.
(nvptx_async_test_all): Remove.
(nvptx_wait): Remove.
(nvptx_wait_async): Remove.
(nvptx_wait_all): Remove.
(nvptx_wait_all_async): Remove.
(nvptx_get_cuda_stream): Remove.
(nvptx_set_cuda_stream): Remove.
(GOMP_OFFLOAD_alloc): Adjust code.
(GOMP_OFFLOAD_free): Likewise.
(GOMP_OFFLOAD_openacc_register_async_cleanup): Remove.
(GOMP_OFFLOAD_openacc_exec): Adjust parameters and code.
(GOMP_OFFLOAD_openacc_async_test_all): Remove.
(GOMP_OFFLOAD_openacc_async_wait): Remove.
(GOMP_OFFLOAD_openacc_async_wait_async): Remove.
(GOMP_OFFLOAD_openacc_async_wait_all): Remove.
(GOMP_OFFLOAD_openacc_async_wait_all_async): Remove.
(GOMP_OFFLOAD_openacc_async_set_async): Remove.
(cuda_free_argmem): New function.
(GOMP_OFFLOAD_openacc_async_exec): New plugin hook function.
(GOMP_OFFLOAD_openacc_create_thread_data): Adjust code.
(GOMP_OFFLOAD_openacc_cuda_get_stream): Adjust code.
(GOMP_OFFLOAD_openacc_cuda_set_stream): Adjust code.
(GOMP_OFFLOAD_openacc_async_construct): New plugin hook function.
(GOMP_OFFLOAD_openacc_async_destruct): New plugin hook function.
(GOMP_OFFLOAD_openacc_async_test): Remove and re-implement.
(GOMP_OFFLOAD_openacc_async_synchronize): New plugin hook function.
(GOMP_OFFLOAD_openacc_async_serialize): New plugin hook function.
(GOMP_OFFLOAD_openacc_async_queue_callback): New plugin hook function.
(cuda_callback_wrapper): New function.
(cuda_memcpy_sanity_check): New function.
(GOMP_OFFLOAD_host2dev): Remove and re-implement.
(GOMP_OFFLOAD_dev2host): Remove and re-implement.
(GOMP_OFFLOAD_openacc_async_host2dev): New plugin hook function.
(GOMP_OFFLOAD_openacc_async_dev2host): New plugin hook function.
From-SVN: r271128
2019-05-13 15:32:00 +02:00
|
|
|
|
2019-05-13 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp-plugin.h (struct goacc_asyncqueue): Declare.
|
|
|
|
|
(struct goacc_asyncqueue_list): Likewise.
|
|
|
|
|
(goacc_aq): Likewise.
|
|
|
|
|
(goacc_aq_list): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_register_async_cleanup): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_test): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_test_all): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait_async): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait_all): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait_all_async): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_set_async): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_exec): Adjust declaration.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_cuda_get_stream): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_cuda_set_stream): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_exec): Declare.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_construct): Declare.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_destruct): Declare.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_test): Declare.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_synchronize): Declare.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_serialize): Declare.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_queue_callback): Declare.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_host2dev): Declare.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_dev2host): Declare.
|
|
|
|
|
|
|
|
|
|
* libgomp.h (struct acc_dispatch_t): Define 'async' sub-struct.
|
|
|
|
|
(gomp_acc_insert_pointer): Adjust declaration.
|
|
|
|
|
(gomp_copy_host2dev): New declaration.
|
|
|
|
|
(gomp_copy_dev2host): Likewise.
|
|
|
|
|
(gomp_map_vars_async): Likewise.
|
|
|
|
|
(gomp_unmap_tgt): Likewise.
|
|
|
|
|
(gomp_unmap_vars_async): Likewise.
|
|
|
|
|
(gomp_fini_device): Likewise.
|
|
|
|
|
|
|
|
|
|
* oacc-async.c (get_goacc_thread): New function.
|
|
|
|
|
(get_goacc_thread_device): New function.
|
|
|
|
|
(lookup_goacc_asyncqueue): New function.
|
|
|
|
|
(get_goacc_asyncqueue): New function.
|
|
|
|
|
(acc_async_test): Adjust code to use new async design.
|
|
|
|
|
(acc_async_test_all): Likewise.
|
|
|
|
|
(acc_wait): Likewise.
|
|
|
|
|
(acc_wait_async): Likewise.
|
|
|
|
|
(acc_wait_all): Likewise.
|
|
|
|
|
(acc_wait_all_async): Likewise.
|
|
|
|
|
(goacc_async_free): New function.
|
|
|
|
|
(goacc_init_asyncqueues): Likewise.
|
|
|
|
|
(goacc_fini_asyncqueues): Likewise.
|
|
|
|
|
* oacc-cuda.c (acc_get_cuda_stream): Adjust code to use new async
|
|
|
|
|
design.
|
|
|
|
|
(acc_set_cuda_stream): Likewise.
|
|
|
|
|
* oacc-host.c (host_openacc_exec): Adjust parameters, remove 'async'.
|
|
|
|
|
(host_openacc_register_async_cleanup): Remove.
|
|
|
|
|
(host_openacc_async_exec): New function.
|
|
|
|
|
(host_openacc_async_test): Adjust parameters.
|
|
|
|
|
(host_openacc_async_test_all): Remove.
|
|
|
|
|
(host_openacc_async_wait): Remove.
|
|
|
|
|
(host_openacc_async_wait_async): Remove.
|
|
|
|
|
(host_openacc_async_wait_all): Remove.
|
|
|
|
|
(host_openacc_async_wait_all_async): Remove.
|
|
|
|
|
(host_openacc_async_set_async): Remove.
|
|
|
|
|
(host_openacc_async_synchronize): New function.
|
|
|
|
|
(host_openacc_async_serialize): New function.
|
|
|
|
|
(host_openacc_async_host2dev): New function.
|
|
|
|
|
(host_openacc_async_dev2host): New function.
|
|
|
|
|
(host_openacc_async_queue_callback): New function.
|
|
|
|
|
(host_openacc_async_construct): New function.
|
|
|
|
|
(host_openacc_async_destruct): New function.
|
|
|
|
|
(struct gomp_device_descr host_dispatch): Remove initialization of old
|
|
|
|
|
interface, add intialization of new async sub-struct.
|
|
|
|
|
* oacc-init.c (acc_shutdown_1): Adjust to use gomp_fini_device.
|
|
|
|
|
(goacc_attach_host_thread_to_device): Remove old async code usage.
|
|
|
|
|
* oacc-int.h (goacc_init_asyncqueues): New declaration.
|
|
|
|
|
(goacc_fini_asyncqueues): Likewise.
|
|
|
|
|
(goacc_async_copyout_unmap_vars): Likewise.
|
|
|
|
|
(goacc_async_free): Likewise.
|
|
|
|
|
(get_goacc_asyncqueue): Likewise.
|
|
|
|
|
(lookup_goacc_asyncqueue): Likewise.
|
|
|
|
|
* oacc-mem.c (memcpy_tofrom_device): Adjust code to use new async
|
|
|
|
|
design.
|
|
|
|
|
(present_create_copy): Adjust code to use new async design.
|
|
|
|
|
(delete_copyout): Likewise.
|
|
|
|
|
(update_dev_host): Likewise.
|
|
|
|
|
(gomp_acc_insert_pointer): Add async parameter, adjust code to use new
|
|
|
|
|
async design.
|
|
|
|
|
(gomp_acc_remove_pointer): Adjust code to use new async design.
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed): Adjust code to use new async
|
|
|
|
|
design.
|
|
|
|
|
(GOACC_enter_exit_data): Likewise.
|
|
|
|
|
(goacc_wait): Likewise.
|
|
|
|
|
(GOACC_update): Likewise.
|
|
|
|
|
* oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Change to assert fail
|
|
|
|
|
when called, warn as obsolete in comment.
|
|
|
|
|
* target.c (goacc_device_copy_async): New function.
|
|
|
|
|
(gomp_copy_host2dev): Remove 'static', add goacc_asyncqueue parameter,
|
|
|
|
|
add goacc_device_copy_async case.
|
|
|
|
|
(gomp_copy_dev2host): Likewise.
|
|
|
|
|
(gomp_map_vars_existing): Add goacc_asyncqueue parameter, adjust code.
|
|
|
|
|
(gomp_map_pointer): Likewise.
|
|
|
|
|
(gomp_map_fields_existing): Likewise.
|
|
|
|
|
(gomp_map_vars_internal): New always_inline function, renamed from
|
|
|
|
|
gomp_map_vars.
|
|
|
|
|
(gomp_map_vars): Implement by calling gomp_map_vars_internal.
|
|
|
|
|
(gomp_map_vars_async): Implement by calling gomp_map_vars_internal,
|
|
|
|
|
passing goacc_asyncqueue argument.
|
|
|
|
|
(gomp_unmap_tgt): Remove static, add attribute_hidden.
|
|
|
|
|
(gomp_unref_tgt): New function.
|
|
|
|
|
(gomp_unmap_vars_internal): New always_inline function, renamed from
|
|
|
|
|
gomp_unmap_vars.
|
|
|
|
|
(gomp_unmap_vars): Implement by calling gomp_unmap_vars_internal.
|
|
|
|
|
(gomp_unmap_vars_async): Implement by calling
|
|
|
|
|
gomp_unmap_vars_internal, passing goacc_asyncqueue argument.
|
|
|
|
|
(gomp_fini_device): New function.
|
|
|
|
|
(gomp_exit_data): Adjust gomp_copy_dev2host call.
|
|
|
|
|
(gomp_load_plugin_for_device): Remove old interface, adjust to load
|
|
|
|
|
new async interface.
|
|
|
|
|
(gomp_target_fini): Adjust code to call gomp_fini_device.
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (struct cuda_map): Remove.
|
|
|
|
|
(struct ptx_stream): Remove.
|
|
|
|
|
(struct nvptx_thread): Remove current_stream field.
|
|
|
|
|
(cuda_map_create): Remove.
|
|
|
|
|
(cuda_map_destroy): Remove.
|
|
|
|
|
(map_init): Remove.
|
|
|
|
|
(map_fini): Remove.
|
|
|
|
|
(map_pop): Remove.
|
|
|
|
|
(map_push): Remove.
|
|
|
|
|
(struct goacc_asyncqueue): Define.
|
|
|
|
|
(struct nvptx_callback): Define.
|
|
|
|
|
(struct ptx_free_block): Define.
|
|
|
|
|
(struct ptx_device): Remove null_stream, active_streams, async_streams,
|
|
|
|
|
stream_lock, and next fields.
|
|
|
|
|
(enum ptx_event_type): Remove.
|
|
|
|
|
(struct ptx_event): Remove.
|
|
|
|
|
(ptx_event_lock): Remove.
|
|
|
|
|
(ptx_events): Remove.
|
|
|
|
|
(init_streams_for_device): Remove.
|
|
|
|
|
(fini_streams_for_device): Remove.
|
|
|
|
|
(select_stream_for_async): Remove.
|
|
|
|
|
(nvptx_init): Remove ptx_events and ptx_event_lock references.
|
|
|
|
|
(nvptx_attach_host_thread_to_device): Remove CUDA_ERROR_NOT_PERMITTED
|
|
|
|
|
case.
|
|
|
|
|
(nvptx_open_device): Add free_blocks initialization, remove
|
|
|
|
|
init_streams_for_device call.
|
|
|
|
|
(nvptx_close_device): Remove fini_streams_for_device call, add
|
|
|
|
|
free_blocks destruct code.
|
|
|
|
|
(event_gc): Remove.
|
|
|
|
|
(event_add): Remove.
|
|
|
|
|
(nvptx_exec): Adjust parameters and code.
|
|
|
|
|
(nvptx_free): Likewise.
|
|
|
|
|
(nvptx_host2dev): Remove.
|
|
|
|
|
(nvptx_dev2host): Remove.
|
|
|
|
|
(nvptx_set_async): Remove.
|
|
|
|
|
(nvptx_async_test): Remove.
|
|
|
|
|
(nvptx_async_test_all): Remove.
|
|
|
|
|
(nvptx_wait): Remove.
|
|
|
|
|
(nvptx_wait_async): Remove.
|
|
|
|
|
(nvptx_wait_all): Remove.
|
|
|
|
|
(nvptx_wait_all_async): Remove.
|
|
|
|
|
(nvptx_get_cuda_stream): Remove.
|
|
|
|
|
(nvptx_set_cuda_stream): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_alloc): Adjust code.
|
|
|
|
|
(GOMP_OFFLOAD_free): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_register_async_cleanup): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_exec): Adjust parameters and code.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_test_all): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait_async): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait_all): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait_all_async): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_set_async): Remove.
|
|
|
|
|
(cuda_free_argmem): New function.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_exec): New plugin hook function.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_create_thread_data): Adjust code.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_cuda_get_stream): Adjust code.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_cuda_set_stream): Adjust code.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_construct): New plugin hook function.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_destruct): New plugin hook function.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_test): Remove and re-implement.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_synchronize): New plugin hook function.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_serialize): New plugin hook function.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_queue_callback): New plugin hook function.
|
|
|
|
|
(cuda_callback_wrapper): New function.
|
|
|
|
|
(cuda_memcpy_sanity_check): New function.
|
|
|
|
|
(GOMP_OFFLOAD_host2dev): Remove and re-implement.
|
|
|
|
|
(GOMP_OFFLOAD_dev2host): Remove and re-implement.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_host2dev): New plugin hook function.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_dev2host): New plugin hook function.
|
|
|
|
|
|
2019-05-08 12:01:30 +02:00
|
|
|
|
2019-05-07 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/87835
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr87835.c: Update.
|
|
|
|
|
|
2019-05-06 10:49:55 +02:00
|
|
|
|
2019-05-06 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-parallel.c: Add comments to legacy entry points (GCC 5).
|
|
|
|
|
|
2019-03-27 19:30:44 +01:00
|
|
|
|
2019-03-27 Kevin Buettner <kevinb@redhat.com>
|
|
|
|
|
|
|
|
|
|
* team.c (gomp_team_start): Initialize pool->threads[0].
|
|
|
|
|
|
2019-02-22 11:50:49 +01:00
|
|
|
|
2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2019-02-22 11:51:35 +01:00
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Specify
|
|
|
|
|
"-foffload=$offload_target".
|
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
|
(check_effective_target_openacc_nvidia_accel_configured): Remove,
|
|
|
|
|
as (conceptually) merged into
|
|
|
|
|
check_effective_target_openacc_nvidia_accel_selected. Adjust all
|
|
|
|
|
users.
|
|
|
|
|
|
2019-02-22 11:51:20 +01:00
|
|
|
|
* plugin/configfrag.ac: Populate and AC_SUBST offload_targets.
|
|
|
|
|
* testsuite/libgomp-test-support.exp.in: Adjust.
|
|
|
|
|
* testsuite/lib/libgomp.exp: Likewise. Don't populate
|
|
|
|
|
openacc_device_types_s.
|
|
|
|
|
(offload_target_to_openacc_device_type): New proc.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Adjust.
|
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
|
2019-02-22 11:51:05 +01:00
|
|
|
|
* plugin/configfrag.ac: Populate and AC_SUBST offload_plugins
|
|
|
|
|
instead of offload_targets, and AC_DEFINE_UNQUOTED OFFLOAD_PLUGINS
|
|
|
|
|
instead of OFFLOAD_TARGETS.
|
|
|
|
|
* target.c (gomp_target_init): Adjust.
|
|
|
|
|
* testsuite/libgomp-test-support.exp.in: Likewise.
|
|
|
|
|
* testsuite/lib/libgomp.exp: Likewise. Populate
|
|
|
|
|
openacc_device_types_s instead of offload_targets_s_openacc.
|
|
|
|
|
(check_effective_target_openacc_nvidia_accel_selected)
|
|
|
|
|
(check_effective_target_openacc_host_selected): Adjust.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
|
2019-02-22 11:50:49 +01:00
|
|
|
|
* testsuite/lib/libgomp.exp: Error out for unknown offload target.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Likewise. Report if
|
|
|
|
|
"offloading: supported, but hardware not accessible".
|
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
|
|
2019-02-19 15:10:15 +01:00
|
|
|
|
2019-02-19 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/87924
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed): Remove condition on call to
|
|
|
|
|
goacc_wait().
|
|
|
|
|
(goacc_wait): Handle ACC_ASYNC_NOVAL case, remove goacc_thread() call
|
|
|
|
|
and related adjustment.
|
|
|
|
|
|
2019-01-31 00:28:53 +01:00
|
|
|
|
2019-01-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/88988
|
|
|
|
|
* testsuite/libgomp.c++/pr88988.C: New test.
|
|
|
|
|
|
2019-01-28 23:33:33 +01:00
|
|
|
|
2019-01-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/89002
|
|
|
|
|
* testsuite/libgomp.c/pr89002.c: New test.
|
|
|
|
|
|
2019-01-28 10:07:30 +01:00
|
|
|
|
2019-01-28 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR testsuite/89064
|
|
|
|
|
PR tree-optimization/86865
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-5.c: XFAIL.
|
|
|
|
|
|
2019-01-24 15:12:19 +01:00
|
|
|
|
2019-01-24 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (GOMP_OFFLOAD_fini_device): Free ptx_devices
|
|
|
|
|
once instantiated_devices drops to 0.
|
|
|
|
|
|
2019-01-23 09:16:56 +01:00
|
|
|
|
2019-01-23 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR target/PR88946
|
|
|
|
|
* plugin/plugin-nvptx.c (cuda_map_destroy): Use CUDA_CALL_NOCHECK for
|
|
|
|
|
cuMemFree.
|
|
|
|
|
(nvptx_exec): Don't call map_push if mapnum == 0.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr88946.c: New test.
|
|
|
|
|
|
[nvptx, libgomp] Fix assert (!s->map->active) in map_fini
There are currently two situations where this assert triggers:
...
libgomp/plugin/plugin-nvptx.c: map_fini: Assertion `!s->map->active' failed.
...
First, in abort-1.c, a parallel region triggering an abort:
...
int
main (void)
{
#pragma acc parallel
abort ();
return 0;
}
...
The abort is detected in nvptx_exec as the CUDA_ERROR_ILLEGAL_INSTRUCTION
return status of the cuStreamSynchronize call after kernel launch, which is
then handled by calling non-returning function GOMP_PLUGIN_fatal.
Consequently, the map_pop in nvptx_exec that in case of cuStreamSynchronize
success would remove or inactive the element added by the map_push earlier in
nvptx_exec, does not trigger. With the element no longer active, but still
marked active and a member of s->map, we run into the assert during
GOMP_OFFLOAD_fini_device, which is triggered from atexit handler
gomp_target_fini (which is triggered by the GOMP_PLUGIN_fatal mentioned above
calling exit).
Second, in pr88941.c, an async parallel region without wait:
...
int
main (void)
{
#pragma acc parallel async
;
/* no #pragma acc wait */
return 0;
}
...
Because nvptx_exec is handling an async region, it does not call map_pop for
the element added by map_push, but schedules an kernel execution completion
event to call map_pop. Again, we run into the assert during
GOMP_OFFLOAD_fini_device, which is triggered from atexit handler
gomp_target_fini, but the exit in this case is triggered by returning from main.
So either the kernel is still running, or the kernel has completed but the
corresponding event that is supposed to call map_pop is stuck in the event
queue, waiting for an event_gc.
Fix this by removing the assert, and skipping the freeing of device memory if
the map is still marked active (though in the async case, this is more a
workaround than an fix).
2019-01-23 Tom de Vries <tdevries@suse.de>
PR target/88941
PR target/88939
* plugin/plugin-nvptx.c (cuda_map_destroy): Handle map->active case.
(map_fini): Remove "assert (!s->map->active)".
* testsuite/libgomp.oacc-c-c++-common/pr88941.c: New test.
From-SVN: r268177
2019-01-23 09:16:42 +01:00
|
|
|
|
2019-01-23 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR target/88941
|
|
|
|
|
PR target/88939
|
|
|
|
|
* plugin/plugin-nvptx.c (cuda_map_destroy): Handle map->active case.
|
|
|
|
|
(map_fini): Remove "assert (!s->map->active)".
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr88941.c: New test.
|
|
|
|
|
|
[nvptx, libgomp] Fix map_push
The map field of a struct ptx_stream is a FIFO. The FIFO is implemented as a
single linked list, with pop-from-the-front semantics.
The function map_pop pops an element, either by:
- deallocating the element, if there is more than one element
- or marking the element inactive, if there's only one element
The responsibility of map_push is to push an element to the back, as well as
selecting the element to push, by:
- allocating an element, or
- reusing the element at the front if inactive and big enough, or
- dropping the element at the front if inactive and not big enough, and
allocating one that's big enough
The current implemention gets at least the first and most basic scenario wrong:
> map = cuda_map_create (size);
We create an element, and assign it to map.
> for (t = s->map; t->next != NULL; t = t->next)
> ;
We determine the last element in the fifo.
> t->next = map;
We append the new element.
> s->map = map;
But here, we throw away the rest of the FIFO, and declare the FIFO to be just
the new element.
This problem causes the test-case asyncwait-1.c to fail intermittently on some
systems. The pr87835.c test-case added here is a a minimized and modified
version of asyncwait-1.c (avoiding the kernel construct) that is more likely to
fail.
Fix this by rewriting map_pop more robustly, by:
- seperating the function in two phases: select element, push element
- when reusing or dropping an element, making sure that the element is cleanly
popped from the queue
- rewriting the push element part in such a way that it can handle all cases
without needing if statements, such that each line is exercised for each of
the three cases.
2019-01-23 Tom de Vries <tdevries@suse.de>
PR target/87835
* plugin/plugin-nvptx.c (map_push): Fix adding of allocated element.
* testsuite/libgomp.oacc-c-c++-common/pr87835.c: New test.
From-SVN: r268176
2019-01-23 09:16:11 +01:00
|
|
|
|
2019-01-23 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR target/87835
|
|
|
|
|
* plugin/plugin-nvptx.c (map_push): Fix adding of allocated element.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr87835.c: New test.
|
|
|
|
|
|
2019-01-15 11:11:16 +01:00
|
|
|
|
2019-01-15 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR target/80547
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/gang-reduction-var-assignment.c:
|
|
|
|
|
New test.
|
|
|
|
|
|
2019-01-12 23:19:31 +01:00
|
|
|
|
2019-01-12 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85486-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/gemm-2.f90: New test.
|
|
|
|
|
|
2019-01-12 23:19:15 +01:00
|
|
|
|
2019-01-12 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Update error message.
|
|
|
|
|
|
2019-01-12 23:19:02 +01:00
|
|
|
|
2019-01-12 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-64-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-64-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-64-3.c: New test.
|
|
|
|
|
|
2019-01-12 23:18:50 +01:00
|
|
|
|
2019-01-12 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR target/85486
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85486-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85486.c: New test.
|
|
|
|
|
|
2019-01-12 23:18:39 +01:00
|
|
|
|
2019-01-12 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR target/85381
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85381-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85381.c: New test.
|
|
|
|
|
|
2019-01-12 23:18:27 +01:00
|
|
|
|
2019-01-12 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vred2d-128.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/gemm.f90: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-10.c: New test.
|
|
|
|
|
|
2019-01-12 23:18:11 +01:00
|
|
|
|
2019-01-12 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-6.c: New test.
|
|
|
|
|
|
2019-01-12 23:18:00 +01:00
|
|
|
|
2019-01-12 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Update insufficient hardware
|
|
|
|
|
resources diagnostic.
|
|
|
|
|
|
2019-01-12 23:17:42 +01:00
|
|
|
|
2019-01-12 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: Expect
|
|
|
|
|
vector length to be 128.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Expect vector
|
|
|
|
|
length 2097152 to be reduced to 1024 instead of 32.
|
|
|
|
|
|
2019-01-11 14:55:01 +01:00
|
|
|
|
2019-01-11 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Better distinguish OpenACC and OpenMP "Runtime
|
|
|
|
|
Library Routines", and "Environment Variables".
|
|
|
|
|
|
[nvptx] Don't allow vector_length 64 with num_workers 16
When using a compiler build with:
...
+#define PTX_DEFAULT_VECTOR_LENGTH PTX_CTA_SIZE
...
consider a test-case:
...
int
main (void)
{
#pragma acc parallel vector_length (64)
#pragma acc loop worker
for (unsigned int i = 0; i < 32; i++)
#pragma acc loop vector
for (unsigned int j = 0; j < 64; j++)
;
return 0;
}
...
If num_workers is 16, either because:
- we add a "num_workers (16)" clause on the parallel directive, or
- we set "GOMP_OPENACC_DIM=:16:", or
- the libgomp plugin chooses 16 num_workers
we run into an illegal instruction at runtime, because a bar.sync instruction
tries to use a barrier 16. The instruction is illegal, because ptx supports
only 16 barriers per CTA, and the valid range is 0..15.
The problem is that with a warp-multiple vector length, we use a code generation
scheme with a per-worker barrier. And because barrier zero is reserved for
per-cta barrier, only the remaining 15 barriers can be used as per-worker
barrier, and consequently we can't use num_workers larger than 15.
This problem occurs only for vector_length 64. For vector_length 32, we use a
different code generation scheme, and for vector_length >= 96, the maximum
num_workers is not big enough not to trigger this problem.
Also, this problem only occurs for num_workers 16. As explained above,
num_workers 15 is safe to use, and 16 is already the maximum num_workers for
vector_length 64.
This patch fixes the problem in both the compiler (handling "num_workers (16)")
and in the libgomp nvptx plugin (with and without "GOMP_OPENACC_DIM=:16:").
2019-01-11 Tom de Vries <tdevries@suse.de>
* config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
(PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
(PTX_NUM_PER_WORKER_BARRIERS): Define.
(nvptx_apply_dim_limits): Prevent vector_length 64 and
num_workers 16.
* plugin/plugin-nvptx.c (nvptx_exec): Prevent vector_length 64 and
num_workers 16.
From-SVN: r267838
2019-01-11 12:46:43 +01:00
|
|
|
|
2019-01-11 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Prevent vector_length 64 and
|
|
|
|
|
num_workers 16.
|
|
|
|
|
|
2019-01-11 12:46:06 +01:00
|
|
|
|
2019-01-11 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Remove
|
|
|
|
|
-foffload=-w.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Same.
|
|
|
|
|
|
2019-01-11 12:45:55 +01:00
|
|
|
|
2019-01-11 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/insufficient-resources.c: New
|
|
|
|
|
test.
|
|
|
|
|
|
2019-01-10 13:32:03 +01:00
|
|
|
|
2019-01-10 Nathan Sidwell <nathan@acm.org>
|
|
|
|
|
Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR lto/71959
|
|
|
|
|
* testsuite/libgomp.oacc-c++/pr71959-aux.cc: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/pr71959.C: New.
|
|
|
|
|
|
2019-01-09 07:16:05 +01:00
|
|
|
|
2019-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config/rtems/bar.c: Include "../linux/bar.c" and delete copy
|
|
|
|
|
and paste code.
|
|
|
|
|
|
2019-01-09 07:14:15 +01:00
|
|
|
|
2019-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config/rtems/affinity-fmt.c: New file. Include affinity-fmt.c,
|
|
|
|
|
undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to
|
|
|
|
|
write.
|
|
|
|
|
|
[libgomp, testsuite, openacc] Don't use const int for dimensions
Const int is handled differently at -O0 for -xc and -xc++, which can cause noise
in testsuite/libgomp.oacc-c-c++-common test-cases (which are both run for c and
c++) if const int is used for launch dimensions.
Fix this by using #defines instead.
2019-01-09 Tom de Vries <tdevries@suse.de>
PR target/88756
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c (ng, nw, vl): Use
#define instead of "const int".
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c (ng, nw, vl): Same.
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c (ng, nw, vl): Same.
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c (ng, nw, vl): Same.
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c (ng, nw, vl): Same.
From-SVN: r267747
2019-01-09 01:07:55 +01:00
|
|
|
|
2019-01-09 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR target/88756
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c (ng, nw, vl): Use
|
|
|
|
|
#define instead of "const int".
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c (ng, nw, vl): Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c (ng, nw, vl): Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c (ng, nw, vl): Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c (ng, nw, vl): Same.
|
|
|
|
|
|
2019-01-09 01:07:45 +01:00
|
|
|
|
2019-01-09 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Make sure to launch with at least
|
|
|
|
|
one worker.
|
|
|
|
|
|
2019-01-07 09:09:49 +01:00
|
|
|
|
2019-01-07 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: Fix
|
|
|
|
|
GOMP_OPENACC_DIM argument.
|
|
|
|
|
|
2019-01-03 16:08:46 +01:00
|
|
|
|
2019-01-03 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: New test.
|
|
|
|
|
|
2019-01-01 13:31:55 +01:00
|
|
|
|
2019-01-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2019-01-01 12:34:49 +01:00
|
|
|
|
2019-01-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Bump @copying's copyright year.
|
|
|
|
|
|
2018-12-28 12:34:14 +01:00
|
|
|
|
2018-12-28 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed, GOACC_parallel)
|
|
|
|
|
(GOACC_data_start, GOACC_enter_exit_data, GOACC_update)
|
|
|
|
|
(GOACC_declare): Redefine the "device" argument to "flags".
|
|
|
|
|
|
2018-12-28 12:33:54 +01:00
|
|
|
|
2018-12-28 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.c (struct gomp_coalesce_chunk): New structure.
|
|
|
|
|
(struct gomp_coalesce_buf): Update the chunks member to use that
|
|
|
|
|
type. Adjust all users.
|
|
|
|
|
|
2018-12-19 15:20:54 +01:00
|
|
|
|
2018-12-19 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85381-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: New test.
|
|
|
|
|
|
2018-12-19 15:20:44 +01:00
|
|
|
|
2018-12-19 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Add load_lib of scanoffloadrtl.exp.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/nvptx-merged-loop.c: Move from
|
|
|
|
|
gcc/testsuite/gcc.dg/goacc.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/nvptx-sese-1.c: Same.
|
|
|
|
|
|
2018-12-14 21:43:12 +01:00
|
|
|
|
2018-12-14 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-mem.c (acc_present_or_create): Remove definition and change
|
|
|
|
|
to alias of acc_create.
|
|
|
|
|
(acc_present_or_copyin): Remove definition and change to alias of
|
|
|
|
|
acc_copyin.
|
|
|
|
|
* oacc-parallel.c (GOACC_enter_exit_data): Call acc_create instead
|
|
|
|
|
of acc_present_or_create.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Remove.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
|
|
|
|
|
|
2018-12-14 21:42:29 +01:00
|
|
|
|
2018-12-14 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2018-12-14 21:43:02 +01:00
|
|
|
|
PR libgomp/88495
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_wait_async): Don't refuse
|
|
|
|
|
"identical parameters".
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Remove.
|
|
|
|
|
|
2018-12-14 21:42:50 +01:00
|
|
|
|
PR libgomp/88484
|
|
|
|
|
* oacc-parallel.c (GOACC_wait): Correct handling for "async >= 0".
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: New file.
|
|
|
|
|
|
2018-12-14 21:42:40 +01:00
|
|
|
|
PR libgomp/88407
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_async_test, nvptx_wait)
|
|
|
|
|
(nvptx_wait_async): Unseen async-argument is a no-op.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Merge into...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-69.c: ... this. Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Merge into...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-74.c: ... this. Update
|
|
|
|
|
|
2018-12-14 21:42:29 +01:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Revise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
|
|
|
|
|
|
2018-12-14 21:42:18 +01:00
|
|
|
|
2018-12-14 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Adjust.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
|
|
|
|
|
|
2018-12-14 21:42:08 +01:00
|
|
|
|
2018-12-14 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/88370
|
|
|
|
|
* libgomp.texi (acc_get_current_cuda_context, acc_get_cuda_stream)
|
|
|
|
|
(acc_set_cuda_stream): Clarify.
|
|
|
|
|
* oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use
|
|
|
|
|
"async_valid_p".
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_set_cuda_stream): Refuse "async ==
|
|
|
|
|
acc_async_sync".
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_set_cuda_stream-1.c: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-84.c: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
|
|
|
|
|
|
2018-12-14 14:48:56 +01:00
|
|
|
|
2018-12-14 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/function-not-offloaded.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/variable-not-offloaded.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c: New test.
|
|
|
|
|
|
2018-12-13 19:04:05 +01:00
|
|
|
|
2018-12-13 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* affinity-fmt.c (gomp_print_string): New function, factored out of ...
|
|
|
|
|
(omp_display_affinity, gomp_display_affinity_thread): ... here, and ...
|
|
|
|
|
* fortran.c (omp_display_affinity_): ... here.
|
|
|
|
|
* libgomp.h (gomp_print_string): Declare.
|
|
|
|
|
* config/nvptx/affinity-fmt.c: New file. Include affinity-fmt.c,
|
|
|
|
|
undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to
|
|
|
|
|
write.
|
|
|
|
|
|
2018-12-13 13:53:19 +01:00
|
|
|
|
2018-12-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/88460
|
|
|
|
|
* testsuite/libgomp.c++/for-24.C (results): Include it in
|
|
|
|
|
omp declare target region.
|
|
|
|
|
(main): Use map (always, tofrom: results) instead of
|
|
|
|
|
map (tofrom: results).
|
|
|
|
|
|
2018-12-12 23:47:55 +01:00
|
|
|
|
2018-12-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2018-12-12 23:49:35 +01:00
|
|
|
|
PR fortran/88463
|
|
|
|
|
* testsuite/libgomp.fortran/pr88463-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr88463-2.f90: New test.
|
|
|
|
|
|
2018-12-12 23:47:55 +01:00
|
|
|
|
* testsuite/libgomp.c-c++-common/for-16.c: New test.
|
|
|
|
|
|
2018-12-12 12:22:42 +01:00
|
|
|
|
2018-12-12 Andreas Schwab <schwab@suse.de>
|
|
|
|
|
|
|
|
|
|
* config/linux/ia64/futex.h (sys_futex0): Don't mark r12 as
|
|
|
|
|
clobbered.
|
|
|
|
|
|
2018-12-09 19:54:47 +01:00
|
|
|
|
2018-12-09 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/88411
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_8.f90: New test.
|
|
|
|
|
|
2018-12-09 13:47:23 +01:00
|
|
|
|
2018-12-09 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.c (gomp_map_vars): Call gomp_copy_host2dev instead of
|
|
|
|
|
devicep->host2dev_func.
|
|
|
|
|
|
2018-12-08 09:58:24 +01:00
|
|
|
|
2018-12-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/87995
|
|
|
|
|
* testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: Require
|
|
|
|
|
tls_runtime effective target.
|
|
|
|
|
(t): New threadprivate variable.
|
|
|
|
|
(main): Set t in threads which execute iterations of the worksharing
|
|
|
|
|
loop. Propagate that to the task after the loop and don't abort
|
|
|
|
|
if the current taskgroup hasn't been cancelled.
|
|
|
|
|
|
2018-12-02 13:48:42 +01:00
|
|
|
|
2018-12-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2018-12-02 13:50:50 +01:00
|
|
|
|
* testsuite/libgomp.c/task-reduction-3.c: New test.
|
|
|
|
|
|
2018-12-02 13:48:42 +01:00
|
|
|
|
* testsuite/libgomp.c-c++-common/cancel-taskgroup-4.c: New test.
|
|
|
|
|
|
2018-11-30 21:39:49 +01:00
|
|
|
|
2018-11-30 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/88288
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed): Add offset to devaddrs.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr88288.c: New test.
|
|
|
|
|
|
2018-11-30 21:38:57 +01:00
|
|
|
|
2018-11-30 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-16-2.f90: New file.
|
|
|
|
|
|
2018-11-28 09:29:16 +01:00
|
|
|
|
2018-10-19 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/88182
|
|
|
|
|
* testsuite/libgomp.c++/pr88182.C: Move to g++.dg/gomp.
|
|
|
|
|
|
2018-11-26 22:03:41 +01:00
|
|
|
|
2018-11-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/Makefile.am (AUTOMAKE_OPTIONS): Drop dejagnu.
|
|
|
|
|
(RUNTEST): Don't define.
|
|
|
|
|
(RUNTESTDEFAULTFLAGS): Add.
|
|
|
|
|
(check-DEJAGNU, site.exp, distclean-DEJAGNU): New goals.
|
|
|
|
|
(distclean-am): Depend on distclean-DEJAGNU.
|
|
|
|
|
(check-am): If -j% option is present in MFLAGS and if
|
|
|
|
|
`getconf _NPROCESSORS_ONLN` is more than 8, export OMP_NUM_THREADS=8.
|
|
|
|
|
(.PHONY): Add check-DEJAGNU and distclean-DEJAGNU.
|
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
|
|
2018-11-26 16:37:35 +01:00
|
|
|
|
2018-11-26 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/88182
|
|
|
|
|
* testsuite/libgomp.c++/pr88182.C: New testcase.
|
|
|
|
|
|
2018-11-20 11:39:53 +01:00
|
|
|
|
2018-11-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/88106
|
|
|
|
|
* config/mingw32/affinity-fmt.c: New file.
|
|
|
|
|
|
2018-11-09 14:02:50 +01:00
|
|
|
|
2018-11-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2018-11-09 21:17:40 +01:00
|
|
|
|
* affinity-fmt.c: Include inttypes.h if HAVE_INTTYPES_H.
|
|
|
|
|
(gomp_display_affinity): Use __builtin_choose_expr to handle
|
|
|
|
|
properly handle argument having integral, or pointer or some other
|
|
|
|
|
type. If inttypes.h is available and PRIx64 is defined, use PRIx64
|
|
|
|
|
with uint64_t type instead of %llx and unsigned long long.
|
|
|
|
|
|
2018-11-09 14:02:50 +01:00
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-13.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-14.c: New test.
|
|
|
|
|
|
2018-11-08 22:39:11 +01:00
|
|
|
|
2018-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* affinity.c: Include <string.h>, <stdio.h>.
|
|
|
|
|
(gomp_display_affinity_place): Remove cpusetp.
|
|
|
|
|
* teams.c: Include <limits.h>.
|
|
|
|
|
|
builtin-types.def (BT_FN_VOID_BOOL, [...]): New.
* builtin-types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR,
BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New.
* gengtype.c (open_base_files): Add omp-general.h.
* gimple.c (gimple_build_omp_critical):
(gimple_build_omp_taskgroup): Add CLAUSES argument. Call
gimple_omp_taskgroup_set_clauses.
(gimple_build_omp_atomic_load): Add mo argument, call
gimple_omp_atomic_set_memory_order.
(gimple_build_omp_atomic_store): Likewise.
(gimple_copy): Adjust handling of GIMPLE_OMP_TASKGROUP.
* gimple.def (GIMPLE_OMP_TASKGROUP): Use GSS_OMP_SINGLE_LAYOUT
instead of GSS_OMP.
(GIMPLE_OMP_TEAMS): Use GSS_OMP_PARALLEL_LAYOUT instead
of GSS_OMP_SINGLE_LAYOUT, adjust comments.
* gimple.h (enum gf_mask): Add GF_OMP_TEAMS_HOST, GF_OMP_TASK_TASKWAIT
and GF_OMP_ATOMIC_MEMORY_ORDER. Remove GF_OMP_ATOMIC_SEQ_CST, use
different value for GF_OMP_ATOMIC_NEED_VALUE.
(struct gimple_statement_omp_taskreg): Add GIMPLE_OMP_TEAMS to
comments.
(struct gimple_statement_omp_single_layout): And remove here.
(struct gomp_teams): Inherit from gimple_statement_omp_taskreg rather
than gimple_statement_omp_single_layout.
(is_a_helper <gimple_statement_omp_taskreg *>::test): Allow
GIMPLE_OMP_TEAMS.
(is_a_helper <const gimple_statement_omp_taskreg *>::test): Likewise.
(gimple_omp_subcode): Formatting fix.
(gimple_omp_teams_child_fn, gimple_omp_teams_child_fn_ptr,
gimple_omp_teams_set_child_fn, gimple_omp_teams_data_arg,
gimple_omp_teams_data_arg_ptr, gimple_omp_teams_set_data_arg,
gimple_omp_teams_host, gimple_omp_teams_set_host,
gimple_omp_task_taskwait_p, gimple_omp_task_set_taskwait_p,
gimple_omp_taskgroup_clauses, gimple_omp_taskgroup_clauses_ptr,
gimple_omp_taskgroup_set_clauses): New inline functions.
(gimple_build_omp_atomic_load): Add enum omp_memory_order argument.
(gimple_build_omp_atomic_store): Likewise.
(gimple_omp_atomic_seq_cst_p): Remove.
(gimple_omp_atomic_memory_order): New function.
(gimple_omp_atomic_set_seq_cst): Remove.
(gimple_omp_atomic_set_memory_order): New function.
(gimple_build_omp_taskgroup): Add clauses argument.
* gimple-pretty-print.c (dump_gimple_omp_taskgroup): New function.
(dump_gimple_omp_task): Print taskwait with depend clauses.
(dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Use
dump_omp_atomic_memory_order.
(pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALLOC_ONLY,
GOVD_MAP_FROM_ONLY and GOVD_NONTEMPORAL.
(enum omp_region_type): Reserve bits 1 and 2 for auxiliary flags,
renumber values of most of ORT_* enumerators, add ORT_HOST_TEAMS,
ORT_COMBINED_HOST_TEAMS, ORT_TASKGROUP, ORT_TASKLOOP and
ORT_UNTIED_TASKLOOP enumerators.
(enum gimplify_defaultmap_kind): New.
(struct gimplify_omp_ctx): Remove target_map_scalars_firstprivate and
target_map_pointers_as_0len_arrays members, add defaultmap.
(new_omp_context): Initialize defaultmap member.
(gimple_add_tmp_var): Handle ORT_TASKGROUP like ORT_WORKSHARE.
(maybe_fold_stmt): Don't fold even in host teams regions.
(omp_firstprivatize_variable): Handle ORT_TASKGROUP like
ORT_WORKSHARE. Test ctx->defaultmap[GDMK_SCALAR] instead of
ctx->omp_firstprivatize_variable.
(omp_add_variable): Don't add private/firstprivate for VLAs in
ORT_TASKGROUP.
(omp_default_clause): Print "taskloop" rather than "task" if
ORT_*TASKLOOP.
(omp_notice_variable): Handle ORT_TASKGROUP like ORT_WORKSHARE.
Handle new defaultmap clause kinds.
(omp_is_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. Allow simd
iterator to be lastprivate or private. Fix up diagnostics if linear
is used on collapse>1 simd iterator.
(omp_check_private): Handle ORT_TASKGROUP like ORT_WORKSHARE.
(gimplify_omp_depend): New function.
(gimplify_scan_omp_clauses): Add shared clause on parallel for
combined parallel master taskloop{, simd} if taskloop has
firstprivate, lastprivate or reduction clause. Handle
OMP_CLAUSE_REDUCTION_TASK diagnostics. Adjust tests for
ORT_COMBINED_TEAMS. Gimplify depend clauses with iterators. Handle
cancel and simd OMP_CLAUSE_IF_MODIFIERs. Handle
OMP_CLAUSE_NONTEMPORAL. Handle new defaultmap clause kinds. Handle
OMP_CLAUSE_{TASK,IN}_REDUCTION. Diagnose invalid conditional
lastprivate.
(gimplify_adjust_omp_clauses_1): Ignore GOVD_NONTEMPORAL. Handle
GOVD_MAP_ALLOC_ONLY and GOVD_MAP_FROM_ONLY.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_NONTEMPORAL. Handle
OMP_CLAUSE_{TASK,IN}_REDUCTION.
(gimplify_omp_task): Handle taskwait with depend clauses.
(gimplify_omp_for): Add shared clause on parallel for combined
parallel master taskloop{, simd} if taskloop has firstprivate,
lastprivate or reduction clause. Use ORT_TASKLOOP or
ORT_UNTIED_TASKLOOP instead of ORT_TASK or ORT_UNTIED_TASK. Adjust
tests for ORT_COMBINED_TEAMS. Handle C++ range for loops with
NULL TREE_PURPOSE in OMP_FOR_ORIG_DECLS. Firstprivatize
__for_end and __for_range temporaries on OMP_PARALLEL for
distribute parallel for{, simd}. Move OMP_CLAUSE_REDUCTION
and OMP_CLAUSE_IN_REDUCTION from taskloop to the task construct
sandwiched in between two taskloops.
(computable_teams_clause): Test ctx->defaultmap[GDMK_SCALAR]
instead of ctx->omp_firstprivatize_variable.
(gimplify_omp_workshare): Set ort to ORT_HOST_TEAMS or
ORT_COMBINED_HOST_TEAMS if not inside of target construct. If
host teams, use gimplify_and_return_first etc. for body like
for target or target data constructs, and at the end call
gimple_omp_teams_set_host on the GIMPLE_OMP_TEAMS object.
(gimplify_omp_atomic): Use OMP_ATOMIC_MEMORY_ORDER instead
of OMP_ATOMIC_SEQ_CST, pass it as new argument to
gimple_build_omp_atomic_load and gimple_build_omp_atomic_store, remove
gimple_omp_atomic_set_seq_cst calls.
(gimplify_expr) <case OMP_TASKGROUP>: Move handling into a separate
case, handle taskgroup clauses.
* lto-streamer-out.c (hash_tree): Handle
OMP_CLAUSE_{TASK,IN}_REDUCTION.
* Makefile.in (GTFILES): Add omp-general.h.
* omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_START, BUILT_IN_GOMP_LOOP_ORDERED_START,
BUILT_IN_GOMP_LOOP_DOACROSS_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_START, BUILT_IN_GOMP_LOOP_ULL_ORDERED_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME,
BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME,
BUILT_IN_GOMP_PARALLEL_REDUCTIONS, BUILT_IN_GOMP_SECTIONS2_START,
BUILT_IN_GOMP_TEAMS_REG, BUILT_IN_GOMP_TASKGROUP_REDUCTION_REGISTER,
BUILT_IN_GOMP_TASKGROUP_REDUCTION_UNREGISTER,
BUILT_IN_GOMP_TASK_REDUCTION_REMAP,
BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER): New builtins.
* omp-expand.c (workshare_safe_to_combine_p): Return false for
non-worksharing loops.
(omp_adjust_chunk_size): Don't adjust anything if chunk_size is zero.
(determine_parallel_type): Don't combine parallel with worksharing
which has _reductemp_ clause.
(expand_parallel_call): Emit the GOMP_*nonmonotonic_runtime* or
GOMP_*maybe_nonmonotonic_runtime* builtins instead of GOMP_*runtime*
if there is nonmonotonic modifier or if there is no modifier and no
ordered clause. For dynamic and guided schedule without monotonic
and nonmonotonic modifier, default to nonmonotonic.
(expand_omp_for): Likewise. Adjust expand_omp_for_generic caller, use
GOMP_loop{,_ull}{,_ordered,_doacross}_start builtins if there are
task reductions.
(expand_task_call): Add GOMP_TASK_FLAG_REDUCTION flag to flags if
there are any reduction clauses.
(expand_taskwait_call): New function.
(expand_teams_call): New function.
(expand_omp_taskreg): Allow GIMPLE_OMP_TEAMS and call
expand_teams_call for it. Formatting fix. Handle taskwait with
depend clauses.
(expand_omp_for_generic): Add SCHED_ARG argument. Handle expansion
of worksharing loops with task reductions.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
expansion of worksharing loops with task reductions.
(expand_omp_sections): Handle expansion of sections with task
reductions.
(expand_omp_synch): For host teams call expand_omp_taskreg.
(omp_memory_order_to_memmodel): New function.
(expand_omp_atomic_load, expand_omp_atomic_store,
expand_omp_atomic_fetch_op): Use it and gimple_omp_atomic_memory_order
instead of gimple_omp_atomic_seq_cst_p.
(build_omp_regions_1, omp_make_gimple_edges): Treat taskwait with
depend clauses as a standalone directive.
* omp-general.c (enum omp_requires): New variable.
(omp_extract_for_data): Initialize have_reductemp member. Allow
NE_EXPR even in OpenMP loops, transform them into LT_EXPR or
GT_EXPR loops depending on incr sign. Formatting fixes.
* omp-general.h (struct omp_for_data): Add have_reductemp member.
(enum omp_requires): New enum.
(omp_requires_mask): Declare.
* omp-grid.c (grid_eliminate_combined_simd_part): Formatting fix.
Fix comment typos.
* omp-low.c (struct omp_context): Add task_reductions and
task_reduction_map fields.
(is_host_teams_ctx): New function.
(is_taskreg_ctx): Return true also if is_host_teams_ctx.
(use_pointer_for_field): Use is_global_var instead of
TREE_STATIC || DECL_EXTERNAL, and apply only if not privatized
in outer contexts.
(build_outer_var_ref): Ignore taskgroup outer contexts.
(delete_omp_context): Release task_reductions and task_reduction_map.
(scan_sharing_clauses): Don't add any fields for reduction clause on
taskloop. Handle OMP_CLAUSE__REDUCTEMP_. Handle
OMP_CLAUSE_{IN,TASK}_REDUCTION and OMP_CLAUSE_REDUCTION with task
modifier. Don't ignore shared clauses in is_host_teams_ctx contexts.
Handle OMP_CLAUSE_NONTEMPORAL.
(add_taskreg_looptemp_clauses): Add OMP_CLAUSE__REDUCTEMP_ clause if
needed.
(scan_omp_parallel): Add _reductemp_ clause if there are any reduction
clauses with task modifier.
(scan_omp_task): Handle taskwait with depend clauses.
(finish_taskreg_scan): Move field corresponding to _reductemp_ clause
first. Move also OMP_CLAUSE__REDUCTEMP_ clause in front if present.
Handle GIMPLE_OMP_TEAMS like GIMPLE_OMP_PARALLEL.
(scan_omp_for): Fix comment formatting.
(scan_omp_teams): Handle host teams constructs.
(check_omp_nesting_restrictions): Allow teams with no outer
OpenMP context. Adjust diagnostics for teams strictly nested into
some explicit OpenMP construct other than target. Allow OpenMP atomics
inside of simd regions.
(scan_omp_1_stmt): Call scan_sharing_clauses for taskgroups.
(scan_omp_1_stmt) <case GIMPLE_OMP_TEAMS>: Temporarily bump
taskreg_nesting_level while scanning host teams construct.
(task_reduction_read): New function.
(lower_rec_input_clauses): Handle OMP_CLAUSE_REDUCTION on taskloop
construct. Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE__REDUCTEMP_
clauses. Handle OMP_CLAUSE_REDUCTION with task modifier. Remove
second argument create_tmp_var if it is NULL. Don't ignore shared
clauses in is_host_teams_ctx contexts. Handle
OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE on OMP_CLAUSE_FIRSTPRIVATE
clauses.
(lower_reduction_clauses): Ignore reduction clauses with task
modifier. Remove second argument create_tmp_var if it is NULL.
Initialize OMP_ATOMIC_MEMORY_ORDER to relaxed.
(lower_send_clauses): Ignore reduction clauses with task modifier.
Handle OMP_CLAUSE__REDUCTEMP_. Don't send anything for
OMP_CLAUSE_REDUCTION on taskloop. Handle OMP_CLAUSE_IN_REDUCTION.
(maybe_add_implicit_barrier_cancel): Add OMP_RETURN argument, don't
rely that it is the last stmt in body so far. Ignore outer taskgroup
contexts.
(omp_task_reductions_find_first, omp_task_reduction_iterate,
lower_omp_task_reductions): New functions.
(lower_omp_sections): Handle reduction clauses with taskgroup
modifiers. Adjust maybe_add_implicit_barrier_cancel caller.
(lower_omp_single): Adjust maybe_add_implicit_barrier_cancel caller.
(lower_omp_for): Likewise. Handle reduction clauses with taskgroup
modifiers.
(lower_omp_taskgroup): Handle taskgroup reductions.
(create_task_copyfn): Copy over OMP_CLAUSE__REDUCTEMP_ pointer.
Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE_REDUCTION clauses.
(lower_depend_clauses): If there are any
OMP_CLAUSE_DEPEND_DEPOBJ or OMP_CLAUSE_DEPEND_MUTEXINOUTSET
depend clauses, use a new array format. If OMP_CLAUSE_DEPEND_LAST is
seen, assume lowering is done already and return early. Set kind
on artificial depend clause to OMP_CLAUSE_DEPEND_LAST.
(lower_omp_taskreg): Handle reduction clauses with task modifier on
parallel construct. Handle reduction clause on taskloop construct.
Handle taskwait with depend clauses.
(lower_omp_1): Use lower_omp_taskreg instead of lower_omp_teams
for host teams constructs.
* tree.c (omp_clause_num_ops): Add in_reduction, task_reduction,
nontemporal and _reductemp_ clause entries.
(omp_clause_code_name): Likewise.
(walk_tree_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION,
OMP_CLAUSE_NONTEMPORAL and OMP_CLAUSE__REDUCTEMP_.
* tree-core.h (enum omp_clause_code): Add
OMP_CLAUSE_{{IN,TASK}_REDUCTION,NONTEMPORAL,_REDUCTEMP_}.
(enum omp_clause_defaultmap_kind, enum omp_memory_order): New.
(struct tree_base): Add omp_atomic_memory_order field into union.
Remove OMP_ATOMIC_SEQ_CST comment.
(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_MUTEXINOUTSET
and OMP_CLAUSE_DEPEND_DEPOBJ.
(struct tree_omp_clause): Add subcode.defaultmap_kind.
* tree.def (OMP_TASKGROUP): Add another operand, move next to other
OpenMP constructs with body and clauses operands.
* tree.h (OMP_BODY): Use OMP_MASTER instead of OMP_TASKGROUP.
(OMP_CLAUSES): Use OMP_TASKGROUP instead of OMP_SINGLE.
(OMP_TASKGROUP_CLAUSES): Define.
(OMP_CLAUSE_DECL): Use OMP_CLAUSE__REDUCTEMP_ instead of
OMP_CLAUSE__LOOPTEMP_.
(OMP_ATOMIC_SEQ_CST): Remove.
(OMP_ATOMIC_MEMORY_ORDER, OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE,
OMP_CLAUSE_LASTPRIVATE_CONDITIONAL): Define.
(OMP_CLAUSE_REDUCTION_CODE, OMP_CLAUSE_REDUCTION_INIT,
OMP_CLAUSE_REDUCTION_MERGE, OMP_CLAUSE_REDUCTION_PLACEHOLDER,
OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
OMP_CLAUSE_REDUCTION_OMP_ORIG_REF): Handle
OMP_CLAUSE_{,IN_,TASK_}REDUCTION.
(OMP_CLAUSE_REDUCTION_TASK, OMP_CLAUSE_REDUCTION_INSCAN,
OMP_CLAUSE_DEFAULTMAP_KIND, OMP_CLAUSE_DEFAULTMAP_CATEGORY,
OMP_CLAUSE_DEFAULTMAP_BEHAVIOR, OMP_CLAUSE_DEFAULTMAP_SET_KIND):
Define.
* tree-inline.c (remap_gimple_stmt): Remap taskgroup clauses.
* tree-nested.c (convert_nonlocal_omp_clauses): Handle
OMP_CLAUSE__REDUCTEMP_, OMP_CLAUSE_NONTEMPORAL.
(convert_local_omp_clauses): Likewise. Remove useless test.
* tree-parloops.c (create_call_for_reduction_1): Pass
OMP_MEMORY_ORDER_RELAXED as new argument to
dump_gimple_omp_atomic_load and dump_gimple_omp_atomic_store.
* tree-pretty-print.c (dump_omp_iterators): New function.
(dump_omp_clause): Handle OMP_CLAUSE__REDUCTEMP_,
OMP_CLAUSE_NONTEMPORAL, OMP_CLAUSE_{TASK,IN}_REDUCTION. Print
reduction modifiers. Handle OMP_CLAUSE_DEPEND_DEPOBJ and
OMP_CLAUSE_DEPEND_MUTEXINOUTSET. Print iterators in depend clauses.
Print __internal__ for OMP_CLAUSE_DEPEND_LAST. Handle cancel and
simd OMP_CLAUSE_IF_MODIFIERs. Handle new kinds of
OMP_CLAUSE_DEFAULTMAP. Print conditional: for
OMP_CLAUSE_LASTPRIVATE_CONDITIONAL.
(dump_omp_atomic_memory_order): New function.
(dump_generic_node): Use it. Print taskgroup clauses. Print
taskwait with depend clauses.
* tree-pretty-print.h (dump_omp_atomic_memory_order): Declare.
* tree-streamer-in.c (unpack_ts_omp_clause_value_fields):
Handle OMP_CLAUSE_{TASK,IN}_REDUCTION.
* tree-streamer-out.c (pack_ts_omp_clause_value_fields,
write_ts_omp_clause_tree_pointers): Likewise.
gcc/c-family/
* c-common.h (c_finish_omp_taskgroup): Add CLAUSES argument.
(c_finish_omp_atomic): Replace bool SEQ_CST argument with
enum omp_memory_order MEMORY_ORDER.
(c_finish_omp_flush): Add MO argument.
(c_omp_depend_t_p, c_finish_omp_depobj): Declare.
(c_finish_omp_for): Add FINAL_P argument.
* c-omp.c: Include memmodel.h.
(c_finish_omp_taskgroup): Add CLAUSES argument. Set
OMP_TASKGROUP_CLAUSES to it.
(c_finish_omp_atomic): Replace bool SEQ_CST argument with
enum omp_memory_order MEMORY_ORDER. Set OMP_ATOMIC_MEMORY_ORDER
instead of OMP_ATOMIC_SEQ_CST.
(c_omp_depend_t_p, c_finish_omp_depobj): New functions.
(c_finish_omp_flush): Add MO argument, if not MEMMODEL_LAST, emit
__atomic_thread_fence call with the given value.
(check_omp_for_incr_expr): Formatting fixes.
(c_finish_omp_for): Add FINAL_P argument. Allow NE_EXPR
even in OpenMP loops, diagnose if NE_EXPR and incr expression
is not constant expression 1 or -1. Transform NE_EXPR loops
with iterators pointers to VLA into LT_EXPR or GT_EXPR loops.
(c_omp_check_loop_iv_r): Look for orig decl of C++ range for
loops too.
(c_omp_split_clauses): Add support for combined
#pragma omp parallel master and
#pragma omp {,parallel }master taskloop{, simd} constructs.
Handle OMP_CLAUSE_IN_REDUCTION. Handle OMP_CLAUSE_REDUCTION_TASK.
Handle OMP_CLAUSE_NONTEMPORAL. Handle splitting OMP_CLAUSE_IF
also to OMP_SIMD. Copy OMP_CLAUSE_LASTPRIVATE_CONDITIONAL.
(c_omp_predetermined_sharing): Don't return
OMP_CLAUSE_DEFAULT_SHARED for const qualified decls.
* c-pragma.c (omp_pragmas): Add PRAGMA_OMP_DEPOBJ and
PRAGMA_OMP_REQUIRES.
* c-pragma.h (enum pragma_kind): Likewise.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_NONTEMPORAL
and PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.
gcc/c/
* c-parser.c: Include memmode.h.
(c_parser_omp_depobj, c_parser_omp_requires): New functions.
(c_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES.
(c_parser_omp_clause_name): Handle nontemporal, in_reduction and
task_reduction clauses.
(c_parser_omp_variable_list): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION.
For OMP_CLAUSE_DEPEND, parse clause operands as either an array
section, or lvalue assignment expression.
(c_parser_omp_clause_if): Handle cancel and simd modifiers.
(c_parser_omp_clause_lastprivate): Parse optional
conditional: modifier.
(c_parser_omp_clause_hint): Require constant integer expression rather
than just integer expression.
(c_parser_omp_clause_defaultmap): Parse new kinds of defaultmap
clause.
(c_parser_omp_clause_reduction): Add IS_OMP and KIND arguments.
Parse reduction modifiers. Pass KIND to c_parser_omp_variable_list.
(c_parser_omp_clause_nontemporal, c_parser_omp_iterators): New
functions.
(c_parser_omp_clause_depend): Parse iterator modifier and handle
iterators. Parse mutexinoutset and depobj kinds.
(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_reduction
callers.
(c_parser_omp_all_clauses): Likewise. Handle
PRAGMA_OMP_CLAUSE_NONTEMPORAL and
PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.
(c_parser_omp_atomic): Parse hint and memory order clauses. Handle
default memory order from requires directive if any. Adjust
c_finish_omp_atomic caller.
(c_parser_omp_critical): Allow comma in between (name) and hint clause.
(c_parser_omp_flush): Parse flush with memory-order-clause.
(c_parser_omp_for_loop): Allow NE_EXPR even in
OpenMP loops, adjust c_finish_omp_for caller.
(OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses.
(c_parser_omp_master): Add p_name, mask and cclauses arguments.
Allow to be called while parsing combined parallel master.
Parse combined master taskloop{, simd}.
(c_parser_omp_parallel): Parse combined
parallel master{, taskloop{, simd}} constructs.
(OMP_TASK_CLAUSE_MASK): Add in_reduction clause.
(OMP_TASKGROUP_CLAUSE_MASK): Define.
(c_parser_omp_taskgroup): Add LOC argument. Parse taskgroup clauses.
(OMP_TASKWAIT_CLAUSE_MASK): Define.
(c_parser_omp_taskwait): Handle taskwait with depend clauses.
(c_parser_omp_teams): Force a BIND_EXPR with BLOCK
around teams body. Use SET_EXPR_LOCATION.
(c_parser_omp_target_data): Allow target data
with only use_device_ptr clauses.
(c_parser_omp_target): Use SET_EXPR_LOCATION. Set
OMP_REQUIRES_TARGET_USED bit in omp_requires_mask.
(c_parser_omp_requires): New function.
(c_finish_taskloop_clauses): New function.
(OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses.
(c_parser_omp_taskloop): Use c_finish_taskloop_clauses. Add forward
declaration. Disallow in_reduction clause when combined with parallel
master.
(c_parser_omp_construct): Adjust c_parser_omp_master and
c_parser_omp_taskgroup callers.
* c-typeck.c (c_finish_omp_cancel): Diagnose if clause with modifier
other than cancel.
(handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION
like OMP_CLAUSE_REDUCTION.
(handle_omp_array_sections): Likewise. Call save_expr on array
reductions before calling build_index_type. Handle depend clauses
with iterators.
(struct c_find_omp_var_s): New type.
(c_find_omp_var_r, c_omp_finish_iterators): New functions.
(c_finish_omp_clauses): Don't diagnose nonmonotonic clause
with static, runtime or auto schedule kinds. Call save_expr for whole
array reduction sizes. Diagnose reductions with zero sized elements
or variable length structures. Diagnose nogroup clause used with
reduction clause(s). Handle depend clause with
OMP_CLAUSE_DEPEND_DEPOBJ. Diagnose bit-fields. Require
omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and
some different type for other kinds. Use build_unary_op with
ADDR_EXPR and build_indirect_ref instead of c_mark_addressable.
Handle depend clauses with iterators. Remove no longer needed special
case that predetermined const qualified vars may be specified in
firstprivate clause. Complain if const qualified vars are mentioned
in data-sharing clauses other than firstprivate or shared. Use
error_at with OMP_CLAUSE_LOCATION (c) as first argument instead of
error. Formatting fix. Handle OMP_CLAUSE_NONTEMPORAL and
OMP_CLAUSE_{IN,TASK}_REDUCTION. Allow any lvalue as
OMP_CLAUSE_DEPEND operand (besides array section), adjust diagnostics.
gcc/cp/
* constexpr.c (potential_constant_expression_1): Handle OMP_DEPOBJ.
* cp-gimplify.c (cp_genericize_r): Handle
OMP_CLAUSE_{IN,TASK}_REDUCTION.
(cxx_omp_predetermined_sharing_1): Don't return
OMP_CLAUSE_DEFAULT_SHARED for const qualified decls with no mutable
member. Return OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for this pointer.
* cp-objcp-common.c (cp_common_init_ts): Handle OMP_DEPOBJ.
* cp-tree.def (OMP_DEPOBJ): New tree code.
* cp-tree.h (OMP_ATOMIC_DEPENDENT_P): Return true also for first
argument being OMP_CLAUSE.
(OMP_DEPOBJ_DEPOBJ, OMP_DEPOBJ_CLAUSES): Define.
(cp_convert_omp_range_for, cp_finish_omp_range_for): Declare.
(finish_omp_atomic): Add LOC, CLAUSES and MO arguments. Remove
SEQ_CST argument.
(finish_omp_for_block): Declare.
(finish_omp_flush): Add MO argument.
(finish_omp_depobj): Declare.
* cxx-pretty-print.c (cxx_pretty_printer::statement): Handle
OMP_DEPOBJ.
* dump.c (cp_dump_tree): Likewise.
* lex.c (cxx_init): Likewise.
* parser.c: Include memmodel.h.
(cp_parser_for): Pass false as new is_omp argument to
cp_parser_range_for.
(cp_parser_range_for): Add IS_OMP argument, return before finalizing
if it is true.
(cp_parser_omp_clause_name): Handle nontemporal, in_reduction and
task_reduction clauses.
(cp_parser_omp_var_list_no_open): Handle
OMP_CLAUSE_{IN,TASK}_REDUCTION. For OMP_CLAUSE_DEPEND, parse clause
operands as either an array section, or lvalue assignment expression.
(cp_parser_omp_clause_if): Handle cancel and simd modifiers.
(cp_parser_omp_clause_defaultmap): Parse new kinds of defaultmap
clause.
(cp_parser_omp_clause_reduction): Add IS_OMP and KIND arguments.
Parse reduction modifiers. Pass KIND to c_parser_omp_variable_list.
(cp_parser_omp_clause_lastprivate, cp_parser_omp_iterators): New
functions.
(cp_parser_omp_clause_depend): Parse iterator modifier and handle
iterators. Parse mutexinoutset and depobj kinds.
(cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_reduction
callers.
(cp_parser_omp_all_clauses): Likewise. Handle
PRAGMA_OMP_CLAUSE_NONTEMPORAL and
PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION. Call
cp_parser_omp_clause_lastprivate for OpenMP lastprivate clause.
(cp_parser_omp_atomic): Pass pragma_tok->location as
LOC to finish_omp_atomic. Parse hint and memory order clauses.
Handle default memory order from requires directive if any. Adjust
finish_omp_atomic caller.
(cp_parser_omp_critical): Allow comma in between (name) and hint
clause.
(cp_parser_omp_depobj): New function.
(cp_parser_omp_flush): Parse flush with memory-order-clause.
(cp_parser_omp_for_cond): Allow NE_EXPR even in OpenMP loops.
(cp_convert_omp_range_for, cp_finish_omp_range_for): New functions.
(cp_parser_omp_for_loop): Parse C++11 range for loops among omp
loops. Handle OMP_CLAUSE_IN_REDUCTION like OMP_CLAUSE_REDUCTION.
(OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses.
(cp_parser_omp_simd, cp_parser_omp_for): Call keep_next_level before
begin_omp_structured_block and call finish_omp_for_block on
finish_omp_structured_block result.
(cp_parser_omp_master): Add p_name, mask and cclauses arguments.
Allow to be called while parsing combined parallel master.
Parse combined master taskloop{, simd}.
(cp_parser_omp_parallel): Parse combined
parallel master{, taskloop{, simd}} constructs.
(cp_parser_omp_single): Use SET_EXPR_LOCATION.
(OMP_TASK_CLAUSE_MASK): Add in_reduction clause.
(OMP_TASKWAIT_CLAUSE_MASK): Define.
(cp_parser_omp_taskwait): Handle taskwait with depend clauses.
(OMP_TASKGROUP_CLAUSE_MASK): Define.
(cp_parser_omp_taskgroup): Parse taskgroup clauses, adjust
c_finish_omp_taskgroup caller.
(cp_parser_omp_distribute): Call keep_next_level before
begin_omp_structured_block and call finish_omp_for_block on
finish_omp_structured_block result.
(cp_parser_omp_teams): Force a BIND_EXPR with BLOCK around teams
body.
(cp_parser_omp_target_data): Allow target data with only
use_device_ptr clauses.
(cp_parser_omp_target): Set OMP_REQUIRES_TARGET_USED bit in
omp_requires_mask.
(cp_parser_omp_requires): New function.
(OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses.
(cp_parser_omp_taskloop): Add forward declaration. Disallow
in_reduction clause when combined with parallel master. Call
keep_next_level before begin_omp_structured_block and call
finish_omp_for_block on finish_omp_structured_block result.
(cp_parser_omp_construct): Adjust cp_parser_omp_master caller.
(cp_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES.
* pt.c (tsubst_omp_clause_decl): Add iterators_cache argument.
Adjust recursive calls. Handle iterators.
(tsubst_omp_clauses): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION and
OMP_CLAUSE_NONTEMPORAL. Adjust tsubst_omp_clause_decl callers.
(tsubst_decomp_names):
(tsubst_omp_for_iterator): Change orig_declv into a reference.
Handle range for loops. Move orig_declv handling after declv/initv
handling.
(tsubst_expr): Force a BIND_EXPR with BLOCK around teams body.
Adjust finish_omp_atomic caller. Call keep_next_level before
begin_omp_structured_block. Call cp_finish_omp_range_for for range
for loops and use {begin,finish}_omp_structured_block instead of
{push,pop}_stmt_list if there are any range for loops. Call
finish_omp_for_block on finish_omp_structured_block result.
Handle OMP_DEPOBJ. Handle taskwait with depend clauses. For
OMP_ATOMIC call tsubst_omp_clauses on clauses if any, adjust
finish_omp_atomic caller. Use OMP_ATOMIC_MEMORY_ORDER rather
than OMP_ATOMIC_SEQ_CST. Handle clauses on OMP_TASKGROUP.
(dependent_omp_for_p): Always return true for range for loops if
processing_template_decl. Return true if class type iterator
does not have INTEGER_CST increment.
* semantics.c: Include memmodel.h.
(handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION
like OMP_CLAUSE_REDUCTION.
(handle_omp_array_sections): Likewise. Call save_expr on array
reductions before calling build_index_type. Handle depend clauses
with iterators.
(finish_omp_reduction_clause): Call save_expr for whole array
reduction sizes. Don't mark OMP_CLAUSE_DECL addressable if it has
reference type. Do mark decl_placeholder addressable if needed.
Use error_at with OMP_CLAUSE_LOCATION (c) as first argument instead
of error.
(cp_omp_finish_iterators): New function.
(finish_omp_clauses): Don't diagnose nonmonotonic clause with static,
runtime or auto schedule kinds. Diagnose nogroup clause used with
reduction clause(s). Handle depend clause with
OMP_CLAUSE_DEPEND_DEPOBJ. Diagnose bit-fields. Require
omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and
some different type for other kinds. Use cp_build_addr_expr
and cp_build_indirect_ref instead of cxx_mark_addressable.
Handle depend clauses with iterators. Only handle static data members
in the special case that const qualified vars may be specified in
firstprivate clause. Complain if const qualified vars without mutable
members are mentioned in data-sharing clauses other than firstprivate
or shared. Use error_at with OMP_CLAUSE_LOCATION (c) as first
argument instead of error. Diagnose more than one nontemporal clause
refering to the same variable. Use error_at rather than error for
priority and hint clause diagnostics. Fix pasto for hint clause.
Diagnose hint expression that doesn't fold into INTEGER_CST.
Diagnose if clause with modifier other than cancel. Handle
OMP_CLAUSE_{IN,TASK}_REDUCTION like OMP_CLAUSE_REDUCTION. Allow any
lvalue as OMP_CLAUSE_DEPEND operand (besides array section), adjust
diagnostics.
(handle_omp_for_class_iterator): Don't create a new TREE_LIST if one
has been created already for range for, just fill TREE_PURPOSE and
TREE_VALUE. Call cp_fully_fold on incr.
(finish_omp_for): Don't check cond/incr if cond is global_namespace.
Pass to c_omp_check_loop_iv_exprs orig_declv if non-NULL. Don't
use IS_EMPTY_STMT on NULL pre_body. Adjust c_finish_omp_for caller.
(finish_omp_for_block): New function.
(finish_omp_atomic): Add LOC argument, pass it through
to c_finish_omp_atomic and set it as location of OMP_ATOMIC* trees.
Remove SEQ_CST argument. Add CLAUSES and MO arguments. Adjust
c_finish_omp_atomic caller. Stick clauses if any into first argument
of wrapping OMP_ATOMIC.
(finish_omp_depobj): New function.
(finish_omp_flush): Add MO argument, if not
MEMMODEL_LAST, emit __atomic_thread_fence call with the given value.
(finish_omp_cancel): Diagnose if clause with modifier other than
cancel.
gcc/fortran/
* trans-openmp.c (gfc_trans_omp_clauses): Use
OMP_CLAUSE_DEFAULTMAP_SET_KIND.
(gfc_trans_omp_atomic): Set OMP_ATOMIC_MEMORY_ORDER
rather than OMP_ATOMIC_SEQ_CST.
(gfc_trans_omp_taskgroup): Build OMP_TASKGROUP using
make_node instead of build1_loc.
* types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR,
BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): Formatting fix.
gcc/testsuite/
* c-c++-common/gomp/atomic-17.c: New test.
* c-c++-common/gomp/atomic-18.c: New test.
* c-c++-common/gomp/atomic-19.c: New test.
* c-c++-common/gomp/atomic-20.c: New test.
* c-c++-common/gomp/atomic-21.c: New test.
* c-c++-common/gomp/atomic-22.c: New test.
* c-c++-common/gomp/clauses-1.c (r2): New variable.
(foo): Add ntm argument and test if and nontemporal clauses on
constructs with simd.
(bar): Put taskloop simd inside of taskgroup with task_reduction,
use in_reduction clause instead of reduction. Add another
taskloop simd without nogroup clause, but with reduction clause and
a new in_reduction. Add ntm and i3 arguments. Test if and
nontemporal clauses on constructs with simd. Change if clauses on
some constructs from specific to the particular constituents to one
without a modifier. Add new tests for combined host teams and for
new parallel master and {,parallel }master taskloop{, simd} combined
constructs.
(baz): New function with host teams tests.
* gcc.dg/gomp/combined-1.c: Moved to ...
* c-c++-common/gomp/combined-1.c: ... here. Adjust expected library
call.
* c-c++-common/gomp/combined-2.c: New test.
* c-c++-common/gomp/combined-3.c: New test.
* c-c++-common/gomp/critical-1.c: New test.
* c-c++-common/gomp/critical-2.c: New test.
* c-c++-common/gomp/default-1.c: New test.
* c-c++-common/gomp/defaultmap-1.c: New test.
* c-c++-common/gomp/defaultmap-2.c: New test.
* c-c++-common/gomp/defaultmap-3.c: New test.
* c-c++-common/gomp/depend-5.c: New test.
* c-c++-common/gomp/depend-6.c: New test.
* c-c++-common/gomp/depend-iterator-1.c: New test.
* c-c++-common/gomp/depend-iterator-2.c: New test.
* c-c++-common/gomp/depobj-1.c: New test.
* c-c++-common/gomp/flush-1.c: New test.
* c-c++-common/gomp/flush-2.c: New test.
* c-c++-common/gomp/for-1.c: New test.
* c-c++-common/gomp/for-2.c: New test.
* c-c++-common/gomp/for-3.c: New test.
* c-c++-common/gomp/for-4.c: New test.
* c-c++-common/gomp/for-5.c: New test.
* c-c++-common/gomp/for-6.c: New test.
* c-c++-common/gomp/for-7.c: New test.
* c-c++-common/gomp/if-1.c (foo): Add some further tests.
* c-c++-common/gomp/if-2.c (foo): Likewise. Expect slightly different
diagnostics wording in one case.
* c-c++-common/gomp/if-3.c: New test.
* c-c++-common/gomp/master-combined-1.c: New test.
* c-c++-common/gomp/master-combined-2.c: New test.
* c-c++-common/gomp/nontemporal-1.c: New test.
* c-c++-common/gomp/nontemporal-2.c: New test.
* c-c++-common/gomp/reduction-task-1.c: New test.
* c-c++-common/gomp/reduction-task-2.c: New test.
* c-c++-common/gomp/requires-1.c: New test.
* c-c++-common/gomp/requires-2.c: New test.
* c-c++-common/gomp/requires-3.c: New test.
* c-c++-common/gomp/requires-4.c: New test.
* c-c++-common/gomp/schedule-modifiers-1.c (bar): Don't expect
diagnostics for nonmonotonic modifier with static, runtime or auto
schedule kinds.
* c-c++-common/gomp/simd7.c: New test.
* c-c++-common/gomp/target-data-1.c: New test.
* c-c++-common/gomp/taskloop-reduction-1.c: New test.
* c-c++-common/gomp/taskwait-depend-1.c: New test.
* c-c++-common/gomp/teams-1.c: New test.
* c-c++-common/gomp/teams-2.c: New test.
* gcc.dg/gomp/appendix-a/a.24.1.c: Update from OpenMP examples. Add
shared(c) clause.
* gcc.dg/gomp/atomic-5.c (f1): Add another expected error.
* gcc.dg/gomp/clause-1.c: Adjust expected diagnostics for const
qualified vars without mutable member no longer being predeterined
shared.
* gcc.dg/gomp/sharing-1.c: Likewise.
* g++.dg/gomp/clause-3.C: Likewise.
* g++.dg/gomp/member-2.C: Likewise.
* g++.dg/gomp/predetermined-1.C: Likewise.
* g++.dg/gomp/private-1.C: Likewise.
* g++.dg/gomp/sharing-1.C: Likewise.
* g++.dg/gomp/sharing-2.C: Likewise. Add a few tests with aggregate
const static data member without mutable elements.
* gcc.dg/gomp/for-4.c: Expected nonmonotonic functions in the dumps.
* gcc.dg/gomp/for-5.c: Likewise.
* gcc.dg/gomp/for-6.c: Change expected library call.
* gcc.dg/gomp/pr39495-2.c (foo): Don't expect errors on !=.
* gcc.dg/gomp/reduction-2.c: New test.
* gcc.dg/gomp/simd-1.c: New test.
* gcc.dg/gomp/teams-1.c: Adjust expected diagnostic lines.
* g++.dg/gomp/atomic-18.C: New test.
* g++.dg/gomp/atomic-19.C: New test.
* g++.dg/gomp/atomic-5.C (f1): Adjust expected lines of read-only
variable messages. Add another expected error.
* g++.dg/gomp/critical-3.C: New test.
* g++.dg/gomp/depend-iterator-1.C: New test.
* g++.dg/gomp/depend-iterator-2.C: New test.
* g++.dg/gomp/depobj-1.C: New test.
* g++.dg/gomp/doacross-1.C: New test.
* g++.dg/gomp/for-21.C: New test.
* g++.dg/gomp/for-4.C: Expected nonmonotonic functions in the dumps.
* g++.dg/gomp/for-5.C: Likewise.
* g++.dg/gomp/for-6.C: Change expected library call.
* g++.dg/gomp/loop-4.C: New test.
* g++.dg/gomp/pr33372-1.C: Adjust location of the expected
diagnostics.
* g++.dg/gomp/pr33372-3.C: Likewise.
* g++.dg/gomp/pr39495-2.C (foo): Don't expect errors on !=.
* g++.dg/gomp/simd-2.C: New test.
* g++.dg/gomp/tpl-atomic-2.C: Adjust expected diagnostic lines.
include/
* gomp-constants.h (GOMP_TASK_FLAG_REDUCTION,
GOMP_DEPEND_IN, GOMP_DEPEND_OUT, GOMP_DEPEND_INOUT,
GOMP_DEPEND_MUTEXINOUTSET): Define.
libgomp/
* affinity.c (gomp_display_affinity_place): New function.
* affinity-fmt.c: New file.
* alloc.c (gomp_aligned_alloc, gomp_aligned_free): New functions.
* config/linux/affinity.c (gomp_display_affinity_place): New function.
* config/nvptx/icv-device.c (omp_get_num_teams, omp_get_team_num):
Move these functions to ...
* config/nvptx/teams.c: ... here. New file.
* config/nvptx/target.c (omp_pause_resource, omp_pause_resource_all):
New functions.
* config/nvptx/team.c (gomp_team_start, gomp_pause_host): New
functions.
* configure.ac: Check for aligned_alloc, posix_memalign, memalign
and _aligned_malloc.
(HAVE_UNAME, HAVE_GETHOSTNAME, HAVE_GETPID): Add new tests.
* configure.tgt: Add -DUSING_INITIAL_EXEC_TLS to XCFLAGS for Linux.
* env.c (gomp_display_affinity_var, gomp_affinity_format_var,
gomp_affinity_format_len): New variables.
(parse_schedule): Parse monotonic and nonmonotonic modifiers in
OMP_SCHEDULE variable. Set GFS_MONOTONIC for monotonic schedules.
(handle_omp_display_env): Display monotonic/nonmonotonic schedule
modifiers. Display (non-default) chunk sizes. Print
OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT.
(initialize_env): Don't call pthread_attr_setdetachstate. Handle
OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT env vars.
* fortran.c: Include stdio.h and string.h.
(omp_pause_resource, omp_pause_resource_all): Add ialias_redirect.
(omp_get_schedule_, omp_get_schedule_8_): Mask off GFS_MONOTONIC bit.
(omp_set_affinity_format_, omp_get_affinity_format_,
omp_display_affinity_, omp_capture_affinity_, omp_pause_resource_,
omp_pause_resource_all_): New functions.
* icv.c (omp_set_schedule): Mask off omp_sched_monotonic bit in
switch.
* icv-device.c (omp_get_num_teams, omp_get_team_num): Move these
functions to ...
* teams.c: ... here. New file.
* libgomp_g.h: Include gstdint.h.
(GOMP_loop_nonmonotonic_runtime_start,
GOMP_loop_maybe_nonmonotonic_runtime_start, GOMP_loop_start,
GOMP_loop_ordered_start, GOMP_loop_nonmonotonic_runtime_next,
GOMP_loop_maybe_nonmonotonic_runtime_next, GOMP_loop_doacross_start,
GOMP_parallel_loop_nonmonotonic_runtime,
GOMP_parallel_loop_maybe_nonmonotonic_runtime,
GOMP_loop_ull_nonmonotonic_runtime_start,
GOMP_loop_ull_maybe_nonmonotonic_runtime_start, GOMP_loop_ull_start,
GOMP_loop_ull_ordered_start, GOMP_loop_ull_nonmonotonic_runtime_next,
GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
GOMP_loop_ull_doacross_start, GOMP_parallel_reductions,
GOMP_taskwait_depend, GOMP_taskgroup_reduction_register,
GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
GOMP_teams_reg): Declare.
* libgomp.h (GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC): Define unless
gomp_aligned_alloc uses fallback implementation.
(gomp_aligned_alloc, gomp_aligned_free): Declare.
(enum gomp_schedule_type): Add GFS_MONOTONIC.
(struct gomp_doacross_work_share): Add extra field.
(struct gomp_work_share): Add task_reductions field.
(struct gomp_taskgroup): Add workshare and reductions fields.
(GOMP_NEEDS_THREAD_HANDLE): Define if needed.
(gomp_thread_handle): New typedef.
(gomp_display_affinity_place, gomp_set_affinity_format,
gomp_display_string, gomp_display_affinity,
gomp_display_affinity_thread): Declare.
(gomp_doacross_init, gomp_doacross_ull_init): Add size_t argument.
(gomp_parallel_reduction_register, gomp_workshare_taskgroup_start,
gomp_workshare_task_reduction_register): Declare.
(gomp_team_start): Add taskgroup argument.
(gomp_pause_host): Declare.
(gomp_init_work_share, gomp_work_share_start): Change bool argument
to size_t.
(gomp_thread_self, gomp_thread_to_pthread_t): New inline functions.
* libgomp.map (GOMP_5.0): Export GOMP_loop_start,
GOMP_loop_ordered_start, GOMP_loop_doacross_start,
GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
GOMP_loop_ull_doacross_start,
GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
GOMP_loop_maybe_nonmonotonic_runtime_next,
GOMP_loop_maybe_nonmonotonic_runtime_start,
GOMP_loop_nonmonotonic_runtime_next,
GOMP_loop_nonmonotonic_runtime_start,
GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
GOMP_loop_ull_nonmonotonic_runtime_next,
GOMP_loop_ull_nonmonotonic_runtime_start,
GOMP_parallel_loop_maybe_nonmonotonic_runtime,
GOMP_parallel_loop_nonmonotonic_runtime, GOMP_parallel_reductions,
GOMP_taskgroup_reduction_register,
GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
GOMP_teams_reg and GOMP_taskwait_depend.
(OMP_5.0): Export omp_pause_resource{,_all}{,_},
omp_{capture,display}_affinity{,_}, and
omp_[gs]et_affinity_format{,_}.
* loop.c: Include string.h.
(GOMP_loop_runtime_next): Add ialias.
(GOMP_taskgroup_reduction_register): Add ialias_redirect.
(gomp_loop_static_start, gomp_loop_dynamic_start,
gomp_loop_guided_start, gomp_loop_ordered_static_start,
gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
gomp_loop_doacross_guided_start): Adjust gomp_work_share_start
or gomp_doacross_init callers.
(gomp_adjust_sched, GOMP_loop_start, GOMP_loop_ordered_start,
GOMP_loop_doacross_start): New functions.
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
GOMP_loop_doacross_runtime_start, GOMP_parallel_loop_runtime_start):
Mask off GFS_MONOTONIC bit.
(GOMP_loop_maybe_nonmonotonic_runtime_next,
GOMP_loop_maybe_nonmonotonic_runtime_start,
GOMP_loop_nonmonotonic_runtime_next,
GOMP_loop_nonmonotonic_runtime_start,
GOMP_parallel_loop_maybe_nonmonotonic_runtime,
GOMP_parallel_loop_nonmonotonic_runtime): New aliases or wrapper
functions.
(gomp_parallel_loop_start): Pass NULL as taskgroup to
gomp_team_start.
* loop_ull.c: Include string.h.
(GOMP_loop_ull_runtime_next): Add ialias.
(GOMP_taskgroup_reduction_register): Add ialias_redirect.
(gomp_loop_ull_static_start, gomp_loop_ull_dynamic_start,
gomp_loop_ull_guided_start, gomp_loop_ull_ordered_static_start,
gomp_loop_ull_ordered_dynamic_start,
gomp_loop_ull_ordered_guided_start,
gomp_loop_ull_doacross_static_start,
gomp_loop_ull_doacross_dynamic_start,
gomp_loop_ull_doacross_guided_start): Adjust gomp_work_share_start
and gomp_doacross_ull_init callers.
(gomp_adjust_sched, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
GOMP_loop_ull_doacross_start): New functions.
(GOMP_loop_ull_runtime_start,
GOMP_loop_ull_ordered_runtime_start,
GOMP_loop_ull_doacross_runtime_start): Mask off GFS_MONOTONIC bit.
(GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
GOMP_loop_ull_nonmonotonic_runtime_next,
GOMP_loop_ull_nonmonotonic_runtime_start): Likewise.
* Makefile.am (libgomp_la_SOURCES): Add teams.c and affinity-fmt.c.
* omp.h.in (enum omp_sched_t): Add omp_sched_monotonic.
(omp_pause_resource_t, omp_depend_t): New typedefs.
(enum omp_lock_hint_t): Renamed to ...
(enum omp_sync_hint_t): ... this. Define omp_sync_hint_*
enumerators using numbers and omp_lock_hint_* as their aliases.
(omp_lock_hint_t): New typedef. Rename to ...
(omp_sync_hint_t): ... this.
(omp_init_lock_with_hint, omp_init_nest_lock_with_hint): Use
omp_sync_hint_t instead of omp_lock_hint_t.
(omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
Declare.
(omp_target_is_present, omp_target_disassociate_ptr):
Change first argument from void * to const void *.
(omp_target_memcpy, omp_target_memcpy_rect): Change second argument
from void * to const void *.
(omp_target_associate_ptr): Change first and second arguments from
void * to const void *.
* omp_lib.f90.in (omp_pause_resource_kind, omp_pause_soft,
omp_pause_hard): New parameters.
(omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
New interfaces.
* omp_lib.h.in (omp_pause_resource_kind, omp_pause_soft,
omp_pause_hard): New parameters.
(omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
New externals.
* ordered.c (gomp_doacross_init, gomp_doacross_ull_init): Add
EXTRA argument. If not needed to prepare array, if extra is 0,
clear ws->doacross, otherwise allocate just doacross structure and
extra payload. If array is needed, allocate also extra payload.
(GOMP_doacross_post, GOMP_doacross_wait, GOMP_doacross_ull_post,
GOMP_doacross_ull_wait): Handle doacross->array == NULL like
doacross == NULL.
* parallel.c (GOMP_parallel_start): Pass NULL as taskgroup to
gomp_team_start.
(GOMP_parallel): Likewise. Formatting fix.
(GOMP_parallel_reductions): New function.
(GOMP_cancellation_point): If taskgroup has workshare
flag set, check cancelled of prev taskgroup if any.
(GOMP_cancel): If taskgroup has workshare flag set, set cancelled
on prev taskgroup if any.
* sections.c: Include string.h.
(GOMP_taskgroup_reduction_register): Add ialias_redirect.
(GOMP_sections_start): Adjust gomp_work_share_start caller.
(GOMP_sections2_start): New function.
(GOMP_parallel_sections_start, GOMP_parallel_sections):
Pass NULL as taskgroup to gomp_team_start.
* single.c (GOMP_single_start, GOMP_single_copy_start): Adjust
gomp_work_share_start callers.
* target.c (GOMP_target_update_ext, GOMP_target_enter_exit_data):
If taskgroup has workshare flag set, check cancelled on prev
taskgroup if any. Guard all cancellation tests with
gomp_cancel_var test.
(omp_target_is_present, omp_target_disassociate_ptr):
Change ptr argument from void * to const void *.
(omp_target_memcpy): Change src argument from void * to const void *.
(omp_target_memcpy_rect): Likewise.
(omp_target_memcpy_rect_worker): Likewise. Use const char * casts
instead of char * where needed.
(omp_target_associate_ptr): Change host_ptr and device_ptr arguments
from void * to const void *.
(omp_pause_resource, omp_pause_resource_all): New functions.
* task.c (gomp_task_handle_depend): Handle new depend array format
in addition to the old. Handle mutexinoutset kinds the same as
inout for now, handle unspecified kinds.
(gomp_create_target_task): If taskgroup has workshare flag set, check
cancelled on prev taskgroup if any. Guard all cancellation tests with
gomp_cancel_var test. Handle new depend array format count in
addition to the old.
(GOMP_task): Likewise. Adjust function comment.
(gomp_task_run_pre): If taskgroup has workshare flag set, check
cancelled on prev taskgroup if any. Guard all cancellation tests with
gomp_cancel_var test.
(GOMP_taskwait_depend): New function.
(gomp_task_maybe_wait_for_dependencies): Handle new depend array
format in addition to the old. Handle mutexinoutset kinds the same as
inout for now, handle unspecified kinds. Fix a function comment typo.
(gomp_taskgroup_init): New function.
(GOMP_taskgroup_start): Use it.
(gomp_reduction_register, gomp_create_artificial_team,
GOMP_taskgroup_reduction_register,
GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
gomp_parallel_reduction_register,
gomp_workshare_task_reduction_register,
gomp_workshare_taskgroup_start,
GOMP_workshare_task_reduction_unregister): New functions.
* taskloop.c (GOMP_taskloop): If taskgroup has workshare flag set,
check cancelled on prev taskgroup if any. Guard all cancellation
tests with gomp_cancel_var test. Handle GOMP_TASK_FLAG_REDUCTION flag
by calling GOMP_taskgroup_reduction_register.
* team.c (gomp_thread_attr): Remove comment.
(struct gomp_thread_start_data): Add handle field.
(gomp_thread_start): Call pthread_detach.
(gomp_new_team): Adjust gomp_init_work_share caller.
(gomp_free_pool_helper): Call pthread_detach.
(gomp_team_start): Add taskgroup argument, initialize implicit
tasks' taskgroup field to that. Don't call
pthread_attr_setdetachstate. Handle OMP_DISPLAY_AFFINITY env var.
(gomp_team_end): Determine nesting by thr->ts.level != 0
rather than thr->ts.team != NULL.
(gomp_pause_pool_helper, gomp_pause_host): New functions.
* work.c (alloc_work_share): Use gomp_aligned_alloc instead of
gomp_malloc if GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC is defined.
(gomp_init_work_share): Change ORDERED argument from bool to size_t,
if more than 1 allocate also extra payload at the end of array. Never
keep ordered_team_ids NULL, set it to inline_ordered_team_ids instead.
(gomp_work_share_start): Change ORDERED argument from bool to size_t,
return true instead of ws.
* Makefile.in: Regenerated.
* configure: Regenerated.
* config.h.in: Regenerated.
* testsuite/libgomp.c/cancel-for-2.c (foo): Use cancel modifier
in some cases.
* testsuite/libgomp.c-c++-common/cancel-parallel-1.c: New test.
* testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: New test.
* testsuite/libgomp.c-c++-common/depend-iterator-1.c: New test.
* testsuite/libgomp.c-c++-common/depend-iterator-2.c: New test.
* testsuite/libgomp.c-c++-common/depend-mutexinout-1.c: New test.
* testsuite/libgomp.c-c++-common/depend-mutexinout-2.c: New test.
* testsuite/libgomp.c-c++-common/depobj-1.c: New test.
* testsuite/libgomp.c-c++-common/display-affinity-1.c: New test.
* testsuite/libgomp.c-c++-common/for-10.c: New test.
* testsuite/libgomp.c-c++-common/for-11.c: New test.
* testsuite/libgomp.c-c++-common/for-12.c: New test.
* testsuite/libgomp.c-c++-common/for-13.c: New test.
* testsuite/libgomp.c-c++-common/for-14.c: New test.
* testsuite/libgomp.c-c++-common/for-15.c: New test.
* testsuite/libgomp.c-c++-common/for-2.h: If CONDNE macro is defined,
define a different N(test), don't define N(f0) to N(f14), but instead
define N(f20) to N(f34) using != comparisons.
* testsuite/libgomp.c-c++-common/for-7.c: New test.
* testsuite/libgomp.c-c++-common/for-8.c: New test.
* testsuite/libgomp.c-c++-common/for-9.c: New test.
* testsuite/libgomp.c-c++-common/master-combined-1.c: New test.
* testsuite/libgomp.c-c++-common/pause-1.c: New test.
* testsuite/libgomp.c-c++-common/pause-2.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-10.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-11.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-12.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-13.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-14.c: New test.
* testsuite/libgomp.c-c++-common/simd-1.c: New test.
* testsuite/libgomp.c-c++-common/taskloop-reduction-1.c: New test.
* testsuite/libgomp.c-c++-common/taskloop-reduction-2.c: New test.
* testsuite/libgomp.c-c++-common/taskloop-reduction-3.c: New test.
* testsuite/libgomp.c-c++-common/taskloop-reduction-4.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-11.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-12.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-1.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-2.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-3.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-4.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-5.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-6.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-7.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-8.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-9.c: New test.
* testsuite/libgomp.c-c++-common/taskwait-depend-1.c: New test.
* testsuite/libgomp.c++/depend-1.C: New test.
* testsuite/libgomp.c++/depend-iterator-1.C: New test.
* testsuite/libgomp.c++/depobj-1.C: New test.
* testsuite/libgomp.c++/for-16.C: New test.
* testsuite/libgomp.c++/for-21.C: New test.
* testsuite/libgomp.c++/for-22.C: New test.
* testsuite/libgomp.c++/for-23.C: New test.
* testsuite/libgomp.c++/for-24.C: New test.
* testsuite/libgomp.c++/for-25.C: New test.
* testsuite/libgomp.c++/for-26.C: New test.
* testsuite/libgomp.c++/taskloop-reduction-1.C: New test.
* testsuite/libgomp.c++/taskloop-reduction-2.C: New test.
* testsuite/libgomp.c++/taskloop-reduction-3.C: New test.
* testsuite/libgomp.c++/taskloop-reduction-4.C: New test.
* testsuite/libgomp.c++/task-reduction-10.C: New test.
* testsuite/libgomp.c++/task-reduction-11.C: New test.
* testsuite/libgomp.c++/task-reduction-12.C: New test.
* testsuite/libgomp.c++/task-reduction-13.C: New test.
* testsuite/libgomp.c++/task-reduction-14.C: New test.
* testsuite/libgomp.c++/task-reduction-15.C: New test.
* testsuite/libgomp.c++/task-reduction-16.C: New test.
* testsuite/libgomp.c++/task-reduction-17.C: New test.
* testsuite/libgomp.c++/task-reduction-18.C: New test.
* testsuite/libgomp.c++/task-reduction-19.C: New test.
* testsuite/libgomp.c/task-reduction-1.c: New test.
* testsuite/libgomp.c++/task-reduction-1.C: New test.
* testsuite/libgomp.c/task-reduction-2.c: New test.
* testsuite/libgomp.c++/task-reduction-2.C: New test.
* testsuite/libgomp.c++/task-reduction-3.C: New test.
* testsuite/libgomp.c++/task-reduction-4.C: New test.
* testsuite/libgomp.c++/task-reduction-5.C: New test.
* testsuite/libgomp.c++/task-reduction-6.C: New test.
* testsuite/libgomp.c++/task-reduction-7.C: New test.
* testsuite/libgomp.c++/task-reduction-8.C: New test.
* testsuite/libgomp.c++/task-reduction-9.C: New test.
* testsuite/libgomp.c/teams-1.c: New test.
* testsuite/libgomp.c/teams-2.c: New test.
* testsuite/libgomp.c/thread-limit-4.c: New test.
* testsuite/libgomp.c/thread-limit-5.c: New test.
* testsuite/libgomp.fortran/display-affinity-1.f90: New test.
From-SVN: r265930
2018-11-08 18:13:04 +01:00
|
|
|
|
2018-11-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2018-11-08 20:38:21 +01:00
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-8.c (bar): Add
|
|
|
|
|
in_reduction clause for s[0].
|
|
|
|
|
|
builtin-types.def (BT_FN_VOID_BOOL, [...]): New.
* builtin-types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR,
BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New.
* gengtype.c (open_base_files): Add omp-general.h.
* gimple.c (gimple_build_omp_critical):
(gimple_build_omp_taskgroup): Add CLAUSES argument. Call
gimple_omp_taskgroup_set_clauses.
(gimple_build_omp_atomic_load): Add mo argument, call
gimple_omp_atomic_set_memory_order.
(gimple_build_omp_atomic_store): Likewise.
(gimple_copy): Adjust handling of GIMPLE_OMP_TASKGROUP.
* gimple.def (GIMPLE_OMP_TASKGROUP): Use GSS_OMP_SINGLE_LAYOUT
instead of GSS_OMP.
(GIMPLE_OMP_TEAMS): Use GSS_OMP_PARALLEL_LAYOUT instead
of GSS_OMP_SINGLE_LAYOUT, adjust comments.
* gimple.h (enum gf_mask): Add GF_OMP_TEAMS_HOST, GF_OMP_TASK_TASKWAIT
and GF_OMP_ATOMIC_MEMORY_ORDER. Remove GF_OMP_ATOMIC_SEQ_CST, use
different value for GF_OMP_ATOMIC_NEED_VALUE.
(struct gimple_statement_omp_taskreg): Add GIMPLE_OMP_TEAMS to
comments.
(struct gimple_statement_omp_single_layout): And remove here.
(struct gomp_teams): Inherit from gimple_statement_omp_taskreg rather
than gimple_statement_omp_single_layout.
(is_a_helper <gimple_statement_omp_taskreg *>::test): Allow
GIMPLE_OMP_TEAMS.
(is_a_helper <const gimple_statement_omp_taskreg *>::test): Likewise.
(gimple_omp_subcode): Formatting fix.
(gimple_omp_teams_child_fn, gimple_omp_teams_child_fn_ptr,
gimple_omp_teams_set_child_fn, gimple_omp_teams_data_arg,
gimple_omp_teams_data_arg_ptr, gimple_omp_teams_set_data_arg,
gimple_omp_teams_host, gimple_omp_teams_set_host,
gimple_omp_task_taskwait_p, gimple_omp_task_set_taskwait_p,
gimple_omp_taskgroup_clauses, gimple_omp_taskgroup_clauses_ptr,
gimple_omp_taskgroup_set_clauses): New inline functions.
(gimple_build_omp_atomic_load): Add enum omp_memory_order argument.
(gimple_build_omp_atomic_store): Likewise.
(gimple_omp_atomic_seq_cst_p): Remove.
(gimple_omp_atomic_memory_order): New function.
(gimple_omp_atomic_set_seq_cst): Remove.
(gimple_omp_atomic_set_memory_order): New function.
(gimple_build_omp_taskgroup): Add clauses argument.
* gimple-pretty-print.c (dump_gimple_omp_taskgroup): New function.
(dump_gimple_omp_task): Print taskwait with depend clauses.
(dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Use
dump_omp_atomic_memory_order.
(pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALLOC_ONLY,
GOVD_MAP_FROM_ONLY and GOVD_NONTEMPORAL.
(enum omp_region_type): Reserve bits 1 and 2 for auxiliary flags,
renumber values of most of ORT_* enumerators, add ORT_HOST_TEAMS,
ORT_COMBINED_HOST_TEAMS, ORT_TASKGROUP, ORT_TASKLOOP and
ORT_UNTIED_TASKLOOP enumerators.
(enum gimplify_defaultmap_kind): New.
(struct gimplify_omp_ctx): Remove target_map_scalars_firstprivate and
target_map_pointers_as_0len_arrays members, add defaultmap.
(new_omp_context): Initialize defaultmap member.
(gimple_add_tmp_var): Handle ORT_TASKGROUP like ORT_WORKSHARE.
(maybe_fold_stmt): Don't fold even in host teams regions.
(omp_firstprivatize_variable): Handle ORT_TASKGROUP like
ORT_WORKSHARE. Test ctx->defaultmap[GDMK_SCALAR] instead of
ctx->omp_firstprivatize_variable.
(omp_add_variable): Don't add private/firstprivate for VLAs in
ORT_TASKGROUP.
(omp_default_clause): Print "taskloop" rather than "task" if
ORT_*TASKLOOP.
(omp_notice_variable): Handle ORT_TASKGROUP like ORT_WORKSHARE.
Handle new defaultmap clause kinds.
(omp_is_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. Allow simd
iterator to be lastprivate or private. Fix up diagnostics if linear
is used on collapse>1 simd iterator.
(omp_check_private): Handle ORT_TASKGROUP like ORT_WORKSHARE.
(gimplify_omp_depend): New function.
(gimplify_scan_omp_clauses): Add shared clause on parallel for
combined parallel master taskloop{, simd} if taskloop has
firstprivate, lastprivate or reduction clause. Handle
OMP_CLAUSE_REDUCTION_TASK diagnostics. Adjust tests for
ORT_COMBINED_TEAMS. Gimplify depend clauses with iterators. Handle
cancel and simd OMP_CLAUSE_IF_MODIFIERs. Handle
OMP_CLAUSE_NONTEMPORAL. Handle new defaultmap clause kinds. Handle
OMP_CLAUSE_{TASK,IN}_REDUCTION. Diagnose invalid conditional
lastprivate.
(gimplify_adjust_omp_clauses_1): Ignore GOVD_NONTEMPORAL. Handle
GOVD_MAP_ALLOC_ONLY and GOVD_MAP_FROM_ONLY.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_NONTEMPORAL. Handle
OMP_CLAUSE_{TASK,IN}_REDUCTION.
(gimplify_omp_task): Handle taskwait with depend clauses.
(gimplify_omp_for): Add shared clause on parallel for combined
parallel master taskloop{, simd} if taskloop has firstprivate,
lastprivate or reduction clause. Use ORT_TASKLOOP or
ORT_UNTIED_TASKLOOP instead of ORT_TASK or ORT_UNTIED_TASK. Adjust
tests for ORT_COMBINED_TEAMS. Handle C++ range for loops with
NULL TREE_PURPOSE in OMP_FOR_ORIG_DECLS. Firstprivatize
__for_end and __for_range temporaries on OMP_PARALLEL for
distribute parallel for{, simd}. Move OMP_CLAUSE_REDUCTION
and OMP_CLAUSE_IN_REDUCTION from taskloop to the task construct
sandwiched in between two taskloops.
(computable_teams_clause): Test ctx->defaultmap[GDMK_SCALAR]
instead of ctx->omp_firstprivatize_variable.
(gimplify_omp_workshare): Set ort to ORT_HOST_TEAMS or
ORT_COMBINED_HOST_TEAMS if not inside of target construct. If
host teams, use gimplify_and_return_first etc. for body like
for target or target data constructs, and at the end call
gimple_omp_teams_set_host on the GIMPLE_OMP_TEAMS object.
(gimplify_omp_atomic): Use OMP_ATOMIC_MEMORY_ORDER instead
of OMP_ATOMIC_SEQ_CST, pass it as new argument to
gimple_build_omp_atomic_load and gimple_build_omp_atomic_store, remove
gimple_omp_atomic_set_seq_cst calls.
(gimplify_expr) <case OMP_TASKGROUP>: Move handling into a separate
case, handle taskgroup clauses.
* lto-streamer-out.c (hash_tree): Handle
OMP_CLAUSE_{TASK,IN}_REDUCTION.
* Makefile.in (GTFILES): Add omp-general.h.
* omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_START, BUILT_IN_GOMP_LOOP_ORDERED_START,
BUILT_IN_GOMP_LOOP_DOACROSS_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_START, BUILT_IN_GOMP_LOOP_ULL_ORDERED_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME,
BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME,
BUILT_IN_GOMP_PARALLEL_REDUCTIONS, BUILT_IN_GOMP_SECTIONS2_START,
BUILT_IN_GOMP_TEAMS_REG, BUILT_IN_GOMP_TASKGROUP_REDUCTION_REGISTER,
BUILT_IN_GOMP_TASKGROUP_REDUCTION_UNREGISTER,
BUILT_IN_GOMP_TASK_REDUCTION_REMAP,
BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER): New builtins.
* omp-expand.c (workshare_safe_to_combine_p): Return false for
non-worksharing loops.
(omp_adjust_chunk_size): Don't adjust anything if chunk_size is zero.
(determine_parallel_type): Don't combine parallel with worksharing
which has _reductemp_ clause.
(expand_parallel_call): Emit the GOMP_*nonmonotonic_runtime* or
GOMP_*maybe_nonmonotonic_runtime* builtins instead of GOMP_*runtime*
if there is nonmonotonic modifier or if there is no modifier and no
ordered clause. For dynamic and guided schedule without monotonic
and nonmonotonic modifier, default to nonmonotonic.
(expand_omp_for): Likewise. Adjust expand_omp_for_generic caller, use
GOMP_loop{,_ull}{,_ordered,_doacross}_start builtins if there are
task reductions.
(expand_task_call): Add GOMP_TASK_FLAG_REDUCTION flag to flags if
there are any reduction clauses.
(expand_taskwait_call): New function.
(expand_teams_call): New function.
(expand_omp_taskreg): Allow GIMPLE_OMP_TEAMS and call
expand_teams_call for it. Formatting fix. Handle taskwait with
depend clauses.
(expand_omp_for_generic): Add SCHED_ARG argument. Handle expansion
of worksharing loops with task reductions.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
expansion of worksharing loops with task reductions.
(expand_omp_sections): Handle expansion of sections with task
reductions.
(expand_omp_synch): For host teams call expand_omp_taskreg.
(omp_memory_order_to_memmodel): New function.
(expand_omp_atomic_load, expand_omp_atomic_store,
expand_omp_atomic_fetch_op): Use it and gimple_omp_atomic_memory_order
instead of gimple_omp_atomic_seq_cst_p.
(build_omp_regions_1, omp_make_gimple_edges): Treat taskwait with
depend clauses as a standalone directive.
* omp-general.c (enum omp_requires): New variable.
(omp_extract_for_data): Initialize have_reductemp member. Allow
NE_EXPR even in OpenMP loops, transform them into LT_EXPR or
GT_EXPR loops depending on incr sign. Formatting fixes.
* omp-general.h (struct omp_for_data): Add have_reductemp member.
(enum omp_requires): New enum.
(omp_requires_mask): Declare.
* omp-grid.c (grid_eliminate_combined_simd_part): Formatting fix.
Fix comment typos.
* omp-low.c (struct omp_context): Add task_reductions and
task_reduction_map fields.
(is_host_teams_ctx): New function.
(is_taskreg_ctx): Return true also if is_host_teams_ctx.
(use_pointer_for_field): Use is_global_var instead of
TREE_STATIC || DECL_EXTERNAL, and apply only if not privatized
in outer contexts.
(build_outer_var_ref): Ignore taskgroup outer contexts.
(delete_omp_context): Release task_reductions and task_reduction_map.
(scan_sharing_clauses): Don't add any fields for reduction clause on
taskloop. Handle OMP_CLAUSE__REDUCTEMP_. Handle
OMP_CLAUSE_{IN,TASK}_REDUCTION and OMP_CLAUSE_REDUCTION with task
modifier. Don't ignore shared clauses in is_host_teams_ctx contexts.
Handle OMP_CLAUSE_NONTEMPORAL.
(add_taskreg_looptemp_clauses): Add OMP_CLAUSE__REDUCTEMP_ clause if
needed.
(scan_omp_parallel): Add _reductemp_ clause if there are any reduction
clauses with task modifier.
(scan_omp_task): Handle taskwait with depend clauses.
(finish_taskreg_scan): Move field corresponding to _reductemp_ clause
first. Move also OMP_CLAUSE__REDUCTEMP_ clause in front if present.
Handle GIMPLE_OMP_TEAMS like GIMPLE_OMP_PARALLEL.
(scan_omp_for): Fix comment formatting.
(scan_omp_teams): Handle host teams constructs.
(check_omp_nesting_restrictions): Allow teams with no outer
OpenMP context. Adjust diagnostics for teams strictly nested into
some explicit OpenMP construct other than target. Allow OpenMP atomics
inside of simd regions.
(scan_omp_1_stmt): Call scan_sharing_clauses for taskgroups.
(scan_omp_1_stmt) <case GIMPLE_OMP_TEAMS>: Temporarily bump
taskreg_nesting_level while scanning host teams construct.
(task_reduction_read): New function.
(lower_rec_input_clauses): Handle OMP_CLAUSE_REDUCTION on taskloop
construct. Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE__REDUCTEMP_
clauses. Handle OMP_CLAUSE_REDUCTION with task modifier. Remove
second argument create_tmp_var if it is NULL. Don't ignore shared
clauses in is_host_teams_ctx contexts. Handle
OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE on OMP_CLAUSE_FIRSTPRIVATE
clauses.
(lower_reduction_clauses): Ignore reduction clauses with task
modifier. Remove second argument create_tmp_var if it is NULL.
Initialize OMP_ATOMIC_MEMORY_ORDER to relaxed.
(lower_send_clauses): Ignore reduction clauses with task modifier.
Handle OMP_CLAUSE__REDUCTEMP_. Don't send anything for
OMP_CLAUSE_REDUCTION on taskloop. Handle OMP_CLAUSE_IN_REDUCTION.
(maybe_add_implicit_barrier_cancel): Add OMP_RETURN argument, don't
rely that it is the last stmt in body so far. Ignore outer taskgroup
contexts.
(omp_task_reductions_find_first, omp_task_reduction_iterate,
lower_omp_task_reductions): New functions.
(lower_omp_sections): Handle reduction clauses with taskgroup
modifiers. Adjust maybe_add_implicit_barrier_cancel caller.
(lower_omp_single): Adjust maybe_add_implicit_barrier_cancel caller.
(lower_omp_for): Likewise. Handle reduction clauses with taskgroup
modifiers.
(lower_omp_taskgroup): Handle taskgroup reductions.
(create_task_copyfn): Copy over OMP_CLAUSE__REDUCTEMP_ pointer.
Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE_REDUCTION clauses.
(lower_depend_clauses): If there are any
OMP_CLAUSE_DEPEND_DEPOBJ or OMP_CLAUSE_DEPEND_MUTEXINOUTSET
depend clauses, use a new array format. If OMP_CLAUSE_DEPEND_LAST is
seen, assume lowering is done already and return early. Set kind
on artificial depend clause to OMP_CLAUSE_DEPEND_LAST.
(lower_omp_taskreg): Handle reduction clauses with task modifier on
parallel construct. Handle reduction clause on taskloop construct.
Handle taskwait with depend clauses.
(lower_omp_1): Use lower_omp_taskreg instead of lower_omp_teams
for host teams constructs.
* tree.c (omp_clause_num_ops): Add in_reduction, task_reduction,
nontemporal and _reductemp_ clause entries.
(omp_clause_code_name): Likewise.
(walk_tree_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION,
OMP_CLAUSE_NONTEMPORAL and OMP_CLAUSE__REDUCTEMP_.
* tree-core.h (enum omp_clause_code): Add
OMP_CLAUSE_{{IN,TASK}_REDUCTION,NONTEMPORAL,_REDUCTEMP_}.
(enum omp_clause_defaultmap_kind, enum omp_memory_order): New.
(struct tree_base): Add omp_atomic_memory_order field into union.
Remove OMP_ATOMIC_SEQ_CST comment.
(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_MUTEXINOUTSET
and OMP_CLAUSE_DEPEND_DEPOBJ.
(struct tree_omp_clause): Add subcode.defaultmap_kind.
* tree.def (OMP_TASKGROUP): Add another operand, move next to other
OpenMP constructs with body and clauses operands.
* tree.h (OMP_BODY): Use OMP_MASTER instead of OMP_TASKGROUP.
(OMP_CLAUSES): Use OMP_TASKGROUP instead of OMP_SINGLE.
(OMP_TASKGROUP_CLAUSES): Define.
(OMP_CLAUSE_DECL): Use OMP_CLAUSE__REDUCTEMP_ instead of
OMP_CLAUSE__LOOPTEMP_.
(OMP_ATOMIC_SEQ_CST): Remove.
(OMP_ATOMIC_MEMORY_ORDER, OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE,
OMP_CLAUSE_LASTPRIVATE_CONDITIONAL): Define.
(OMP_CLAUSE_REDUCTION_CODE, OMP_CLAUSE_REDUCTION_INIT,
OMP_CLAUSE_REDUCTION_MERGE, OMP_CLAUSE_REDUCTION_PLACEHOLDER,
OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
OMP_CLAUSE_REDUCTION_OMP_ORIG_REF): Handle
OMP_CLAUSE_{,IN_,TASK_}REDUCTION.
(OMP_CLAUSE_REDUCTION_TASK, OMP_CLAUSE_REDUCTION_INSCAN,
OMP_CLAUSE_DEFAULTMAP_KIND, OMP_CLAUSE_DEFAULTMAP_CATEGORY,
OMP_CLAUSE_DEFAULTMAP_BEHAVIOR, OMP_CLAUSE_DEFAULTMAP_SET_KIND):
Define.
* tree-inline.c (remap_gimple_stmt): Remap taskgroup clauses.
* tree-nested.c (convert_nonlocal_omp_clauses): Handle
OMP_CLAUSE__REDUCTEMP_, OMP_CLAUSE_NONTEMPORAL.
(convert_local_omp_clauses): Likewise. Remove useless test.
* tree-parloops.c (create_call_for_reduction_1): Pass
OMP_MEMORY_ORDER_RELAXED as new argument to
dump_gimple_omp_atomic_load and dump_gimple_omp_atomic_store.
* tree-pretty-print.c (dump_omp_iterators): New function.
(dump_omp_clause): Handle OMP_CLAUSE__REDUCTEMP_,
OMP_CLAUSE_NONTEMPORAL, OMP_CLAUSE_{TASK,IN}_REDUCTION. Print
reduction modifiers. Handle OMP_CLAUSE_DEPEND_DEPOBJ and
OMP_CLAUSE_DEPEND_MUTEXINOUTSET. Print iterators in depend clauses.
Print __internal__ for OMP_CLAUSE_DEPEND_LAST. Handle cancel and
simd OMP_CLAUSE_IF_MODIFIERs. Handle new kinds of
OMP_CLAUSE_DEFAULTMAP. Print conditional: for
OMP_CLAUSE_LASTPRIVATE_CONDITIONAL.
(dump_omp_atomic_memory_order): New function.
(dump_generic_node): Use it. Print taskgroup clauses. Print
taskwait with depend clauses.
* tree-pretty-print.h (dump_omp_atomic_memory_order): Declare.
* tree-streamer-in.c (unpack_ts_omp_clause_value_fields):
Handle OMP_CLAUSE_{TASK,IN}_REDUCTION.
* tree-streamer-out.c (pack_ts_omp_clause_value_fields,
write_ts_omp_clause_tree_pointers): Likewise.
gcc/c-family/
* c-common.h (c_finish_omp_taskgroup): Add CLAUSES argument.
(c_finish_omp_atomic): Replace bool SEQ_CST argument with
enum omp_memory_order MEMORY_ORDER.
(c_finish_omp_flush): Add MO argument.
(c_omp_depend_t_p, c_finish_omp_depobj): Declare.
(c_finish_omp_for): Add FINAL_P argument.
* c-omp.c: Include memmodel.h.
(c_finish_omp_taskgroup): Add CLAUSES argument. Set
OMP_TASKGROUP_CLAUSES to it.
(c_finish_omp_atomic): Replace bool SEQ_CST argument with
enum omp_memory_order MEMORY_ORDER. Set OMP_ATOMIC_MEMORY_ORDER
instead of OMP_ATOMIC_SEQ_CST.
(c_omp_depend_t_p, c_finish_omp_depobj): New functions.
(c_finish_omp_flush): Add MO argument, if not MEMMODEL_LAST, emit
__atomic_thread_fence call with the given value.
(check_omp_for_incr_expr): Formatting fixes.
(c_finish_omp_for): Add FINAL_P argument. Allow NE_EXPR
even in OpenMP loops, diagnose if NE_EXPR and incr expression
is not constant expression 1 or -1. Transform NE_EXPR loops
with iterators pointers to VLA into LT_EXPR or GT_EXPR loops.
(c_omp_check_loop_iv_r): Look for orig decl of C++ range for
loops too.
(c_omp_split_clauses): Add support for combined
#pragma omp parallel master and
#pragma omp {,parallel }master taskloop{, simd} constructs.
Handle OMP_CLAUSE_IN_REDUCTION. Handle OMP_CLAUSE_REDUCTION_TASK.
Handle OMP_CLAUSE_NONTEMPORAL. Handle splitting OMP_CLAUSE_IF
also to OMP_SIMD. Copy OMP_CLAUSE_LASTPRIVATE_CONDITIONAL.
(c_omp_predetermined_sharing): Don't return
OMP_CLAUSE_DEFAULT_SHARED for const qualified decls.
* c-pragma.c (omp_pragmas): Add PRAGMA_OMP_DEPOBJ and
PRAGMA_OMP_REQUIRES.
* c-pragma.h (enum pragma_kind): Likewise.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_NONTEMPORAL
and PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.
gcc/c/
* c-parser.c: Include memmode.h.
(c_parser_omp_depobj, c_parser_omp_requires): New functions.
(c_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES.
(c_parser_omp_clause_name): Handle nontemporal, in_reduction and
task_reduction clauses.
(c_parser_omp_variable_list): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION.
For OMP_CLAUSE_DEPEND, parse clause operands as either an array
section, or lvalue assignment expression.
(c_parser_omp_clause_if): Handle cancel and simd modifiers.
(c_parser_omp_clause_lastprivate): Parse optional
conditional: modifier.
(c_parser_omp_clause_hint): Require constant integer expression rather
than just integer expression.
(c_parser_omp_clause_defaultmap): Parse new kinds of defaultmap
clause.
(c_parser_omp_clause_reduction): Add IS_OMP and KIND arguments.
Parse reduction modifiers. Pass KIND to c_parser_omp_variable_list.
(c_parser_omp_clause_nontemporal, c_parser_omp_iterators): New
functions.
(c_parser_omp_clause_depend): Parse iterator modifier and handle
iterators. Parse mutexinoutset and depobj kinds.
(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_reduction
callers.
(c_parser_omp_all_clauses): Likewise. Handle
PRAGMA_OMP_CLAUSE_NONTEMPORAL and
PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION.
(c_parser_omp_atomic): Parse hint and memory order clauses. Handle
default memory order from requires directive if any. Adjust
c_finish_omp_atomic caller.
(c_parser_omp_critical): Allow comma in between (name) and hint clause.
(c_parser_omp_flush): Parse flush with memory-order-clause.
(c_parser_omp_for_loop): Allow NE_EXPR even in
OpenMP loops, adjust c_finish_omp_for caller.
(OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses.
(c_parser_omp_master): Add p_name, mask and cclauses arguments.
Allow to be called while parsing combined parallel master.
Parse combined master taskloop{, simd}.
(c_parser_omp_parallel): Parse combined
parallel master{, taskloop{, simd}} constructs.
(OMP_TASK_CLAUSE_MASK): Add in_reduction clause.
(OMP_TASKGROUP_CLAUSE_MASK): Define.
(c_parser_omp_taskgroup): Add LOC argument. Parse taskgroup clauses.
(OMP_TASKWAIT_CLAUSE_MASK): Define.
(c_parser_omp_taskwait): Handle taskwait with depend clauses.
(c_parser_omp_teams): Force a BIND_EXPR with BLOCK
around teams body. Use SET_EXPR_LOCATION.
(c_parser_omp_target_data): Allow target data
with only use_device_ptr clauses.
(c_parser_omp_target): Use SET_EXPR_LOCATION. Set
OMP_REQUIRES_TARGET_USED bit in omp_requires_mask.
(c_parser_omp_requires): New function.
(c_finish_taskloop_clauses): New function.
(OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses.
(c_parser_omp_taskloop): Use c_finish_taskloop_clauses. Add forward
declaration. Disallow in_reduction clause when combined with parallel
master.
(c_parser_omp_construct): Adjust c_parser_omp_master and
c_parser_omp_taskgroup callers.
* c-typeck.c (c_finish_omp_cancel): Diagnose if clause with modifier
other than cancel.
(handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION
like OMP_CLAUSE_REDUCTION.
(handle_omp_array_sections): Likewise. Call save_expr on array
reductions before calling build_index_type. Handle depend clauses
with iterators.
(struct c_find_omp_var_s): New type.
(c_find_omp_var_r, c_omp_finish_iterators): New functions.
(c_finish_omp_clauses): Don't diagnose nonmonotonic clause
with static, runtime or auto schedule kinds. Call save_expr for whole
array reduction sizes. Diagnose reductions with zero sized elements
or variable length structures. Diagnose nogroup clause used with
reduction clause(s). Handle depend clause with
OMP_CLAUSE_DEPEND_DEPOBJ. Diagnose bit-fields. Require
omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and
some different type for other kinds. Use build_unary_op with
ADDR_EXPR and build_indirect_ref instead of c_mark_addressable.
Handle depend clauses with iterators. Remove no longer needed special
case that predetermined const qualified vars may be specified in
firstprivate clause. Complain if const qualified vars are mentioned
in data-sharing clauses other than firstprivate or shared. Use
error_at with OMP_CLAUSE_LOCATION (c) as first argument instead of
error. Formatting fix. Handle OMP_CLAUSE_NONTEMPORAL and
OMP_CLAUSE_{IN,TASK}_REDUCTION. Allow any lvalue as
OMP_CLAUSE_DEPEND operand (besides array section), adjust diagnostics.
gcc/cp/
* constexpr.c (potential_constant_expression_1): Handle OMP_DEPOBJ.
* cp-gimplify.c (cp_genericize_r): Handle
OMP_CLAUSE_{IN,TASK}_REDUCTION.
(cxx_omp_predetermined_sharing_1): Don't return
OMP_CLAUSE_DEFAULT_SHARED for const qualified decls with no mutable
member. Return OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for this pointer.
* cp-objcp-common.c (cp_common_init_ts): Handle OMP_DEPOBJ.
* cp-tree.def (OMP_DEPOBJ): New tree code.
* cp-tree.h (OMP_ATOMIC_DEPENDENT_P): Return true also for first
argument being OMP_CLAUSE.
(OMP_DEPOBJ_DEPOBJ, OMP_DEPOBJ_CLAUSES): Define.
(cp_convert_omp_range_for, cp_finish_omp_range_for): Declare.
(finish_omp_atomic): Add LOC, CLAUSES and MO arguments. Remove
SEQ_CST argument.
(finish_omp_for_block): Declare.
(finish_omp_flush): Add MO argument.
(finish_omp_depobj): Declare.
* cxx-pretty-print.c (cxx_pretty_printer::statement): Handle
OMP_DEPOBJ.
* dump.c (cp_dump_tree): Likewise.
* lex.c (cxx_init): Likewise.
* parser.c: Include memmodel.h.
(cp_parser_for): Pass false as new is_omp argument to
cp_parser_range_for.
(cp_parser_range_for): Add IS_OMP argument, return before finalizing
if it is true.
(cp_parser_omp_clause_name): Handle nontemporal, in_reduction and
task_reduction clauses.
(cp_parser_omp_var_list_no_open): Handle
OMP_CLAUSE_{IN,TASK}_REDUCTION. For OMP_CLAUSE_DEPEND, parse clause
operands as either an array section, or lvalue assignment expression.
(cp_parser_omp_clause_if): Handle cancel and simd modifiers.
(cp_parser_omp_clause_defaultmap): Parse new kinds of defaultmap
clause.
(cp_parser_omp_clause_reduction): Add IS_OMP and KIND arguments.
Parse reduction modifiers. Pass KIND to c_parser_omp_variable_list.
(cp_parser_omp_clause_lastprivate, cp_parser_omp_iterators): New
functions.
(cp_parser_omp_clause_depend): Parse iterator modifier and handle
iterators. Parse mutexinoutset and depobj kinds.
(cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_reduction
callers.
(cp_parser_omp_all_clauses): Likewise. Handle
PRAGMA_OMP_CLAUSE_NONTEMPORAL and
PRAGMA_OMP_CLAUSE_{IN,TASK}_REDUCTION. Call
cp_parser_omp_clause_lastprivate for OpenMP lastprivate clause.
(cp_parser_omp_atomic): Pass pragma_tok->location as
LOC to finish_omp_atomic. Parse hint and memory order clauses.
Handle default memory order from requires directive if any. Adjust
finish_omp_atomic caller.
(cp_parser_omp_critical): Allow comma in between (name) and hint
clause.
(cp_parser_omp_depobj): New function.
(cp_parser_omp_flush): Parse flush with memory-order-clause.
(cp_parser_omp_for_cond): Allow NE_EXPR even in OpenMP loops.
(cp_convert_omp_range_for, cp_finish_omp_range_for): New functions.
(cp_parser_omp_for_loop): Parse C++11 range for loops among omp
loops. Handle OMP_CLAUSE_IN_REDUCTION like OMP_CLAUSE_REDUCTION.
(OMP_SIMD_CLAUSE_MASK): Add if and nontemporal clauses.
(cp_parser_omp_simd, cp_parser_omp_for): Call keep_next_level before
begin_omp_structured_block and call finish_omp_for_block on
finish_omp_structured_block result.
(cp_parser_omp_master): Add p_name, mask and cclauses arguments.
Allow to be called while parsing combined parallel master.
Parse combined master taskloop{, simd}.
(cp_parser_omp_parallel): Parse combined
parallel master{, taskloop{, simd}} constructs.
(cp_parser_omp_single): Use SET_EXPR_LOCATION.
(OMP_TASK_CLAUSE_MASK): Add in_reduction clause.
(OMP_TASKWAIT_CLAUSE_MASK): Define.
(cp_parser_omp_taskwait): Handle taskwait with depend clauses.
(OMP_TASKGROUP_CLAUSE_MASK): Define.
(cp_parser_omp_taskgroup): Parse taskgroup clauses, adjust
c_finish_omp_taskgroup caller.
(cp_parser_omp_distribute): Call keep_next_level before
begin_omp_structured_block and call finish_omp_for_block on
finish_omp_structured_block result.
(cp_parser_omp_teams): Force a BIND_EXPR with BLOCK around teams
body.
(cp_parser_omp_target_data): Allow target data with only
use_device_ptr clauses.
(cp_parser_omp_target): Set OMP_REQUIRES_TARGET_USED bit in
omp_requires_mask.
(cp_parser_omp_requires): New function.
(OMP_TASKLOOP_CLAUSE_MASK): Add reduction and in_reduction clauses.
(cp_parser_omp_taskloop): Add forward declaration. Disallow
in_reduction clause when combined with parallel master. Call
keep_next_level before begin_omp_structured_block and call
finish_omp_for_block on finish_omp_structured_block result.
(cp_parser_omp_construct): Adjust cp_parser_omp_master caller.
(cp_parser_pragma): Handle PRAGMA_OMP_DEPOBJ and PRAGMA_OMP_REQUIRES.
* pt.c (tsubst_omp_clause_decl): Add iterators_cache argument.
Adjust recursive calls. Handle iterators.
(tsubst_omp_clauses): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION and
OMP_CLAUSE_NONTEMPORAL. Adjust tsubst_omp_clause_decl callers.
(tsubst_decomp_names):
(tsubst_omp_for_iterator): Change orig_declv into a reference.
Handle range for loops. Move orig_declv handling after declv/initv
handling.
(tsubst_expr): Force a BIND_EXPR with BLOCK around teams body.
Adjust finish_omp_atomic caller. Call keep_next_level before
begin_omp_structured_block. Call cp_finish_omp_range_for for range
for loops and use {begin,finish}_omp_structured_block instead of
{push,pop}_stmt_list if there are any range for loops. Call
finish_omp_for_block on finish_omp_structured_block result.
Handle OMP_DEPOBJ. Handle taskwait with depend clauses. For
OMP_ATOMIC call tsubst_omp_clauses on clauses if any, adjust
finish_omp_atomic caller. Use OMP_ATOMIC_MEMORY_ORDER rather
than OMP_ATOMIC_SEQ_CST. Handle clauses on OMP_TASKGROUP.
(dependent_omp_for_p): Always return true for range for loops if
processing_template_decl. Return true if class type iterator
does not have INTEGER_CST increment.
* semantics.c: Include memmodel.h.
(handle_omp_array_sections_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION
like OMP_CLAUSE_REDUCTION.
(handle_omp_array_sections): Likewise. Call save_expr on array
reductions before calling build_index_type. Handle depend clauses
with iterators.
(finish_omp_reduction_clause): Call save_expr for whole array
reduction sizes. Don't mark OMP_CLAUSE_DECL addressable if it has
reference type. Do mark decl_placeholder addressable if needed.
Use error_at with OMP_CLAUSE_LOCATION (c) as first argument instead
of error.
(cp_omp_finish_iterators): New function.
(finish_omp_clauses): Don't diagnose nonmonotonic clause with static,
runtime or auto schedule kinds. Diagnose nogroup clause used with
reduction clause(s). Handle depend clause with
OMP_CLAUSE_DEPEND_DEPOBJ. Diagnose bit-fields. Require
omp_depend_t type for OMP_CLAUSE_DEPEND_DEPOBJ kinds and
some different type for other kinds. Use cp_build_addr_expr
and cp_build_indirect_ref instead of cxx_mark_addressable.
Handle depend clauses with iterators. Only handle static data members
in the special case that const qualified vars may be specified in
firstprivate clause. Complain if const qualified vars without mutable
members are mentioned in data-sharing clauses other than firstprivate
or shared. Use error_at with OMP_CLAUSE_LOCATION (c) as first
argument instead of error. Diagnose more than one nontemporal clause
refering to the same variable. Use error_at rather than error for
priority and hint clause diagnostics. Fix pasto for hint clause.
Diagnose hint expression that doesn't fold into INTEGER_CST.
Diagnose if clause with modifier other than cancel. Handle
OMP_CLAUSE_{IN,TASK}_REDUCTION like OMP_CLAUSE_REDUCTION. Allow any
lvalue as OMP_CLAUSE_DEPEND operand (besides array section), adjust
diagnostics.
(handle_omp_for_class_iterator): Don't create a new TREE_LIST if one
has been created already for range for, just fill TREE_PURPOSE and
TREE_VALUE. Call cp_fully_fold on incr.
(finish_omp_for): Don't check cond/incr if cond is global_namespace.
Pass to c_omp_check_loop_iv_exprs orig_declv if non-NULL. Don't
use IS_EMPTY_STMT on NULL pre_body. Adjust c_finish_omp_for caller.
(finish_omp_for_block): New function.
(finish_omp_atomic): Add LOC argument, pass it through
to c_finish_omp_atomic and set it as location of OMP_ATOMIC* trees.
Remove SEQ_CST argument. Add CLAUSES and MO arguments. Adjust
c_finish_omp_atomic caller. Stick clauses if any into first argument
of wrapping OMP_ATOMIC.
(finish_omp_depobj): New function.
(finish_omp_flush): Add MO argument, if not
MEMMODEL_LAST, emit __atomic_thread_fence call with the given value.
(finish_omp_cancel): Diagnose if clause with modifier other than
cancel.
gcc/fortran/
* trans-openmp.c (gfc_trans_omp_clauses): Use
OMP_CLAUSE_DEFAULTMAP_SET_KIND.
(gfc_trans_omp_atomic): Set OMP_ATOMIC_MEMORY_ORDER
rather than OMP_ATOMIC_SEQ_CST.
(gfc_trans_omp_taskgroup): Build OMP_TASKGROUP using
make_node instead of build1_loc.
* types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR,
BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): Formatting fix.
gcc/testsuite/
* c-c++-common/gomp/atomic-17.c: New test.
* c-c++-common/gomp/atomic-18.c: New test.
* c-c++-common/gomp/atomic-19.c: New test.
* c-c++-common/gomp/atomic-20.c: New test.
* c-c++-common/gomp/atomic-21.c: New test.
* c-c++-common/gomp/atomic-22.c: New test.
* c-c++-common/gomp/clauses-1.c (r2): New variable.
(foo): Add ntm argument and test if and nontemporal clauses on
constructs with simd.
(bar): Put taskloop simd inside of taskgroup with task_reduction,
use in_reduction clause instead of reduction. Add another
taskloop simd without nogroup clause, but with reduction clause and
a new in_reduction. Add ntm and i3 arguments. Test if and
nontemporal clauses on constructs with simd. Change if clauses on
some constructs from specific to the particular constituents to one
without a modifier. Add new tests for combined host teams and for
new parallel master and {,parallel }master taskloop{, simd} combined
constructs.
(baz): New function with host teams tests.
* gcc.dg/gomp/combined-1.c: Moved to ...
* c-c++-common/gomp/combined-1.c: ... here. Adjust expected library
call.
* c-c++-common/gomp/combined-2.c: New test.
* c-c++-common/gomp/combined-3.c: New test.
* c-c++-common/gomp/critical-1.c: New test.
* c-c++-common/gomp/critical-2.c: New test.
* c-c++-common/gomp/default-1.c: New test.
* c-c++-common/gomp/defaultmap-1.c: New test.
* c-c++-common/gomp/defaultmap-2.c: New test.
* c-c++-common/gomp/defaultmap-3.c: New test.
* c-c++-common/gomp/depend-5.c: New test.
* c-c++-common/gomp/depend-6.c: New test.
* c-c++-common/gomp/depend-iterator-1.c: New test.
* c-c++-common/gomp/depend-iterator-2.c: New test.
* c-c++-common/gomp/depobj-1.c: New test.
* c-c++-common/gomp/flush-1.c: New test.
* c-c++-common/gomp/flush-2.c: New test.
* c-c++-common/gomp/for-1.c: New test.
* c-c++-common/gomp/for-2.c: New test.
* c-c++-common/gomp/for-3.c: New test.
* c-c++-common/gomp/for-4.c: New test.
* c-c++-common/gomp/for-5.c: New test.
* c-c++-common/gomp/for-6.c: New test.
* c-c++-common/gomp/for-7.c: New test.
* c-c++-common/gomp/if-1.c (foo): Add some further tests.
* c-c++-common/gomp/if-2.c (foo): Likewise. Expect slightly different
diagnostics wording in one case.
* c-c++-common/gomp/if-3.c: New test.
* c-c++-common/gomp/master-combined-1.c: New test.
* c-c++-common/gomp/master-combined-2.c: New test.
* c-c++-common/gomp/nontemporal-1.c: New test.
* c-c++-common/gomp/nontemporal-2.c: New test.
* c-c++-common/gomp/reduction-task-1.c: New test.
* c-c++-common/gomp/reduction-task-2.c: New test.
* c-c++-common/gomp/requires-1.c: New test.
* c-c++-common/gomp/requires-2.c: New test.
* c-c++-common/gomp/requires-3.c: New test.
* c-c++-common/gomp/requires-4.c: New test.
* c-c++-common/gomp/schedule-modifiers-1.c (bar): Don't expect
diagnostics for nonmonotonic modifier with static, runtime or auto
schedule kinds.
* c-c++-common/gomp/simd7.c: New test.
* c-c++-common/gomp/target-data-1.c: New test.
* c-c++-common/gomp/taskloop-reduction-1.c: New test.
* c-c++-common/gomp/taskwait-depend-1.c: New test.
* c-c++-common/gomp/teams-1.c: New test.
* c-c++-common/gomp/teams-2.c: New test.
* gcc.dg/gomp/appendix-a/a.24.1.c: Update from OpenMP examples. Add
shared(c) clause.
* gcc.dg/gomp/atomic-5.c (f1): Add another expected error.
* gcc.dg/gomp/clause-1.c: Adjust expected diagnostics for const
qualified vars without mutable member no longer being predeterined
shared.
* gcc.dg/gomp/sharing-1.c: Likewise.
* g++.dg/gomp/clause-3.C: Likewise.
* g++.dg/gomp/member-2.C: Likewise.
* g++.dg/gomp/predetermined-1.C: Likewise.
* g++.dg/gomp/private-1.C: Likewise.
* g++.dg/gomp/sharing-1.C: Likewise.
* g++.dg/gomp/sharing-2.C: Likewise. Add a few tests with aggregate
const static data member without mutable elements.
* gcc.dg/gomp/for-4.c: Expected nonmonotonic functions in the dumps.
* gcc.dg/gomp/for-5.c: Likewise.
* gcc.dg/gomp/for-6.c: Change expected library call.
* gcc.dg/gomp/pr39495-2.c (foo): Don't expect errors on !=.
* gcc.dg/gomp/reduction-2.c: New test.
* gcc.dg/gomp/simd-1.c: New test.
* gcc.dg/gomp/teams-1.c: Adjust expected diagnostic lines.
* g++.dg/gomp/atomic-18.C: New test.
* g++.dg/gomp/atomic-19.C: New test.
* g++.dg/gomp/atomic-5.C (f1): Adjust expected lines of read-only
variable messages. Add another expected error.
* g++.dg/gomp/critical-3.C: New test.
* g++.dg/gomp/depend-iterator-1.C: New test.
* g++.dg/gomp/depend-iterator-2.C: New test.
* g++.dg/gomp/depobj-1.C: New test.
* g++.dg/gomp/doacross-1.C: New test.
* g++.dg/gomp/for-21.C: New test.
* g++.dg/gomp/for-4.C: Expected nonmonotonic functions in the dumps.
* g++.dg/gomp/for-5.C: Likewise.
* g++.dg/gomp/for-6.C: Change expected library call.
* g++.dg/gomp/loop-4.C: New test.
* g++.dg/gomp/pr33372-1.C: Adjust location of the expected
diagnostics.
* g++.dg/gomp/pr33372-3.C: Likewise.
* g++.dg/gomp/pr39495-2.C (foo): Don't expect errors on !=.
* g++.dg/gomp/simd-2.C: New test.
* g++.dg/gomp/tpl-atomic-2.C: Adjust expected diagnostic lines.
include/
* gomp-constants.h (GOMP_TASK_FLAG_REDUCTION,
GOMP_DEPEND_IN, GOMP_DEPEND_OUT, GOMP_DEPEND_INOUT,
GOMP_DEPEND_MUTEXINOUTSET): Define.
libgomp/
* affinity.c (gomp_display_affinity_place): New function.
* affinity-fmt.c: New file.
* alloc.c (gomp_aligned_alloc, gomp_aligned_free): New functions.
* config/linux/affinity.c (gomp_display_affinity_place): New function.
* config/nvptx/icv-device.c (omp_get_num_teams, omp_get_team_num):
Move these functions to ...
* config/nvptx/teams.c: ... here. New file.
* config/nvptx/target.c (omp_pause_resource, omp_pause_resource_all):
New functions.
* config/nvptx/team.c (gomp_team_start, gomp_pause_host): New
functions.
* configure.ac: Check for aligned_alloc, posix_memalign, memalign
and _aligned_malloc.
(HAVE_UNAME, HAVE_GETHOSTNAME, HAVE_GETPID): Add new tests.
* configure.tgt: Add -DUSING_INITIAL_EXEC_TLS to XCFLAGS for Linux.
* env.c (gomp_display_affinity_var, gomp_affinity_format_var,
gomp_affinity_format_len): New variables.
(parse_schedule): Parse monotonic and nonmonotonic modifiers in
OMP_SCHEDULE variable. Set GFS_MONOTONIC for monotonic schedules.
(handle_omp_display_env): Display monotonic/nonmonotonic schedule
modifiers. Display (non-default) chunk sizes. Print
OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT.
(initialize_env): Don't call pthread_attr_setdetachstate. Handle
OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT env vars.
* fortran.c: Include stdio.h and string.h.
(omp_pause_resource, omp_pause_resource_all): Add ialias_redirect.
(omp_get_schedule_, omp_get_schedule_8_): Mask off GFS_MONOTONIC bit.
(omp_set_affinity_format_, omp_get_affinity_format_,
omp_display_affinity_, omp_capture_affinity_, omp_pause_resource_,
omp_pause_resource_all_): New functions.
* icv.c (omp_set_schedule): Mask off omp_sched_monotonic bit in
switch.
* icv-device.c (omp_get_num_teams, omp_get_team_num): Move these
functions to ...
* teams.c: ... here. New file.
* libgomp_g.h: Include gstdint.h.
(GOMP_loop_nonmonotonic_runtime_start,
GOMP_loop_maybe_nonmonotonic_runtime_start, GOMP_loop_start,
GOMP_loop_ordered_start, GOMP_loop_nonmonotonic_runtime_next,
GOMP_loop_maybe_nonmonotonic_runtime_next, GOMP_loop_doacross_start,
GOMP_parallel_loop_nonmonotonic_runtime,
GOMP_parallel_loop_maybe_nonmonotonic_runtime,
GOMP_loop_ull_nonmonotonic_runtime_start,
GOMP_loop_ull_maybe_nonmonotonic_runtime_start, GOMP_loop_ull_start,
GOMP_loop_ull_ordered_start, GOMP_loop_ull_nonmonotonic_runtime_next,
GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
GOMP_loop_ull_doacross_start, GOMP_parallel_reductions,
GOMP_taskwait_depend, GOMP_taskgroup_reduction_register,
GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
GOMP_teams_reg): Declare.
* libgomp.h (GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC): Define unless
gomp_aligned_alloc uses fallback implementation.
(gomp_aligned_alloc, gomp_aligned_free): Declare.
(enum gomp_schedule_type): Add GFS_MONOTONIC.
(struct gomp_doacross_work_share): Add extra field.
(struct gomp_work_share): Add task_reductions field.
(struct gomp_taskgroup): Add workshare and reductions fields.
(GOMP_NEEDS_THREAD_HANDLE): Define if needed.
(gomp_thread_handle): New typedef.
(gomp_display_affinity_place, gomp_set_affinity_format,
gomp_display_string, gomp_display_affinity,
gomp_display_affinity_thread): Declare.
(gomp_doacross_init, gomp_doacross_ull_init): Add size_t argument.
(gomp_parallel_reduction_register, gomp_workshare_taskgroup_start,
gomp_workshare_task_reduction_register): Declare.
(gomp_team_start): Add taskgroup argument.
(gomp_pause_host): Declare.
(gomp_init_work_share, gomp_work_share_start): Change bool argument
to size_t.
(gomp_thread_self, gomp_thread_to_pthread_t): New inline functions.
* libgomp.map (GOMP_5.0): Export GOMP_loop_start,
GOMP_loop_ordered_start, GOMP_loop_doacross_start,
GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
GOMP_loop_ull_doacross_start,
GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
GOMP_loop_maybe_nonmonotonic_runtime_next,
GOMP_loop_maybe_nonmonotonic_runtime_start,
GOMP_loop_nonmonotonic_runtime_next,
GOMP_loop_nonmonotonic_runtime_start,
GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
GOMP_loop_ull_nonmonotonic_runtime_next,
GOMP_loop_ull_nonmonotonic_runtime_start,
GOMP_parallel_loop_maybe_nonmonotonic_runtime,
GOMP_parallel_loop_nonmonotonic_runtime, GOMP_parallel_reductions,
GOMP_taskgroup_reduction_register,
GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
GOMP_teams_reg and GOMP_taskwait_depend.
(OMP_5.0): Export omp_pause_resource{,_all}{,_},
omp_{capture,display}_affinity{,_}, and
omp_[gs]et_affinity_format{,_}.
* loop.c: Include string.h.
(GOMP_loop_runtime_next): Add ialias.
(GOMP_taskgroup_reduction_register): Add ialias_redirect.
(gomp_loop_static_start, gomp_loop_dynamic_start,
gomp_loop_guided_start, gomp_loop_ordered_static_start,
gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
gomp_loop_doacross_guided_start): Adjust gomp_work_share_start
or gomp_doacross_init callers.
(gomp_adjust_sched, GOMP_loop_start, GOMP_loop_ordered_start,
GOMP_loop_doacross_start): New functions.
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
GOMP_loop_doacross_runtime_start, GOMP_parallel_loop_runtime_start):
Mask off GFS_MONOTONIC bit.
(GOMP_loop_maybe_nonmonotonic_runtime_next,
GOMP_loop_maybe_nonmonotonic_runtime_start,
GOMP_loop_nonmonotonic_runtime_next,
GOMP_loop_nonmonotonic_runtime_start,
GOMP_parallel_loop_maybe_nonmonotonic_runtime,
GOMP_parallel_loop_nonmonotonic_runtime): New aliases or wrapper
functions.
(gomp_parallel_loop_start): Pass NULL as taskgroup to
gomp_team_start.
* loop_ull.c: Include string.h.
(GOMP_loop_ull_runtime_next): Add ialias.
(GOMP_taskgroup_reduction_register): Add ialias_redirect.
(gomp_loop_ull_static_start, gomp_loop_ull_dynamic_start,
gomp_loop_ull_guided_start, gomp_loop_ull_ordered_static_start,
gomp_loop_ull_ordered_dynamic_start,
gomp_loop_ull_ordered_guided_start,
gomp_loop_ull_doacross_static_start,
gomp_loop_ull_doacross_dynamic_start,
gomp_loop_ull_doacross_guided_start): Adjust gomp_work_share_start
and gomp_doacross_ull_init callers.
(gomp_adjust_sched, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
GOMP_loop_ull_doacross_start): New functions.
(GOMP_loop_ull_runtime_start,
GOMP_loop_ull_ordered_runtime_start,
GOMP_loop_ull_doacross_runtime_start): Mask off GFS_MONOTONIC bit.
(GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
GOMP_loop_ull_nonmonotonic_runtime_next,
GOMP_loop_ull_nonmonotonic_runtime_start): Likewise.
* Makefile.am (libgomp_la_SOURCES): Add teams.c and affinity-fmt.c.
* omp.h.in (enum omp_sched_t): Add omp_sched_monotonic.
(omp_pause_resource_t, omp_depend_t): New typedefs.
(enum omp_lock_hint_t): Renamed to ...
(enum omp_sync_hint_t): ... this. Define omp_sync_hint_*
enumerators using numbers and omp_lock_hint_* as their aliases.
(omp_lock_hint_t): New typedef. Rename to ...
(omp_sync_hint_t): ... this.
(omp_init_lock_with_hint, omp_init_nest_lock_with_hint): Use
omp_sync_hint_t instead of omp_lock_hint_t.
(omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
Declare.
(omp_target_is_present, omp_target_disassociate_ptr):
Change first argument from void * to const void *.
(omp_target_memcpy, omp_target_memcpy_rect): Change second argument
from void * to const void *.
(omp_target_associate_ptr): Change first and second arguments from
void * to const void *.
* omp_lib.f90.in (omp_pause_resource_kind, omp_pause_soft,
omp_pause_hard): New parameters.
(omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
New interfaces.
* omp_lib.h.in (omp_pause_resource_kind, omp_pause_soft,
omp_pause_hard): New parameters.
(omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
New externals.
* ordered.c (gomp_doacross_init, gomp_doacross_ull_init): Add
EXTRA argument. If not needed to prepare array, if extra is 0,
clear ws->doacross, otherwise allocate just doacross structure and
extra payload. If array is needed, allocate also extra payload.
(GOMP_doacross_post, GOMP_doacross_wait, GOMP_doacross_ull_post,
GOMP_doacross_ull_wait): Handle doacross->array == NULL like
doacross == NULL.
* parallel.c (GOMP_parallel_start): Pass NULL as taskgroup to
gomp_team_start.
(GOMP_parallel): Likewise. Formatting fix.
(GOMP_parallel_reductions): New function.
(GOMP_cancellation_point): If taskgroup has workshare
flag set, check cancelled of prev taskgroup if any.
(GOMP_cancel): If taskgroup has workshare flag set, set cancelled
on prev taskgroup if any.
* sections.c: Include string.h.
(GOMP_taskgroup_reduction_register): Add ialias_redirect.
(GOMP_sections_start): Adjust gomp_work_share_start caller.
(GOMP_sections2_start): New function.
(GOMP_parallel_sections_start, GOMP_parallel_sections):
Pass NULL as taskgroup to gomp_team_start.
* single.c (GOMP_single_start, GOMP_single_copy_start): Adjust
gomp_work_share_start callers.
* target.c (GOMP_target_update_ext, GOMP_target_enter_exit_data):
If taskgroup has workshare flag set, check cancelled on prev
taskgroup if any. Guard all cancellation tests with
gomp_cancel_var test.
(omp_target_is_present, omp_target_disassociate_ptr):
Change ptr argument from void * to const void *.
(omp_target_memcpy): Change src argument from void * to const void *.
(omp_target_memcpy_rect): Likewise.
(omp_target_memcpy_rect_worker): Likewise. Use const char * casts
instead of char * where needed.
(omp_target_associate_ptr): Change host_ptr and device_ptr arguments
from void * to const void *.
(omp_pause_resource, omp_pause_resource_all): New functions.
* task.c (gomp_task_handle_depend): Handle new depend array format
in addition to the old. Handle mutexinoutset kinds the same as
inout for now, handle unspecified kinds.
(gomp_create_target_task): If taskgroup has workshare flag set, check
cancelled on prev taskgroup if any. Guard all cancellation tests with
gomp_cancel_var test. Handle new depend array format count in
addition to the old.
(GOMP_task): Likewise. Adjust function comment.
(gomp_task_run_pre): If taskgroup has workshare flag set, check
cancelled on prev taskgroup if any. Guard all cancellation tests with
gomp_cancel_var test.
(GOMP_taskwait_depend): New function.
(gomp_task_maybe_wait_for_dependencies): Handle new depend array
format in addition to the old. Handle mutexinoutset kinds the same as
inout for now, handle unspecified kinds. Fix a function comment typo.
(gomp_taskgroup_init): New function.
(GOMP_taskgroup_start): Use it.
(gomp_reduction_register, gomp_create_artificial_team,
GOMP_taskgroup_reduction_register,
GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
gomp_parallel_reduction_register,
gomp_workshare_task_reduction_register,
gomp_workshare_taskgroup_start,
GOMP_workshare_task_reduction_unregister): New functions.
* taskloop.c (GOMP_taskloop): If taskgroup has workshare flag set,
check cancelled on prev taskgroup if any. Guard all cancellation
tests with gomp_cancel_var test. Handle GOMP_TASK_FLAG_REDUCTION flag
by calling GOMP_taskgroup_reduction_register.
* team.c (gomp_thread_attr): Remove comment.
(struct gomp_thread_start_data): Add handle field.
(gomp_thread_start): Call pthread_detach.
(gomp_new_team): Adjust gomp_init_work_share caller.
(gomp_free_pool_helper): Call pthread_detach.
(gomp_team_start): Add taskgroup argument, initialize implicit
tasks' taskgroup field to that. Don't call
pthread_attr_setdetachstate. Handle OMP_DISPLAY_AFFINITY env var.
(gomp_team_end): Determine nesting by thr->ts.level != 0
rather than thr->ts.team != NULL.
(gomp_pause_pool_helper, gomp_pause_host): New functions.
* work.c (alloc_work_share): Use gomp_aligned_alloc instead of
gomp_malloc if GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC is defined.
(gomp_init_work_share): Change ORDERED argument from bool to size_t,
if more than 1 allocate also extra payload at the end of array. Never
keep ordered_team_ids NULL, set it to inline_ordered_team_ids instead.
(gomp_work_share_start): Change ORDERED argument from bool to size_t,
return true instead of ws.
* Makefile.in: Regenerated.
* configure: Regenerated.
* config.h.in: Regenerated.
* testsuite/libgomp.c/cancel-for-2.c (foo): Use cancel modifier
in some cases.
* testsuite/libgomp.c-c++-common/cancel-parallel-1.c: New test.
* testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: New test.
* testsuite/libgomp.c-c++-common/depend-iterator-1.c: New test.
* testsuite/libgomp.c-c++-common/depend-iterator-2.c: New test.
* testsuite/libgomp.c-c++-common/depend-mutexinout-1.c: New test.
* testsuite/libgomp.c-c++-common/depend-mutexinout-2.c: New test.
* testsuite/libgomp.c-c++-common/depobj-1.c: New test.
* testsuite/libgomp.c-c++-common/display-affinity-1.c: New test.
* testsuite/libgomp.c-c++-common/for-10.c: New test.
* testsuite/libgomp.c-c++-common/for-11.c: New test.
* testsuite/libgomp.c-c++-common/for-12.c: New test.
* testsuite/libgomp.c-c++-common/for-13.c: New test.
* testsuite/libgomp.c-c++-common/for-14.c: New test.
* testsuite/libgomp.c-c++-common/for-15.c: New test.
* testsuite/libgomp.c-c++-common/for-2.h: If CONDNE macro is defined,
define a different N(test), don't define N(f0) to N(f14), but instead
define N(f20) to N(f34) using != comparisons.
* testsuite/libgomp.c-c++-common/for-7.c: New test.
* testsuite/libgomp.c-c++-common/for-8.c: New test.
* testsuite/libgomp.c-c++-common/for-9.c: New test.
* testsuite/libgomp.c-c++-common/master-combined-1.c: New test.
* testsuite/libgomp.c-c++-common/pause-1.c: New test.
* testsuite/libgomp.c-c++-common/pause-2.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-10.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-11.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-12.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-13.c: New test.
* testsuite/libgomp.c-c++-common/pr66199-14.c: New test.
* testsuite/libgomp.c-c++-common/simd-1.c: New test.
* testsuite/libgomp.c-c++-common/taskloop-reduction-1.c: New test.
* testsuite/libgomp.c-c++-common/taskloop-reduction-2.c: New test.
* testsuite/libgomp.c-c++-common/taskloop-reduction-3.c: New test.
* testsuite/libgomp.c-c++-common/taskloop-reduction-4.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-11.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-12.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-1.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-2.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-3.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-4.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-5.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-6.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-7.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-8.c: New test.
* testsuite/libgomp.c-c++-common/task-reduction-9.c: New test.
* testsuite/libgomp.c-c++-common/taskwait-depend-1.c: New test.
* testsuite/libgomp.c++/depend-1.C: New test.
* testsuite/libgomp.c++/depend-iterator-1.C: New test.
* testsuite/libgomp.c++/depobj-1.C: New test.
* testsuite/libgomp.c++/for-16.C: New test.
* testsuite/libgomp.c++/for-21.C: New test.
* testsuite/libgomp.c++/for-22.C: New test.
* testsuite/libgomp.c++/for-23.C: New test.
* testsuite/libgomp.c++/for-24.C: New test.
* testsuite/libgomp.c++/for-25.C: New test.
* testsuite/libgomp.c++/for-26.C: New test.
* testsuite/libgomp.c++/taskloop-reduction-1.C: New test.
* testsuite/libgomp.c++/taskloop-reduction-2.C: New test.
* testsuite/libgomp.c++/taskloop-reduction-3.C: New test.
* testsuite/libgomp.c++/taskloop-reduction-4.C: New test.
* testsuite/libgomp.c++/task-reduction-10.C: New test.
* testsuite/libgomp.c++/task-reduction-11.C: New test.
* testsuite/libgomp.c++/task-reduction-12.C: New test.
* testsuite/libgomp.c++/task-reduction-13.C: New test.
* testsuite/libgomp.c++/task-reduction-14.C: New test.
* testsuite/libgomp.c++/task-reduction-15.C: New test.
* testsuite/libgomp.c++/task-reduction-16.C: New test.
* testsuite/libgomp.c++/task-reduction-17.C: New test.
* testsuite/libgomp.c++/task-reduction-18.C: New test.
* testsuite/libgomp.c++/task-reduction-19.C: New test.
* testsuite/libgomp.c/task-reduction-1.c: New test.
* testsuite/libgomp.c++/task-reduction-1.C: New test.
* testsuite/libgomp.c/task-reduction-2.c: New test.
* testsuite/libgomp.c++/task-reduction-2.C: New test.
* testsuite/libgomp.c++/task-reduction-3.C: New test.
* testsuite/libgomp.c++/task-reduction-4.C: New test.
* testsuite/libgomp.c++/task-reduction-5.C: New test.
* testsuite/libgomp.c++/task-reduction-6.C: New test.
* testsuite/libgomp.c++/task-reduction-7.C: New test.
* testsuite/libgomp.c++/task-reduction-8.C: New test.
* testsuite/libgomp.c++/task-reduction-9.C: New test.
* testsuite/libgomp.c/teams-1.c: New test.
* testsuite/libgomp.c/teams-2.c: New test.
* testsuite/libgomp.c/thread-limit-4.c: New test.
* testsuite/libgomp.c/thread-limit-5.c: New test.
* testsuite/libgomp.fortran/display-affinity-1.f90: New test.
From-SVN: r265930
2018-11-08 18:13:04 +01:00
|
|
|
|
* affinity.c (gomp_display_affinity_place): New function.
|
|
|
|
|
* affinity-fmt.c: New file.
|
|
|
|
|
* alloc.c (gomp_aligned_alloc, gomp_aligned_free): New functions.
|
|
|
|
|
* config/linux/affinity.c (gomp_display_affinity_place): New function.
|
|
|
|
|
* config/nvptx/icv-device.c (omp_get_num_teams, omp_get_team_num):
|
|
|
|
|
Move these functions to ...
|
|
|
|
|
* config/nvptx/teams.c: ... here. New file.
|
|
|
|
|
* config/nvptx/target.c (omp_pause_resource, omp_pause_resource_all):
|
|
|
|
|
New functions.
|
|
|
|
|
* config/nvptx/team.c (gomp_team_start, gomp_pause_host): New
|
|
|
|
|
functions.
|
|
|
|
|
* configure.ac: Check for aligned_alloc, posix_memalign, memalign
|
|
|
|
|
and _aligned_malloc.
|
|
|
|
|
(HAVE_UNAME, HAVE_GETHOSTNAME, HAVE_GETPID): Add new tests.
|
|
|
|
|
* configure.tgt: Add -DUSING_INITIAL_EXEC_TLS to XCFLAGS for Linux.
|
|
|
|
|
* env.c (gomp_display_affinity_var, gomp_affinity_format_var,
|
|
|
|
|
gomp_affinity_format_len): New variables.
|
|
|
|
|
(parse_schedule): Parse monotonic and nonmonotonic modifiers in
|
|
|
|
|
OMP_SCHEDULE variable. Set GFS_MONOTONIC for monotonic schedules.
|
|
|
|
|
(handle_omp_display_env): Display monotonic/nonmonotonic schedule
|
|
|
|
|
modifiers. Display (non-default) chunk sizes. Print
|
|
|
|
|
OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT.
|
|
|
|
|
(initialize_env): Don't call pthread_attr_setdetachstate. Handle
|
|
|
|
|
OMP_DISPLAY_AFFINITY and OMP_AFFINITY_FORMAT env vars.
|
|
|
|
|
* fortran.c: Include stdio.h and string.h.
|
|
|
|
|
(omp_pause_resource, omp_pause_resource_all): Add ialias_redirect.
|
|
|
|
|
(omp_get_schedule_, omp_get_schedule_8_): Mask off GFS_MONOTONIC bit.
|
|
|
|
|
(omp_set_affinity_format_, omp_get_affinity_format_,
|
|
|
|
|
omp_display_affinity_, omp_capture_affinity_, omp_pause_resource_,
|
|
|
|
|
omp_pause_resource_all_): New functions.
|
|
|
|
|
* icv.c (omp_set_schedule): Mask off omp_sched_monotonic bit in
|
|
|
|
|
switch.
|
|
|
|
|
* icv-device.c (omp_get_num_teams, omp_get_team_num): Move these
|
|
|
|
|
functions to ...
|
|
|
|
|
* teams.c: ... here. New file.
|
|
|
|
|
* libgomp_g.h: Include gstdint.h.
|
|
|
|
|
(GOMP_loop_nonmonotonic_runtime_start,
|
|
|
|
|
GOMP_loop_maybe_nonmonotonic_runtime_start, GOMP_loop_start,
|
|
|
|
|
GOMP_loop_ordered_start, GOMP_loop_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_maybe_nonmonotonic_runtime_next, GOMP_loop_doacross_start,
|
|
|
|
|
GOMP_parallel_loop_nonmonotonic_runtime,
|
|
|
|
|
GOMP_parallel_loop_maybe_nonmonotonic_runtime,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_runtime_start,
|
|
|
|
|
GOMP_loop_ull_maybe_nonmonotonic_runtime_start, GOMP_loop_ull_start,
|
|
|
|
|
GOMP_loop_ull_ordered_start, GOMP_loop_ull_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_ull_doacross_start, GOMP_parallel_reductions,
|
|
|
|
|
GOMP_taskwait_depend, GOMP_taskgroup_reduction_register,
|
|
|
|
|
GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
|
|
|
|
|
GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
|
|
|
|
|
GOMP_teams_reg): Declare.
|
|
|
|
|
* libgomp.h (GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC): Define unless
|
|
|
|
|
gomp_aligned_alloc uses fallback implementation.
|
|
|
|
|
(gomp_aligned_alloc, gomp_aligned_free): Declare.
|
|
|
|
|
(enum gomp_schedule_type): Add GFS_MONOTONIC.
|
|
|
|
|
(struct gomp_doacross_work_share): Add extra field.
|
|
|
|
|
(struct gomp_work_share): Add task_reductions field.
|
|
|
|
|
(struct gomp_taskgroup): Add workshare and reductions fields.
|
|
|
|
|
(GOMP_NEEDS_THREAD_HANDLE): Define if needed.
|
|
|
|
|
(gomp_thread_handle): New typedef.
|
|
|
|
|
(gomp_display_affinity_place, gomp_set_affinity_format,
|
|
|
|
|
gomp_display_string, gomp_display_affinity,
|
|
|
|
|
gomp_display_affinity_thread): Declare.
|
|
|
|
|
(gomp_doacross_init, gomp_doacross_ull_init): Add size_t argument.
|
|
|
|
|
(gomp_parallel_reduction_register, gomp_workshare_taskgroup_start,
|
|
|
|
|
gomp_workshare_task_reduction_register): Declare.
|
|
|
|
|
(gomp_team_start): Add taskgroup argument.
|
|
|
|
|
(gomp_pause_host): Declare.
|
|
|
|
|
(gomp_init_work_share, gomp_work_share_start): Change bool argument
|
|
|
|
|
to size_t.
|
|
|
|
|
(gomp_thread_self, gomp_thread_to_pthread_t): New inline functions.
|
|
|
|
|
* libgomp.map (GOMP_5.0): Export GOMP_loop_start,
|
|
|
|
|
GOMP_loop_ordered_start, GOMP_loop_doacross_start,
|
|
|
|
|
GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
|
|
|
|
|
GOMP_loop_ull_doacross_start,
|
|
|
|
|
GOMP_workshare_task_reduction_unregister, GOMP_sections2_start,
|
|
|
|
|
GOMP_loop_maybe_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_maybe_nonmonotonic_runtime_start,
|
|
|
|
|
GOMP_loop_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_nonmonotonic_runtime_start,
|
|
|
|
|
GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_runtime_start,
|
|
|
|
|
GOMP_parallel_loop_maybe_nonmonotonic_runtime,
|
|
|
|
|
GOMP_parallel_loop_nonmonotonic_runtime, GOMP_parallel_reductions,
|
|
|
|
|
GOMP_taskgroup_reduction_register,
|
|
|
|
|
GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
|
|
|
|
|
GOMP_teams_reg and GOMP_taskwait_depend.
|
|
|
|
|
(OMP_5.0): Export omp_pause_resource{,_all}{,_},
|
|
|
|
|
omp_{capture,display}_affinity{,_}, and
|
|
|
|
|
omp_[gs]et_affinity_format{,_}.
|
|
|
|
|
* loop.c: Include string.h.
|
|
|
|
|
(GOMP_loop_runtime_next): Add ialias.
|
|
|
|
|
(GOMP_taskgroup_reduction_register): Add ialias_redirect.
|
|
|
|
|
(gomp_loop_static_start, gomp_loop_dynamic_start,
|
|
|
|
|
gomp_loop_guided_start, gomp_loop_ordered_static_start,
|
|
|
|
|
gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
|
|
|
|
|
gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
|
|
|
|
|
gomp_loop_doacross_guided_start): Adjust gomp_work_share_start
|
|
|
|
|
or gomp_doacross_init callers.
|
|
|
|
|
(gomp_adjust_sched, GOMP_loop_start, GOMP_loop_ordered_start,
|
|
|
|
|
GOMP_loop_doacross_start): New functions.
|
|
|
|
|
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
|
|
|
|
|
GOMP_loop_doacross_runtime_start, GOMP_parallel_loop_runtime_start):
|
|
|
|
|
Mask off GFS_MONOTONIC bit.
|
|
|
|
|
(GOMP_loop_maybe_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_maybe_nonmonotonic_runtime_start,
|
|
|
|
|
GOMP_loop_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_nonmonotonic_runtime_start,
|
|
|
|
|
GOMP_parallel_loop_maybe_nonmonotonic_runtime,
|
|
|
|
|
GOMP_parallel_loop_nonmonotonic_runtime): New aliases or wrapper
|
|
|
|
|
functions.
|
|
|
|
|
(gomp_parallel_loop_start): Pass NULL as taskgroup to
|
|
|
|
|
gomp_team_start.
|
|
|
|
|
* loop_ull.c: Include string.h.
|
|
|
|
|
(GOMP_loop_ull_runtime_next): Add ialias.
|
|
|
|
|
(GOMP_taskgroup_reduction_register): Add ialias_redirect.
|
|
|
|
|
(gomp_loop_ull_static_start, gomp_loop_ull_dynamic_start,
|
|
|
|
|
gomp_loop_ull_guided_start, gomp_loop_ull_ordered_static_start,
|
|
|
|
|
gomp_loop_ull_ordered_dynamic_start,
|
|
|
|
|
gomp_loop_ull_ordered_guided_start,
|
|
|
|
|
gomp_loop_ull_doacross_static_start,
|
|
|
|
|
gomp_loop_ull_doacross_dynamic_start,
|
|
|
|
|
gomp_loop_ull_doacross_guided_start): Adjust gomp_work_share_start
|
|
|
|
|
and gomp_doacross_ull_init callers.
|
|
|
|
|
(gomp_adjust_sched, GOMP_loop_ull_start, GOMP_loop_ull_ordered_start,
|
|
|
|
|
GOMP_loop_ull_doacross_start): New functions.
|
|
|
|
|
(GOMP_loop_ull_runtime_start,
|
|
|
|
|
GOMP_loop_ull_ordered_runtime_start,
|
|
|
|
|
GOMP_loop_ull_doacross_runtime_start): Mask off GFS_MONOTONIC bit.
|
|
|
|
|
(GOMP_loop_ull_maybe_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_ull_maybe_nonmonotonic_runtime_start,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_runtime_next,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_runtime_start): Likewise.
|
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add teams.c and affinity-fmt.c.
|
|
|
|
|
* omp.h.in (enum omp_sched_t): Add omp_sched_monotonic.
|
|
|
|
|
(omp_pause_resource_t, omp_depend_t): New typedefs.
|
|
|
|
|
(enum omp_lock_hint_t): Renamed to ...
|
|
|
|
|
(enum omp_sync_hint_t): ... this. Define omp_sync_hint_*
|
|
|
|
|
enumerators using numbers and omp_lock_hint_* as their aliases.
|
|
|
|
|
(omp_lock_hint_t): New typedef. Rename to ...
|
|
|
|
|
(omp_sync_hint_t): ... this.
|
|
|
|
|
(omp_init_lock_with_hint, omp_init_nest_lock_with_hint): Use
|
|
|
|
|
omp_sync_hint_t instead of omp_lock_hint_t.
|
|
|
|
|
(omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
|
|
|
|
|
omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
|
|
|
|
|
Declare.
|
|
|
|
|
(omp_target_is_present, omp_target_disassociate_ptr):
|
|
|
|
|
Change first argument from void * to const void *.
|
|
|
|
|
(omp_target_memcpy, omp_target_memcpy_rect): Change second argument
|
|
|
|
|
from void * to const void *.
|
|
|
|
|
(omp_target_associate_ptr): Change first and second arguments from
|
|
|
|
|
void * to const void *.
|
|
|
|
|
* omp_lib.f90.in (omp_pause_resource_kind, omp_pause_soft,
|
|
|
|
|
omp_pause_hard): New parameters.
|
|
|
|
|
(omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
|
|
|
|
|
omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
|
|
|
|
|
New interfaces.
|
|
|
|
|
* omp_lib.h.in (omp_pause_resource_kind, omp_pause_soft,
|
|
|
|
|
omp_pause_hard): New parameters.
|
|
|
|
|
(omp_pause_resource, omp_pause_resource_all, omp_set_affinity_format,
|
|
|
|
|
omp_get_affinity_format, omp_display_affinity, omp_capture_affinity):
|
|
|
|
|
New externals.
|
|
|
|
|
* ordered.c (gomp_doacross_init, gomp_doacross_ull_init): Add
|
|
|
|
|
EXTRA argument. If not needed to prepare array, if extra is 0,
|
|
|
|
|
clear ws->doacross, otherwise allocate just doacross structure and
|
|
|
|
|
extra payload. If array is needed, allocate also extra payload.
|
|
|
|
|
(GOMP_doacross_post, GOMP_doacross_wait, GOMP_doacross_ull_post,
|
|
|
|
|
GOMP_doacross_ull_wait): Handle doacross->array == NULL like
|
|
|
|
|
doacross == NULL.
|
|
|
|
|
* parallel.c (GOMP_parallel_start): Pass NULL as taskgroup to
|
|
|
|
|
gomp_team_start.
|
|
|
|
|
(GOMP_parallel): Likewise. Formatting fix.
|
|
|
|
|
(GOMP_parallel_reductions): New function.
|
|
|
|
|
(GOMP_cancellation_point): If taskgroup has workshare
|
|
|
|
|
flag set, check cancelled of prev taskgroup if any.
|
|
|
|
|
(GOMP_cancel): If taskgroup has workshare flag set, set cancelled
|
|
|
|
|
on prev taskgroup if any.
|
|
|
|
|
* sections.c: Include string.h.
|
|
|
|
|
(GOMP_taskgroup_reduction_register): Add ialias_redirect.
|
|
|
|
|
(GOMP_sections_start): Adjust gomp_work_share_start caller.
|
|
|
|
|
(GOMP_sections2_start): New function.
|
|
|
|
|
(GOMP_parallel_sections_start, GOMP_parallel_sections):
|
|
|
|
|
Pass NULL as taskgroup to gomp_team_start.
|
|
|
|
|
* single.c (GOMP_single_start, GOMP_single_copy_start): Adjust
|
|
|
|
|
gomp_work_share_start callers.
|
|
|
|
|
* target.c (GOMP_target_update_ext, GOMP_target_enter_exit_data):
|
|
|
|
|
If taskgroup has workshare flag set, check cancelled on prev
|
|
|
|
|
taskgroup if any. Guard all cancellation tests with
|
|
|
|
|
gomp_cancel_var test.
|
|
|
|
|
(omp_target_is_present, omp_target_disassociate_ptr):
|
|
|
|
|
Change ptr argument from void * to const void *.
|
|
|
|
|
(omp_target_memcpy): Change src argument from void * to const void *.
|
|
|
|
|
(omp_target_memcpy_rect): Likewise.
|
|
|
|
|
(omp_target_memcpy_rect_worker): Likewise. Use const char * casts
|
|
|
|
|
instead of char * where needed.
|
|
|
|
|
(omp_target_associate_ptr): Change host_ptr and device_ptr arguments
|
|
|
|
|
from void * to const void *.
|
|
|
|
|
(omp_pause_resource, omp_pause_resource_all): New functions.
|
|
|
|
|
* task.c (gomp_task_handle_depend): Handle new depend array format
|
|
|
|
|
in addition to the old. Handle mutexinoutset kinds the same as
|
|
|
|
|
inout for now, handle unspecified kinds.
|
|
|
|
|
(gomp_create_target_task): If taskgroup has workshare flag set, check
|
|
|
|
|
cancelled on prev taskgroup if any. Guard all cancellation tests with
|
|
|
|
|
gomp_cancel_var test. Handle new depend array format count in
|
|
|
|
|
addition to the old.
|
|
|
|
|
(GOMP_task): Likewise. Adjust function comment.
|
|
|
|
|
(gomp_task_run_pre): If taskgroup has workshare flag set, check
|
|
|
|
|
cancelled on prev taskgroup if any. Guard all cancellation tests with
|
|
|
|
|
gomp_cancel_var test.
|
|
|
|
|
(GOMP_taskwait_depend): New function.
|
|
|
|
|
(gomp_task_maybe_wait_for_dependencies): Handle new depend array
|
|
|
|
|
format in addition to the old. Handle mutexinoutset kinds the same as
|
|
|
|
|
inout for now, handle unspecified kinds. Fix a function comment typo.
|
|
|
|
|
(gomp_taskgroup_init): New function.
|
|
|
|
|
(GOMP_taskgroup_start): Use it.
|
|
|
|
|
(gomp_reduction_register, gomp_create_artificial_team,
|
|
|
|
|
GOMP_taskgroup_reduction_register,
|
|
|
|
|
GOMP_taskgroup_reduction_unregister, GOMP_task_reduction_remap,
|
|
|
|
|
gomp_parallel_reduction_register,
|
|
|
|
|
gomp_workshare_task_reduction_register,
|
|
|
|
|
gomp_workshare_taskgroup_start,
|
|
|
|
|
GOMP_workshare_task_reduction_unregister): New functions.
|
|
|
|
|
* taskloop.c (GOMP_taskloop): If taskgroup has workshare flag set,
|
|
|
|
|
check cancelled on prev taskgroup if any. Guard all cancellation
|
|
|
|
|
tests with gomp_cancel_var test. Handle GOMP_TASK_FLAG_REDUCTION flag
|
|
|
|
|
by calling GOMP_taskgroup_reduction_register.
|
|
|
|
|
* team.c (gomp_thread_attr): Remove comment.
|
|
|
|
|
(struct gomp_thread_start_data): Add handle field.
|
|
|
|
|
(gomp_thread_start): Call pthread_detach.
|
|
|
|
|
(gomp_new_team): Adjust gomp_init_work_share caller.
|
|
|
|
|
(gomp_free_pool_helper): Call pthread_detach.
|
|
|
|
|
(gomp_team_start): Add taskgroup argument, initialize implicit
|
|
|
|
|
tasks' taskgroup field to that. Don't call
|
|
|
|
|
pthread_attr_setdetachstate. Handle OMP_DISPLAY_AFFINITY env var.
|
|
|
|
|
(gomp_team_end): Determine nesting by thr->ts.level != 0
|
|
|
|
|
rather than thr->ts.team != NULL.
|
|
|
|
|
(gomp_pause_pool_helper, gomp_pause_host): New functions.
|
|
|
|
|
* work.c (alloc_work_share): Use gomp_aligned_alloc instead of
|
|
|
|
|
gomp_malloc if GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC is defined.
|
|
|
|
|
(gomp_init_work_share): Change ORDERED argument from bool to size_t,
|
|
|
|
|
if more than 1 allocate also extra payload at the end of array. Never
|
|
|
|
|
keep ordered_team_ids NULL, set it to inline_ordered_team_ids instead.
|
|
|
|
|
(gomp_work_share_start): Change ORDERED argument from bool to size_t,
|
|
|
|
|
return true instead of ws.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
* config.h.in: Regenerated.
|
|
|
|
|
* testsuite/libgomp.c/cancel-for-2.c (foo): Use cancel modifier
|
|
|
|
|
in some cases.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/cancel-parallel-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/depend-iterator-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/depend-iterator-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/depend-mutexinout-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/depend-mutexinout-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/depobj-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/display-affinity-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-10.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-11.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-12.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-13.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-14.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-15.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-2.h: If CONDNE macro is defined,
|
|
|
|
|
define a different N(test), don't define N(f0) to N(f14), but instead
|
|
|
|
|
define N(f20) to N(f34) using != comparisons.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-8.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-9.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/master-combined-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pause-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pause-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-10.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-11.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-12.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-13.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-14.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/simd-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskloop-reduction-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskloop-reduction-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskloop-reduction-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskloop-reduction-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-11.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-12.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-8.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/task-reduction-9.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskwait-depend-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/depend-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/depend-iterator-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/depobj-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-16.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-21.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-22.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-23.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-24.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-25.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-26.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-reduction-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-reduction-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-reduction-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-reduction-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-10.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-12.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-13.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-14.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-15.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-16.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-17.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-18.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-19.C: New test.
|
|
|
|
|
* testsuite/libgomp.c/task-reduction-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c/task-reduction-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-reduction-9.C: New test.
|
|
|
|
|
* testsuite/libgomp.c/teams-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/teams-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/thread-limit-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/thread-limit-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/display-affinity-1.f90: New test.
|
|
|
|
|
|
2018-11-06 Chung-Lin Tang <cltang@codesourcery.com>
Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
libgomp/
* oacc-mem.c (memcpy_tofrom_device): New function, combined from
acc_memcpy_to/from_device functions, now with async parameter.
(acc_memcpy_to_device): Modify to use memcpy_tofrom_device.
(acc_memcpy_from_device): Likewise.
(acc_memcpy_to_device_async): New API function.
(acc_memcpy_from_device_async): Likewise.
(present_create_copy): Add async parameter and async setting/unsetting.
(acc_create): Adjust present_create_copy call.
(acc_copyin): Likewise.
(acc_present_or_create): Likewise.
(acc_present_or_copyin): Likewise.
(acc_create_async): New API function.
(acc_copyin_async): New API function.
(delete_copyout): Add async parameter and async setting/unsetting.
(acc_delete): Adjust delete_copyout call.
(acc_copyout): Likewise.
(acc_delete_async): New API function.
(acc_copyout_async): Likewise.
(update_dev_host): Add async parameter and async setting/unsetting.
(acc_update_device): Adjust update_dev_host call.
(acc_update_self): Likewise.
(acc_update_device_async): New API function.
(acc_update_self_async): Likewise.
* openacc.h (acc_copyin_async): Declare new API function.
(acc_create_async): Likewise.
(acc_copyout_async): Likewise.
(acc_delete_async): Likewise.
(acc_update_device_async): Likewise.
(acc_update_self_async): Likewise.
(acc_memcpy_to_device_async): Likewise.
(acc_memcpy_from_device_async): Likewise.
* openacc_lib.h (acc_copyin_async_32_h): New subroutine.
(acc_copyin_async_64_h): New subroutine.
(acc_copyin_async_array_h): New subroutine.
(acc_create_async_32_h): New subroutine.
(acc_create_async_64_h): New subroutine.
(acc_create_async_array_h): New subroutine.
(acc_copyout_async_32_h): New subroutine.
(acc_copyout_async_64_h): New subroutine.
(acc_copyout_async_array_h): New subroutine.
(acc_delete_async_32_h): New subroutine.
(acc_delete_async_64_h): New subroutine.
(acc_delete_async_array_h): New subroutine.
(acc_update_device_async_32_h): New subroutine.
(acc_update_device_async_64_h): New subroutine.
(acc_update_device_async_array_h): New subroutine.
(acc_update_self_async_32_h): New subroutine.
(acc_update_self_async_64_h): New subroutine.
(acc_update_self_async_array_h): New subroutine.
* openacc.f90 (acc_copyin_async_32_h): New subroutine.
(acc_copyin_async_64_h): New subroutine.
(acc_copyin_async_array_h): New subroutine.
(acc_create_async_32_h): New subroutine.
(acc_create_async_64_h): New subroutine.
(acc_create_async_array_h): New subroutine.
(acc_copyout_async_32_h): New subroutine.
(acc_copyout_async_64_h): New subroutine.
(acc_copyout_async_array_h): New subroutine.
(acc_delete_async_32_h): New subroutine.
(acc_delete_async_64_h): New subroutine.
(acc_delete_async_array_h): New subroutine.
(acc_update_device_async_32_h): New subroutine.
(acc_update_device_async_64_h): New subroutine.
(acc_update_device_async_array_h): New subroutine.
(acc_update_self_async_32_h): New subroutine.
(acc_update_self_async_64_h): New subroutine.
(acc_update_self_async_array_h): New subroutine.
* libgomp.map (OACC_2.5): Add acc_copyin_async*, acc_copyout_async*,
acc_copyout_finalize_async*, acc_create_async*, acc_delete_async*,
acc_delete_finalize_async*, acc_memcpy_from_device_async*,
acc_memcpy_to_device_async*, acc_update_device_async*, and
acc_update_self_async* entries.
* testsuite/libgomp.oacc-c-c++-common/lib-94.c: New test.
* testsuite/libgomp.oacc-c-c++-common/lib-95.c: New test.
* testsuite/libgomp.oacc-fortran/lib-16.f90: New test.
From-SVN: r265842
2018-11-06 14:09:52 +01:00
|
|
|
|
2018-11-06 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-mem.c (memcpy_tofrom_device): New function, combined from
|
|
|
|
|
acc_memcpy_to/from_device functions, now with async parameter.
|
|
|
|
|
(acc_memcpy_to_device): Modify to use memcpy_tofrom_device.
|
|
|
|
|
(acc_memcpy_from_device): Likewise.
|
|
|
|
|
(acc_memcpy_to_device_async): New API function.
|
|
|
|
|
(acc_memcpy_from_device_async): Likewise.
|
|
|
|
|
(present_create_copy): Add async parameter and async setting/unsetting.
|
|
|
|
|
(acc_create): Adjust present_create_copy call.
|
|
|
|
|
(acc_copyin): Likewise.
|
|
|
|
|
(acc_present_or_create): Likewise.
|
|
|
|
|
(acc_present_or_copyin): Likewise.
|
|
|
|
|
(acc_create_async): New API function.
|
|
|
|
|
(acc_copyin_async): New API function.
|
|
|
|
|
(delete_copyout): Add async parameter and async setting/unsetting.
|
|
|
|
|
(acc_delete): Adjust delete_copyout call.
|
|
|
|
|
(acc_copyout): Likewise.
|
|
|
|
|
(acc_delete_async): New API function.
|
|
|
|
|
(acc_copyout_async): Likewise.
|
|
|
|
|
(update_dev_host): Add async parameter and async setting/unsetting.
|
|
|
|
|
(acc_update_device): Adjust update_dev_host call.
|
|
|
|
|
(acc_update_self): Likewise.
|
|
|
|
|
(acc_update_device_async): New API function.
|
|
|
|
|
(acc_update_self_async): Likewise.
|
|
|
|
|
* openacc.h (acc_copyin_async): Declare new API function.
|
|
|
|
|
(acc_create_async): Likewise.
|
|
|
|
|
(acc_copyout_async): Likewise.
|
|
|
|
|
(acc_delete_async): Likewise.
|
|
|
|
|
(acc_update_device_async): Likewise.
|
|
|
|
|
(acc_update_self_async): Likewise.
|
|
|
|
|
(acc_memcpy_to_device_async): Likewise.
|
|
|
|
|
(acc_memcpy_from_device_async): Likewise.
|
|
|
|
|
* openacc_lib.h (acc_copyin_async_32_h): New subroutine.
|
|
|
|
|
(acc_copyin_async_64_h): New subroutine.
|
|
|
|
|
(acc_copyin_async_array_h): New subroutine.
|
|
|
|
|
(acc_create_async_32_h): New subroutine.
|
|
|
|
|
(acc_create_async_64_h): New subroutine.
|
|
|
|
|
(acc_create_async_array_h): New subroutine.
|
|
|
|
|
(acc_copyout_async_32_h): New subroutine.
|
|
|
|
|
(acc_copyout_async_64_h): New subroutine.
|
|
|
|
|
(acc_copyout_async_array_h): New subroutine.
|
|
|
|
|
(acc_delete_async_32_h): New subroutine.
|
|
|
|
|
(acc_delete_async_64_h): New subroutine.
|
|
|
|
|
(acc_delete_async_array_h): New subroutine.
|
|
|
|
|
(acc_update_device_async_32_h): New subroutine.
|
|
|
|
|
(acc_update_device_async_64_h): New subroutine.
|
|
|
|
|
(acc_update_device_async_array_h): New subroutine.
|
|
|
|
|
(acc_update_self_async_32_h): New subroutine.
|
|
|
|
|
(acc_update_self_async_64_h): New subroutine.
|
|
|
|
|
(acc_update_self_async_array_h): New subroutine.
|
|
|
|
|
* openacc.f90 (acc_copyin_async_32_h): New subroutine.
|
|
|
|
|
(acc_copyin_async_64_h): New subroutine.
|
|
|
|
|
(acc_copyin_async_array_h): New subroutine.
|
|
|
|
|
(acc_create_async_32_h): New subroutine.
|
|
|
|
|
(acc_create_async_64_h): New subroutine.
|
|
|
|
|
(acc_create_async_array_h): New subroutine.
|
|
|
|
|
(acc_copyout_async_32_h): New subroutine.
|
|
|
|
|
(acc_copyout_async_64_h): New subroutine.
|
|
|
|
|
(acc_copyout_async_array_h): New subroutine.
|
|
|
|
|
(acc_delete_async_32_h): New subroutine.
|
|
|
|
|
(acc_delete_async_64_h): New subroutine.
|
|
|
|
|
(acc_delete_async_array_h): New subroutine.
|
|
|
|
|
(acc_update_device_async_32_h): New subroutine.
|
|
|
|
|
(acc_update_device_async_64_h): New subroutine.
|
|
|
|
|
(acc_update_device_async_array_h): New subroutine.
|
|
|
|
|
(acc_update_self_async_32_h): New subroutine.
|
|
|
|
|
(acc_update_self_async_64_h): New subroutine.
|
|
|
|
|
(acc_update_self_async_array_h): New subroutine.
|
|
|
|
|
* libgomp.map (OACC_2.5): Add acc_copyin_async*, acc_copyout_async*,
|
|
|
|
|
acc_copyout_finalize_async*, acc_create_async*, acc_delete_async*,
|
|
|
|
|
acc_delete_finalize_async*, acc_memcpy_from_device_async*,
|
|
|
|
|
acc_memcpy_to_device_async*, acc_update_device_async*, and
|
|
|
|
|
acc_update_self_async* entries.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-94.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-95.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-16.f90: New test.
|
|
|
|
|
|
Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856).
This patch updates GCC to use autoconf 2.69 and automake 1.15.1.
(That's not the latest automake version, but it's the one used by
binutils-gdb, with which consistency is desirable, and in any case
seems a useful incremental update that should make a future update to
1.16.1 easier.)
The changes are generally similar to the binutils-gdb ones, and are
copied from there where shared files and directories are involved
(there are some further changes to such shared directories, however,
which I'd expect to apply to binutils-gdb once this patch is in GCC).
Largely, obsolete AC_PREREQ calls are removed, while many
AC_LANG_SOURCE calls are added to avoid warnings from aclocal and
autoconf. Multilib support is no longer included in core automake,
meaning that multilib.am needs copying from automake's contrib
directory into the GCC source tree. Autoconf 2.69 has Go support, so
local copies of that support are removed. I hope the D support will
soon be submitted to upstream autoconf so the local copy of that can
be removed in a future update. Changes to how automake generates
runtest calls mean quotes are removed from RUNTEST definitions in five
lib*/testsuite/Makefile.am files (libatomic, libgomp, libitm,
libphobos, libvtv; some others have RUNTEST definitions without
quotes, which are still OK); libgo and libphobos also get
-Wno-override added to AM_INIT_AUTOMAKE so those overrides of RUNTEST
do not generate automake warnings.
Note that the regeneration did not include regeneration of
fixincludes/config.h.in (attempting such regeneration resulted in all
the USED_FOR_TARGET conditionals disappearing; and I don't see
anything in the fixincludes/ directory that would result in such
conditionals being generated, unlike in the gcc/ directory). Also
note that libvtv/testsuite/other-tests/Makefile.in was not
regenerated; that directory is not listed as a subdirectory for which
Makefile.in gets regenerated by calling "automake" in libvtv/, so I'm
not sure how it's meant to be regenerated.
While I mostly fixed warnings should running aclocal / automake /
autoconf, there were various such warnings from automake in the
libgfortran, libgo, libgomp, liboffloadmic, libsanitizer, libphobos
directories that I did not fix, preferring to leave those to the
relevant subsystem maintainers. Specifically, most of those warnings
were of the following form (example from libgfortran):
Makefile.am:48: warning: source file 'caf/single.c' is in a subdirectory,
Makefile.am:48: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled. For now, the corresponding output
automake: object file(s) will be placed in the top-level directory. However,
automake: this behaviour will change in future Automake versions: they
will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
I think it's best for the relevant maintainers to add subdir-objects
and do any other associated Makefile.am changes needed. In some cases
the paths in the warnings involved ../; I don't know if that adds any
extra complications to the use of subdir-objects.
I've tested this with native, cross and Canadian cross builds. The
risk of any OS-specific issues should I hope be rather lower than if a
libtool upgrade were included (we *should* do such an upgrade at some
point, but it's more complicated - it involves identifying all our
local libtool changes to see if any aren't included in the upstream
version we update to, and reverting an upstream libtool patch that's
inappropriate for use in GCC); I think it would be better to get this
update into GCC so that people can test in different configurations
and we can fix any issues found, rather than to try to get more and
more testing done before it goes in.
top level:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* multilib.am: New file. From automake.
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* libtool.m4: Use AC_LANG_SOURCE.
* configure.ac: Remove AC_PREREQ, use AC_LANG_SOURCE.
* ar-lib: New file.
* test-driver: New file.
* configure: Re-generate.
config:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* math.m4, tls.m4: Use AC_LANG_SOURCE.
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* override.m4 (_GCC_AUTOCONF_VERSION): Bump from 2.64 to 2.69.
fixincludes:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* aclocal.m4, configure: Regenerate.
gcc:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE. Use single
line for second argument of AC_DEFINE_UNQUOTED.
* doc/install.texi (Tools/packages necessary for modifying GCC):
Update to autoconf 2.69 and automake 1.15.1.
* aclocal.m4, config.in, configure: Regenerate.
gnattools:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* configure: Regenerate.
gotools:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* config/go.m4: Remove file.
* Makefile.am (ACLOCAL_AMFLAGS): Do not use -I ./config.
* configure.ac: Remove AC_PREREQ. Do not include config/go.m4.
* Makefile.in, aclocal.m4, configure: Regenerate.
intl:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Add AC_USE_SYSTEM_EXTENSIONS, remove AC_PREREQ.
* configure: Re-generate.
* config.h.in: Re-generate.
* aclocal.m4: Re-generate.
libada:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* configure: Regenerate.
libatomic:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* acinclude.m4: Use AC_LANG_SOURCE.
* configure.ac: Remove AC_PREREQ.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
libbacktrace:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
libcc1:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure: Regenerate.
libcpp:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* aclocal.m4, config.in, configure: Regenerate.
libdecnumber:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Remove AC_PREREQ.
* configure: Re-generate.
* aclocal.m4.
libffi:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
(AUTOMAKE_OPTIONS): Add info-in-builddir.
(CLEANFILES): Remove doc/libffi.info.
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure, fficonfig.h.in,
include/Makefile.in, man/Makefile.in, testsuite/Makefile.in:
Regenerate.
libgcc:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* configure: Regenerate.
libgfortran:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
libgo [logically part of this change but omitted from the commit]:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* config/go.m4: Remove file.
* config/libtool.m4: Use AC_LANG_SOURCE.
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE. Use
-Wno-override in AM_INIT_AUTOMAKE call.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
libgomp:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am
(AUTOMAKE_OPTIONS): Add info-in-builddir.
(CLEANFILES): Remove libgomp.info.
* configure.ac: Remove AC_PREREQ.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
libhsail-rt:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure: Regenerate.
libiberty:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Remove AC_PREREQ.
* configure: Re-generate.
* config.in: Re-generate.
libitm:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
(AUTOMAKE_OPTIONS): Add info-in-builddir.
(CLEANFILES): Remove libitm.info.
* configure.ac: Remove AC_PREREQ.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
libobjc:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ.
* aclocal.m4, config.h.in, configure: Regenerate.
liboffloadmic:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ.
* plugin/Makefile.am: Include multilib.am.
* plugin/configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure, plugin/Makefile.in,
plugin/aclocal.m4, plugin/configure: Regenerate.
libphobos:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ. Use -Wno-override in
AM_INIT_AUTOMAKE call.
* m4/autoconf.m4: Add extra argument to AC_LANG_DEFINE call.
* m4/druntime/os.m4: Use AC_LANG_SOURCE.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, libdruntime/Makefile.in,
src/Makefile.in, testsuite/Makefile.in: Regenerate.
libquadmath:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
(AUTOMAKE_OPTIONS): Remove 1.8. Add info-in-builddir.
(all-local): Define outside conditional code.
(CLEANFILES): Remove libquadmath.info.
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
libsanitizer:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* Makefile.in, aclocal.m4, asan/Makefile.in, configure,
interception/Makefile.in, libbacktrace/Makefile.in,
lsan/Makefile.in, sanitizer_common/Makefile.in, tsan/Makefile.in,
ubsan/Makefile.in: Regenerate.
libssp:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
(AUTOMAKE_OPTIONS): Remove 1.9.5.
* configure.ac: Remove AC_PREREQ. Quote argument to
AC_RUN_IFELSE.
* Makefile.in, aclocal.m4, configure: Regenerate.
libstdc++-v3:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ.
* Makefile.in, aclocal.m4, configure, doc/Makefile.in,
include/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
python/Makefile.in, src/Makefile.in, src/c++11/Makefile.in,
src/c++17/Makefile.in, src/c++98/Makefile.in,
src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
libvtv:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
* configure.ac: Remove AC_PREREQ.
* testsuite/Makefile.am (RUNTEST): Remove quotes.
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
Regenerate.
lto-plugin:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
zlib:
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
* Makefile.am: Include multilib.am.
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Modernize AC_INIT call, remove AC_PREREQ.
* Makefile.am (AUTOMAKE_OPTIONS): Remove 1.8, cygnus, add foreign.
* Makefile.in: Re-generate.
* aclocal.m4: Re-generate.
* configure: Re-generate.
From-SVN: r265695
2018-10-31 18:03:16 +01:00
|
|
|
|
2018-10-31 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/82856
|
|
|
|
|
* Makefile.am: Include multilib.am
|
|
|
|
|
(AUTOMAKE_OPTIONS): Add info-in-builddir.
|
|
|
|
|
(CLEANFILES): Remove libgomp.info.
|
|
|
|
|
* configure.ac: Remove AC_PREREQ.
|
|
|
|
|
* testsuite/Makefile.am (RUNTEST): Remove quotes.
|
|
|
|
|
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
|
|
|
|
|
Regenerate.
|
|
|
|
|
|
2018-10-29 15:31:20 +01:00
|
|
|
|
2018-10-29 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c++/this.C: New.
|
|
|
|
|
|
2018-09-18 17:41:54 +02:00
|
|
|
|
2018-09-18 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (struct cuda_map): New.
|
|
|
|
|
(struct ptx_stream): Replace d, h, h_begin, h_end, h_next, h_prev,
|
|
|
|
|
h_tail with (cuda_map *) map.
|
|
|
|
|
(cuda_map_create): New function.
|
|
|
|
|
(cuda_map_destroy): New function.
|
|
|
|
|
(map_init): Update to use a linked list of cuda_map objects.
|
|
|
|
|
(map_fini): Likewise.
|
|
|
|
|
(map_pop): Likewise.
|
|
|
|
|
(map_push): Likewise. Return CUdeviceptr instead of void.
|
|
|
|
|
(init_streams_for_device): Remove stales references to ptx_stream
|
|
|
|
|
members.
|
|
|
|
|
(select_stream_for_async): Likewise.
|
|
|
|
|
(nvptx_exec): Update call to map_init.
|
|
|
|
|
|
2018-09-12 17:21:19 +02:00
|
|
|
|
2018-09-09 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/86336
|
|
|
|
|
* testsuite/libgomp.oacc-c++/non-scalar-data.C: Remove XFAIL.
|
|
|
|
|
|
2018-08-21 20:48:59 +02:00
|
|
|
|
2018-08-21 Nicolas Koenig <koenigni@gcc.gnu.org>
|
|
|
|
|
Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/25829
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_6.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_7.f90: New test.
|
|
|
|
|
|
2018-08-13 14:04:24 +02:00
|
|
|
|
2018-08-13 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR target/85590
|
|
|
|
|
* plugin/cuda/cuda.h (CUoccupancyB2DSize): New typedef.
|
|
|
|
|
(cuOccupancyMaxPotentialBlockSize): Declare.
|
|
|
|
|
* plugin/cuda-lib.def (cuOccupancyMaxPotentialBlockSize): New
|
|
|
|
|
CUDA_ONE_CALL_MAYBE_NULL.
|
|
|
|
|
* plugin/plugin-nvptx.c (CUDA_VERSION < 6050): Define
|
|
|
|
|
CUoccupancyB2DSize and declare
|
|
|
|
|
cuOccupancyMaxPotentialBlockSize.
|
|
|
|
|
(nvptx_exec): Use cuOccupancyMaxPotentialBlockSize to set the
|
|
|
|
|
default num_gangs and num_workers when the driver supports it.
|
|
|
|
|
|
2018-08-08 16:26:37 +02:00
|
|
|
|
2018-08-08 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/cuda-lib.def (cuLinkAddData_v2, cuLinkCreate_v2): Declare using
|
|
|
|
|
CUDA_ONE_CALL_MAYBE_NULL.
|
|
|
|
|
* plugin/plugin-nvptx.c (cuLinkAddData, cuLinkCreate): Undef and declare.
|
|
|
|
|
(cuLinkAddData_v2, cuLinkCreate_v2): Declare.
|
|
|
|
|
(link_ptx): Fall back to cuLinkAddData/cuLinkCreate if the _v2 versions
|
|
|
|
|
are not found.
|
|
|
|
|
|
2018-08-08 16:26:28 +02:00
|
|
|
|
2018-08-08 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/cuda-lib.def (cuGetErrorString): Use CUDA_ONE_CALL_MAYBE_NULL.
|
|
|
|
|
* plugin/plugin-nvptx.c (cuda_error): Handle if cuGetErrorString is not
|
|
|
|
|
present.
|
|
|
|
|
|
2018-08-08 16:26:19 +02:00
|
|
|
|
2018-08-08 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c
|
|
|
|
|
(CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR): Define.
|
|
|
|
|
(nvptx_open_device): Use
|
|
|
|
|
CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_MULTIPROCESSOR.
|
|
|
|
|
|
2018-08-08 16:26:10 +02:00
|
|
|
|
2018-08-08 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (cuda_error): Move declaration of cuGetErrorString ...
|
|
|
|
|
(cuGetErrorString): ... here. Guard with CUDA_VERSION < 6000.
|
|
|
|
|
|
[libgomp, nvptx] Handle CUDA_ONE_CALL_MAYBE_NULL
This patch adds handling of functions that may not be present in the cuda
driver.
Such a function can be declared using CUDA_ONE_CALL_MAYBE_NULL in cuda-lib.def,
it can be called with the usual convenience macros, but before calling its
presence needs to be tested using new macro CUDA_CALL_EXISTS.
When using the dlopen interface (PLUGIN_NVPTX_DYNAMIC == 1), we allow
non-present functions by allowing dlsym to return NULL. Otherwise
(PLUGIN_NVPTX_DYNAMIC == 0) we declare the non-present function to be weak.
Build and reg-tested libgomp on x86_64 with nvidia accelerator, with and without
--disable-cuda-driver, in combination with a trigger patch that adds a
non-existing function foo to cuda-lib.def:
...
CUDA_ONE_CALL_MAYBE_NULL (foo)
...
and declares it in plugin-nvptx.c:
...
CUresult foo (void);
...
and then uses it in nvptx_init after the init_cuda_lib call:
...
if (CUDA_CALL_EXISTS (foo))
CUDA_CALL (foo);
...
Also build and reg-tested on x86_64 with nvidia accelerator, with and without
--disable-cuda-driver, in combination with a trigger patch that replaces all
CUDA_ONE_CALLs in cuda-lib.def with CUDA_ONE_CALL_MAYBE_NULL, and guards two
CUDA_CALLs with CUDA_CALL_EXISTS, one for a regular fn, and one for a fn that is
a define in cuda/cuda.h.
2018-08-07 Tom de Vries <tdevries@suse.de>
* plugin/plugin-nvptx.c (DO_PRAGMA): Define.
(struct cuda_lib_s): Add def/undef of CUDA_ONE_CALL_MAYBE_NULL.
(init_cuda_lib): Add new param to CUDA_ONE_CALL_1. Add arg to
corresponding call in CUDA_ONE_CALL. Add def/undef of
CUDA_ONE_CALL_MAYBE_NULL.
(CUDA_CALL_EXISTS): Define.
From-SVN: r263346
2018-08-07 00:13:56 +02:00
|
|
|
|
2018-08-07 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (DO_PRAGMA): Define.
|
|
|
|
|
(struct cuda_lib_s): Add def/undef of CUDA_ONE_CALL_MAYBE_NULL.
|
|
|
|
|
(init_cuda_lib): Add new param to CUDA_ONE_CALL_1. Add arg to
|
|
|
|
|
corresponding call in CUDA_ONE_CALL. Add def/undef of
|
|
|
|
|
CUDA_ONE_CALL_MAYBE_NULL.
|
|
|
|
|
(CUDA_CALL_EXISTS): Define.
|
|
|
|
|
|
2018-08-07 00:13:46 +02:00
|
|
|
|
2018-08-07 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (struct cuda_lib_s, init_cuda_lib): Put
|
|
|
|
|
CUDA_ONE_CALL defines right before the cuda-lib.def include, and the
|
|
|
|
|
corresponding undefs right after.
|
|
|
|
|
|
2018-08-04 22:07:22 +02:00
|
|
|
|
2018-08-04 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/configfrag.ac: For --without-cuda-driver, set
|
|
|
|
|
CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB to no. Handle
|
|
|
|
|
CUDA_DRIVER_INCLUDE == no and CUDA_DRIVER_LIB == no.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
[nvptx] Ignore c++ exceptions
The nvptx port can't support exceptions using sjlj, because ptx does not
support sjlj. However, default_except_unwind_info still returns UI_SJLJ, even
even if we configure with --disable-sjlj-exceptions, because UI_SJLJ is the
fallback option.
The reason default_except_unwind_info doesn't return UI_DWARF2 is because
DWARF2_UNWIND_INFO is not defined in defaults.h, because
INCOMING_RETURN_ADDR_RTX is not defined, because there's no ptx equivalent.
Testcase libgomp.c++/for-15.C currently doesn't compile unless fno-exceptions
is added because:
- it tries to generate sjlj exception handling code, and
- it tries to generate exception tables using label-addressed .byte sequence.
Ptx doesn't support generating random data at a label, nor being able to
load/write data relative to a label.
This patch fixes the first problem by using UI_TARGET for nvptx.
The second problem is worked around by generating all .byte sequences commented
out. It would be better to have a narrower workaround, and define
TARGET_ASM_BYTE_OP to "error: .byte unsupported " or some such.
This patch does not enable exceptions for nvptx, it merely allows c++ programs
to run correctly if they do no use exception handling.
Build and reg-tested on x86_64 with nvptx accelerator.
2018-08-02 Tom de Vries <tdevries@suse.de>
PR target/86660
* common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): New
function. Return UI_TARGET unconditionally.
(TARGET_EXCEPT_UNWIND_INFO): Redefine to nvptx_except_unwind_info.
* config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Emit commented out '.byte'.
* testsuite/libgomp.oacc-c++/routine-1-auto.C: Remove -fno-exceptions.
* testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Same.
* testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
Same.
* testsuite/libgomp.oacc-c++/routine-1-template.C: Same.
* testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C: Same.
* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Same.
From-SVN: r263265
2018-08-02 17:59:01 +02:00
|
|
|
|
2018-08-02 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
PR target/86660
|
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-auto.C: Remove -fno-exceptions.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
|
|
|
|
|
Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-template.C: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Same.
|
|
|
|
|
|
2018-08-01 22:01:45 +02:00
|
|
|
|
2018-08-01 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/nvptx/oacc-parallel.c: Truncate.
|
|
|
|
|
|
2018-08-01 16:09:56 +02:00
|
|
|
|
2018-08-01 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (struct map): Removed.
|
2018-08-01 22:01:45 +02:00
|
|
|
|
(map_init, map_pop): Remove use of struct map.
|
|
|
|
|
(map_push): Likewise and change argument list.
|
2018-08-01 16:09:56 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/mapping-1.c: New
|
|
|
|
|
|
2018-08-01 15:20:22 +02:00
|
|
|
|
2018-08-01 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/cuda-lib.def: New file. Factor out of ...
|
|
|
|
|
* plugin/plugin-nvptx.c (CUDA_CALLS): ... here.
|
|
|
|
|
(struct cuda_lib_s, init_cuda_lib): Include cuda-lib.def instead of
|
|
|
|
|
using CUDA_CALLS.
|
|
|
|
|
|
2018-07-31 10:42:21 +02:00
|
|
|
|
2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
|
|
|
|
|
|
|
|
|
|
Revert 'AsyncI/O patch committed'.
|
|
|
|
|
2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org>
|
|
|
|
|
Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/25829
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_6.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_7.f90: New test.
|
|
|
|
|
|
2018-07-30 10:17:26 +02:00
|
|
|
|
2018-07-30 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (MIN, MAX): Redefine.
|
|
|
|
|
(nvptx_exec): Ensure worker and vector default dims don't exceed
|
|
|
|
|
targ_fn->max_threads_per_block.
|
|
|
|
|
|
2018-07-30 10:17:16 +02:00
|
|
|
|
2018-07-30 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (struct ptx_device): Add default_dims field.
|
|
|
|
|
(nvptx_open_device): Init default_dims for device.
|
|
|
|
|
(nvptx_exec): Use default_dims from device.
|
|
|
|
|
|
2018-07-26 18:12:02 +02:00
|
|
|
|
2018-07-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2018-07-26 18:12:58 +02:00
|
|
|
|
PR testsuite/86660
|
|
|
|
|
* testsuite/libgomp.c++/for-15.C (results): Include it in
|
|
|
|
|
omp declare target region.
|
|
|
|
|
(main): Use map (always, tofrom: results) instead of
|
|
|
|
|
map (tofrom: results).
|
|
|
|
|
|
2018-07-26 18:12:02 +02:00
|
|
|
|
PR middle-end/86660
|
|
|
|
|
* testsuite/libgomp.c/pr86660.c: New test.
|
|
|
|
|
|
2018-07-26 13:42:29 +02:00
|
|
|
|
2018-07-26 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Error if the hardware doesn't have
|
|
|
|
|
sufficient resources to launch a kernel, and give a hint on how to fix
|
|
|
|
|
it.
|
|
|
|
|
|
2018-07-26 13:42:19 +02:00
|
|
|
|
2018-07-26 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (struct ptx_device): Add warp_size,
|
|
|
|
|
max_threads_per_block and max_threads_per_multiprocessor fields.
|
|
|
|
|
(nvptx_open_device): Initialize new fields.
|
|
|
|
|
(nvptx_exec): Use num_sms, and new fields.
|
|
|
|
|
|
2018-07-26 09:52:45 +02:00
|
|
|
|
2018-07-26 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-12.f90: Move acc_async_test calls
|
|
|
|
|
to correct locations. Remove xfail.
|
|
|
|
|
|
2018-07-26 09:52:35 +02:00
|
|
|
|
2018-07-26 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-13.f90: Replace acc_wait_all with
|
|
|
|
|
acc_wait. Move acc_async_test calls to correct locations. Remove
|
|
|
|
|
xfail.
|
|
|
|
|
|
2018-07-25 20:48:39 +02:00
|
|
|
|
2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org>
|
|
|
|
|
Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/25829
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_6.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/async_io_7.f90: New test.
|
|
|
|
|
|
2018-07-17 10:06:25 +02:00
|
|
|
|
2018-07-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2018-07-17 12:54:52 +02:00
|
|
|
|
PR middle-end/86542
|
|
|
|
|
* testsuite/libgomp.c++/pr86542.C: New test.
|
|
|
|
|
|
2018-07-17 10:06:25 +02:00
|
|
|
|
PR middle-end/86539
|
|
|
|
|
* testsuite/libgomp.c++/pr86539.C: New test.
|
|
|
|
|
|
2018-07-11 15:13:31 +02:00
|
|
|
|
2018-07-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/86443
|
|
|
|
|
* testsuite/libgomp.c++/for-15.C (a): Remove unused variable.
|
|
|
|
|
(results): Make sure the variable is not inside declare target region.
|
|
|
|
|
(qux): Remove unused function.
|
|
|
|
|
|
re PR c++/86443 (ICEs on #pragma omp distribute parallel for with class iterators)
PR c++/86443
* gimplify.c (find_combined_omp_for): Add DATA argument, in addition
to finding the inner OMP_FOR/OMP_SIMD stmt find non-trivial wrappers,
BLOCKs with BLOCK_VARs, OMP_PARALLEL in between, OMP_FOR in between.
(gimplify_omp_for): For composite loops, move outer
OMP_{DISTRIBUTE,TASKLOOP,FOR,PARALLEL} right around innermost
OMP_FOR/OMP_SIMD if there are any non-trivial wrappers. For class
iterators add any needed clauses. Allow OMP_FOR_ORIG_DECLS to contain
TREE_LIST for both the original class iterator and the "last" helper
var. Gimplify OMP_FOR_PRE_BODY before the outermost composite
loop, remember has_decl_expr from outer composite loops for the
innermost OMP_SIMD in TREE_PRIVATE bit on OMP_FOR_INIT.
gcc/c-family/
* c-omp.c (c_omp_check_loop_iv_r, c_omp_check_loop_iv): Allow declv
to contain TREE_LIST for both the original class iterator and the
"last" helper var.
gcc/cp/
* semantics.c (handle_omp_for_class_iterator): Remove lastp argument,
instead of setting *lastp turn orig_declv elt into a TREE_LIST.
(finish_omp_for): Adjust handle_omp_for_class_iterator caller.
* pt.c (tsubst_omp_for_iterator): Allow OMP_FOR_ORIG_DECLS to contain
TREE_LIST for both the original class iterator and the "last" helper
var.
libgomp/
* testsuite/libgomp.c++/for-15.C: New test.
From-SVN: r262534
2018-07-10 09:12:37 +02:00
|
|
|
|
2018-07-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/86443
|
|
|
|
|
* testsuite/libgomp.c++/for-15.C: New test.
|
|
|
|
|
|
2018-06-26 12:40:50 +02:00
|
|
|
|
2018-06-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/86291
|
|
|
|
|
* testsuite/libgomp.c++/pr86291.C: New test.
|
|
|
|
|
|
2018-06-24 22:38:14 +02:00
|
|
|
|
2018-06-24 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi (Top): Move www.openmp.org to https.
|
|
|
|
|
(Enabling OpenMP): Ditto.
|
|
|
|
|
(omp_get_active_level): Ditto.
|
|
|
|
|
(omp_get_ancestor_thread_num): Ditto.
|
|
|
|
|
(omp_get_cancellation): Ditto.
|
|
|
|
|
(omp_get_default_device): Ditto.
|
|
|
|
|
(omp_get_dynamic): Ditto.
|
|
|
|
|
(omp_get_level): Ditto.
|
|
|
|
|
(omp_get_max_active_levels): Ditto.
|
|
|
|
|
(omp_get_max_task_priority): Ditto.
|
|
|
|
|
(omp_get_max_threads): Ditto.
|
|
|
|
|
(omp_get_nested): Ditto.
|
|
|
|
|
(omp_get_num_devices): Ditto.
|
|
|
|
|
(omp_get_num_procs): Ditto.
|
|
|
|
|
(omp_get_num_teams): Ditto.
|
|
|
|
|
(omp_get_num_threads): Ditto.
|
|
|
|
|
(omp_get_proc_bind): Ditto.
|
|
|
|
|
(omp_get_schedule): Ditto.
|
|
|
|
|
(omp_get_team_num): Ditto.
|
|
|
|
|
(omp_get_team_size): Ditto.
|
|
|
|
|
(omp_get_thread_limit): Ditto.
|
|
|
|
|
(omp_get_thread_num): Ditto.
|
|
|
|
|
(omp_in_parallel): Ditto.
|
|
|
|
|
(omp_in_final): Ditto.
|
|
|
|
|
(omp_is_initial_device): Ditto.
|
|
|
|
|
(omp_set_default_device): Ditto.
|
|
|
|
|
(omp_set_dynamic): Ditto.
|
|
|
|
|
(omp_set_max_active_levels): Ditto.
|
|
|
|
|
(omp_set_nested): Ditto.
|
|
|
|
|
(omp_set_num_threads): Ditto.
|
|
|
|
|
(omp_set_schedule): Ditto.
|
|
|
|
|
(omp_init_lock): Ditto.
|
|
|
|
|
(omp_set_lock): Ditto.
|
|
|
|
|
(omp_test_lock): Ditto.
|
|
|
|
|
(omp_unset_lock): Ditto.
|
|
|
|
|
(omp_destroy_lock): Ditto.
|
|
|
|
|
(omp_init_nest_lock): Ditto.
|
|
|
|
|
(omp_set_nest_lock): Ditto.
|
|
|
|
|
(omp_test_nest_lock): Ditto.
|
|
|
|
|
(omp_unset_nest_lock): Ditto.
|
|
|
|
|
(omp_destroy_nest_lock): Ditto.
|
|
|
|
|
(omp_get_wtick): Ditto.
|
|
|
|
|
(omp_get_wtime): Ditto.
|
|
|
|
|
(OMP_CANCELLATION): Ditto.
|
|
|
|
|
(OMP_DISPLAY_ENV): Ditto.
|
|
|
|
|
(OMP_DEFAULT_DEVICE): Ditto.
|
|
|
|
|
(OMP_DYNAMIC): Ditto.
|
|
|
|
|
(OMP_MAX_ACTIVE_LEVELS): Ditto.
|
|
|
|
|
(OMP_MAX_TASK_PRIORITY): Ditto.
|
|
|
|
|
(OMP_NESTED): Ditto.
|
|
|
|
|
(OMP_NUM_THREADS): Ditto.
|
|
|
|
|
(OMP_PROC_BIND): Ditto.
|
|
|
|
|
(OMP_PLACES): Ditto.
|
|
|
|
|
(OMP_STACKSIZE): Ditto.
|
|
|
|
|
(OMP_SCHEDULE): Ditto.
|
|
|
|
|
(OMP_THREAD_LIMIT): Ditto.
|
|
|
|
|
(OMP_WAIT_POLICY): Ditto.
|
|
|
|
|
|
2018-06-22 12:04:14 +02:00
|
|
|
|
2018-06-22 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
James Norris <jnorris@codesourcery.com>
|
|
|
|
|
Julian Brown <julian@codesourcery.com>
|
|
|
|
|
Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Don't force "-O2".
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/non-scalar-data.C: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/enter-data.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-2.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-3.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-4.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-5.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-2.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-3.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-4.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-5.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-6.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-2.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-2.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-3.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-4.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-5.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-6.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-7.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-reduction-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.h: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-loop-2.h: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/cublas-fixed.h: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/dummy-array.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/host_data-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/host_data-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/host_data-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-collapse-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-collapse-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-independent.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-map-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-1.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-2.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-1.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-2.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-3.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-4.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-5.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-6.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-7.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-13.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-14.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-15.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/parallel-loop-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reference-reductions.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/vector-routine.f90: Likewise.
|
|
|
|
|
|
Update OpenACC data clause semantics to the 2.5 behavior
gcc/c-family/
* c-pragma.h (enum pragma_omp_clause): Add
PRAGMA_OACC_CLAUSE_{FINALIZE,IF_PRESENT}. Remove
PRAGMA_OACC_CLAUSE_PRESENT_OR_{COPY,COPYIN,COPYOUT,CREATE}.
gcc/c/
* c-parser.c (c_parser_omp_clause_name): Add support for finalize
and if_present. Make present_or_{copy,copyin,copyout,create} aliases
to their non-present_or_* counterparts. Make 'self' an alias to
PRAGMA_OACC_CLAUSE_HOST.
(c_parser_oacc_data_clause): Update GOMP mappings for
PRAGMA_OACC_CLAUSE_{COPY,COPYIN,COPYOUT,CREATE,DELETE}. Remove
PRAGMA_OACC_CLAUSE_{SELF,PRESENT_OR_*}.
(c_parser_oacc_all_clauses): Handle finalize and if_present clauses.
Remove support for present_or_* clauses.
(OACC_KERNELS_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
(OACC_PARALLEL_CLAUSE_MASK): Likewise.
(OACC_DECLARE_CLAUSE_MASK): Likewise.
(OACC_DATA_CLAUSE_MASK): Likewise.
(OACC_ENTER_DATA_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
(OACC_EXIT_DATA_CLAUSE_MASK): Add FINALIZE clause.
(OACC_UPDATE_CLAUSE_MASK): Remove SELF, add IF_PRESENT.
(c_parser_oacc_declare): Remove PRESENT_OR_* clauses.
* c-typeck.c (c_finish_omp_clauses): Handle IF_PRESENT and FINALIZE.
gcc/cp/
* parser.c (cp_parser_omp_clause_name): Add support for finalize
and if_present. Make present_or_{copy,copyin,copyout,create} aliases
to their non-present_or_* counterparts. Make 'self' an alias to
PRAGMA_OACC_CLAUSE_HOST.
(cp_parser_oacc_data_clause): Update GOMP mappings for
PRAGMA_OACC_CLAUSE_{COPY,COPYIN,COPYOUT,CREATE,DELETE}. Remove
PRAGMA_OACC_CLAUSE_{SELF,PRESENT_OR_*}.
(cp_parser_oacc_all_clauses): Handle finalize and if_present clauses.
Remove support for present_or_* clauses.
(OACC_KERNELS_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
(OACC_PARALLEL_CLAUSE_MASK): Likewise.
(OACC_DECLARE_CLAUSE_MASK): Likewise.
(OACC_DATA_CLAUSE_MASK): Likewise.
(OACC_ENTER_DATA_CLAUSE_MASK): Remove PRESENT_OR_* clauses.
(OACC_EXIT_DATA_CLAUSE_MASK): Add FINALIZE clause.
(OACC_UPDATE_CLAUSE_MASK): Remove SELF, add IF_PRESENT.
(cp_parser_oacc_declare): Remove PRESENT_OR_* clauses.
* pt.c (tsubst_omp_clauses): Handle IF_PRESENT and FINALIZE.
* semantics.c (finish_omp_clauses): Handle IF_PRESENT and FINALIZE.
gcc/fortran/
* gfortran.h (gfc_omp_clauses): Add unsigned if_present, finalize
bitfields.
* openmp.c (enum omp_mask2): Remove OMP_CLAUSE_PRESENT_OR_*. Add
OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
(gfc_match_omp_clauses): Update handling of copy, copyin, copyout,
create, deviceptr, present_of_*. Add support for finalize and
if_present.
(OACC_PARALLEL_CLAUSES): Remove PRESENT_OR_* clauses.
(OACC_KERNELS_CLAUSES): Likewise.
(OACC_DATA_CLAUSES): Likewise.
(OACC_DECLARE_CLAUSES): Likewise.
(OACC_UPDATE_CLAUSES): Add IF_PRESENT clause.
(OACC_ENTER_DATA_CLAUSES): Remove PRESENT_OR_* clauses.
(OACC_EXIT_DATA_CLAUSES): Add FINALIZE clause.
(gfc_match_oacc_declare): Update to OpenACC 2.5 semantics.
* trans-openmp.c (gfc_trans_omp_clauses): Add support for IF_PRESENT
and FINALIZE.
gcc/
* gimplify.c (gimplify_scan_omp_clauses): Add support for
OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
(gimplify_adjust_omp_clauses): Likewise.
(gimplify_oacc_declare_1): Add support for GOMP_MAP_RELEASE, remove
support for GOMP_MAP_FORCE_{ALLOC,TO,FROM,TOFROM}.
(gimplify_omp_target_update): Update handling of acc update and
enter/exit data.
* omp-low.c (install_var_field): Remove unused parameter
base_pointers_restrict.
(scan_sharing_clauses): Remove base_pointers_restrict parameter.
Update call to install_var_field. Handle OMP_CLAUSE_{IF_PRESENT,
FINALIZE}
(omp_target_base_pointers_restrict_p): Delete.
(scan_omp_target): Update call to scan_sharing_clauses.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_{IF_PRESENT,
FINALIZE}.
* tree-nested.c (convert_nonlocal_omp_clauses): Handle
OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
(convert_local_omp_clauses): Likewise.
* tree-pretty-print.c (dump_omp_clause): Likewise.
* tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_{IF_PRESENT,
FINALIZE}.
(omp_clause_code_name): Likewise.
gcc/testsuite/
* c-c++-common/goacc/declare-1.c: Update test case to utilize OpenACC
2.5 data clause semantics.
* c-c++-common/goacc/declare-2.c: Likewise.
* c-c++-common/goacc/default-4.c: Likewise.
* c-c++-common/goacc/finalize-1.c: New test.
* c-c++-common/goacc/kernels-alias-2.c: Update test case to utilize
OpenACC 2.5 data clause semantics.
* c-c++-common/goacc/kernels-alias.c: Likewise.
* c-c++-common/goacc/routine-5.c: Likewise.
* c-c++-common/goacc/update-if_present-1.c: New test.
* c-c++-common/goacc/update-if_present-2.c: New test.
* g++.dg/goacc/template.C: Update test case to utilize OpenACC
2.5 data clause semantics.
* gfortran.dg/goacc/combined-directives.f90: Likewise.
* gfortran.dg/goacc/data-tree.f95: Likewise.
* gfortran.dg/goacc/declare-2.f95: Likewise.
* gfortran.dg/goacc/default-4.f: Likewise.
* gfortran.dg/goacc/enter-exit-data.f95: Likewise.
* gfortran.dg/goacc/finalize-1.f: New test.
* gfortran.dg/goacc/kernels-alias-2.f95: Update test case to utilize
OpenACC 2.5 data clause semantics.
* gfortran.dg/goacc/kernels-alias.f95: Likewise.
* gfortran.dg/goacc/kernels-tree.f95: Likewise.
* gfortran.dg/goacc/nested-function-1.f90: Likewise.
* gfortran.dg/goacc/parallel-tree.f95: Likewise.
* gfortran.dg/goacc/reduction-promotions.f90: Likewise.
* gfortran.dg/goacc/update-if_present-1.f90: New test.
* gfortran.dg/goacc/update-if_present-2.f90: New test.
libgomp/
* libgomp.h (struct splay_tree_key_s): Add dynamic_refcount member.
(gomp_acc_remove_pointer): Update declaration.
(gomp_acc_declare_allocate): Declare.
(gomp_remove_var): Declare.
* libgomp.map (OACC_2.5): Define.
* oacc-mem.c (acc_map_data): Update refcount.
(acc_unmap_data): Likewise.
(present_create_copy): Likewise.
(acc_create): Add FLAG_PRESENT when calling present_create_copy.
(acc_copyin): Likewise.
(FLAG_FINALIZE): Define.
(delete_copyout): Update dynamic refcounts, add support for FINALIZE.
(acc_delete_finalize): New function.
(acc_delete_finalize_async): New function.
(acc_copyout_finalize): New function.
(acc_copyout_finalize_async): New function.
(gomp_acc_insert_pointer): Update refcounts.
(gomp_acc_remove_pointer): Return if data is not present on the
accelerator.
* oacc-parallel.c (find_pset): Rename to find_pointer.
(find_pointer): Add support for GOMP_MAP_POINTER.
(handle_ftn_pointers): New function.
(GOACC_parallel_keyed): Update refcounts of variables.
(GOACC_enter_exit_data): Add support for finalized data mappings.
Add support for GOMP_MAP_{TO,ALLOC,RELESE,FROM}. Update handling
of fortran arrays.
(GOACC_update): Add support for GOMP_MAP_{ALWAYS_POINTER,TO,FROM}.
(GOACC_declare): Add support for GOMP_MAP_RELEASE, remove support
for GOMP_MAP_FORCE_FROM.
* openacc.f90 (module openacc_internal): Add
acc_copyout_finalize_{32_h,64_h,array_h,_l}, and
acc_delete_finalize_{32_h,64_h,array_h,_l}. Add interfaces for
acc_copyout_finalize and acc_delete_finalize.
(acc_copyout_finalize_32_h): New subroutine.
(acc_copyout_finalize_64_h): New subroutine.
(acc_copyout_finalize_array_h): New subroutine.
(acc_delete_finalize_32_h): New subroutine.
(acc_delete_finalize_64_h): New subroutine.
(acc_delete_finalize_array_h): New subroutine.
* openacc.h (acc_copyout_finalize): Declare.
(acc_copyout_finalize_async): Declare.
(acc_delete_finalize): Declare.
(acc_delete_finalize_async): Declare.
* openacc_lib.h (acc_copyout_finalize): New interface.
(acc_delete_finalize): New interface.
* target.c (gomp_map_vars): Update dynamic_refcount.
(gomp_remove_var): New function.
(gomp_unmap_vars): Use it.
(gomp_unload_image_from_device): Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Update test
case to utilize OpenACC 2.5 data clause semantics.
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
* testsuite/libgomp.oacc-fortran/data-5.f90: New test.
* testsuite/libgomp.oacc-fortran/data-already-1.f: Update test case to
utilize OpenACC 2.5 data clause semantics.
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
From-SVN: r261813
2018-06-20 18:35:15 +02:00
|
|
|
|
2018-06-20 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (struct splay_tree_key_s): Add dynamic_refcount member.
|
|
|
|
|
(gomp_acc_remove_pointer): Update declaration.
|
|
|
|
|
(gomp_acc_declare_allocate): Declare.
|
|
|
|
|
(gomp_remove_var): Declare.
|
|
|
|
|
* libgomp.map (OACC_2.5): Define.
|
|
|
|
|
* oacc-mem.c (acc_map_data): Update refcount.
|
|
|
|
|
(acc_unmap_data): Likewise.
|
|
|
|
|
(present_create_copy): Likewise.
|
|
|
|
|
(acc_create): Add FLAG_PRESENT when calling present_create_copy.
|
|
|
|
|
(acc_copyin): Likewise.
|
|
|
|
|
(FLAG_FINALIZE): Define.
|
|
|
|
|
(delete_copyout): Update dynamic refcounts, add support for FINALIZE.
|
|
|
|
|
(acc_delete_finalize): New function.
|
|
|
|
|
(acc_delete_finalize_async): New function.
|
|
|
|
|
(acc_copyout_finalize): New function.
|
|
|
|
|
(acc_copyout_finalize_async): New function.
|
|
|
|
|
(gomp_acc_insert_pointer): Update refcounts.
|
|
|
|
|
(gomp_acc_remove_pointer): Return if data is not present on the
|
|
|
|
|
accelerator.
|
|
|
|
|
* oacc-parallel.c (find_pset): Rename to find_pointer.
|
|
|
|
|
(find_pointer): Add support for GOMP_MAP_POINTER.
|
|
|
|
|
(handle_ftn_pointers): New function.
|
|
|
|
|
(GOACC_parallel_keyed): Update refcounts of variables.
|
|
|
|
|
(GOACC_enter_exit_data): Add support for finalized data mappings.
|
|
|
|
|
Add support for GOMP_MAP_{TO,ALLOC,RELESE,FROM}. Update handling
|
|
|
|
|
of fortran arrays.
|
|
|
|
|
(GOACC_update): Add support for GOMP_MAP_{ALWAYS_POINTER,TO,FROM}.
|
|
|
|
|
(GOACC_declare): Add support for GOMP_MAP_RELEASE, remove support
|
|
|
|
|
for GOMP_MAP_FORCE_FROM.
|
|
|
|
|
* openacc.f90 (module openacc_internal): Add
|
|
|
|
|
acc_copyout_finalize_{32_h,64_h,array_h,_l}, and
|
|
|
|
|
acc_delete_finalize_{32_h,64_h,array_h,_l}. Add interfaces for
|
|
|
|
|
acc_copyout_finalize and acc_delete_finalize.
|
|
|
|
|
(acc_copyout_finalize_32_h): New subroutine.
|
|
|
|
|
(acc_copyout_finalize_64_h): New subroutine.
|
|
|
|
|
(acc_copyout_finalize_array_h): New subroutine.
|
|
|
|
|
(acc_delete_finalize_32_h): New subroutine.
|
|
|
|
|
(acc_delete_finalize_64_h): New subroutine.
|
|
|
|
|
(acc_delete_finalize_array_h): New subroutine.
|
|
|
|
|
* openacc.h (acc_copyout_finalize): Declare.
|
|
|
|
|
(acc_copyout_finalize_async): Declare.
|
|
|
|
|
(acc_delete_finalize): Declare.
|
|
|
|
|
(acc_delete_finalize_async): Declare.
|
|
|
|
|
* openacc_lib.h (acc_copyout_finalize): New interface.
|
|
|
|
|
(acc_delete_finalize): New interface.
|
|
|
|
|
* target.c (gomp_map_vars): Update dynamic_refcount.
|
|
|
|
|
(gomp_remove_var): New function.
|
|
|
|
|
(gomp_unmap_vars): Use it.
|
|
|
|
|
(gomp_unload_image_from_device): Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Update test
|
|
|
|
|
case to utilize OpenACC 2.5 data clause semantics.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-1.f: Update test case to
|
|
|
|
|
utilize OpenACC 2.5 data clause semantics.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
|
|
|
|
|
|
2018-05-21 22:48:59 +02:00
|
|
|
|
2018-05-21 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/85841
|
|
|
|
|
PR testsuite/85865
|
|
|
|
|
* testsuite/libgomp.fortran/collapse2.f90: Add option "-std=legacy".
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse1.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse3.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/task2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/vla1.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/vla2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/vla3.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/vla4.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/vla5.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/vla6.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/vla8.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/nested-function-1.f90: Ditto.
|
|
|
|
|
|
2018-05-18 17:43:09 +02:00
|
|
|
|
2018-05-18 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/85782
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85782.c: New test.
|
|
|
|
|
|
2018-05-09 18:01:30 +02:00
|
|
|
|
2018-05-09 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/82901
|
|
|
|
|
* oacc-parallel.c (GOACC_declare): Use GOMP_ASYNC_SYNC as async argument
|
|
|
|
|
to GOACC_enter_exit_data.
|
|
|
|
|
|
2018-05-09 15:52:49 +02:00
|
|
|
|
2018-05-09 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/83792
|
|
|
|
|
* oacc-int.h (async_valid_stream_id_p, async_valid_p)
|
|
|
|
|
(async_synchronous_p): New function.
|
|
|
|
|
* oacc-async.c (acc_async_test, acc_wait, acc_wait_all_async): Use
|
|
|
|
|
async_valid_p.
|
|
|
|
|
* oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use
|
|
|
|
|
async_valid_stream_id_p.
|
|
|
|
|
* oacc-mem.c (gomp_acc_remove_pointer): Use async_synchronous_p.
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed): Same.
|
|
|
|
|
|
2018-05-07 13:33:45 +02:00
|
|
|
|
2018-05-07 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/85677
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Move inclusion of top-level
|
|
|
|
|
include directory in ALWAYS_CFLAGS out of $blddir != "" condition.
|
|
|
|
|
|
2018-05-03 15:47:14 +02:00
|
|
|
|
2018-05-03 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/85106
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp-dg-test): Add save-temps to
|
|
|
|
|
extra_tool_flags if it contains an -foffload=-fdump-* flag.
|
|
|
|
|
* testsuite/lib/libgomp.exp: Include scanoffloadtree.exp.
|
|
|
|
|
* testsuite/libgomp.oacc-c/vec.c: Use scan-offload-tree-dump.
|
|
|
|
|
|
2018-05-02 19:53:56 +02:00
|
|
|
|
2018-05-02 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/85411
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Move parsing of
|
|
|
|
|
GOMP_OPENACC_DIM ...
|
|
|
|
|
* env.c (parse_gomp_openacc_dim): ... here. New function.
|
|
|
|
|
(initialize_env): Call parse_gomp_openacc_dim.
|
|
|
|
|
(goacc_default_dims): Define.
|
|
|
|
|
* libgomp.h (goacc_default_dims): Declare.
|
|
|
|
|
* oacc-plugin.c (GOMP_PLUGIN_acc_default_dim): New function.
|
|
|
|
|
* oacc-plugin.h (GOMP_PLUGIN_acc_default_dim): Declare.
|
|
|
|
|
* libgomp.map: New version "GOMP_PLUGIN_1.2". Add
|
|
|
|
|
GOMP_PLUGIN_acc_default_dim.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-default-runtime.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-default.h: New test.
|
|
|
|
|
|
2018-05-02 19:53:43 +02:00
|
|
|
|
2018-05-02 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/83791
|
|
|
|
|
* testsuite/libgomp.c++/udr-9.C: Update.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-16.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-taskgroup-2.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/loop-13.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/loop-14.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/loop-15.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/monotonic-1.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/monotonic-2.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/nonmonotonic-1.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/nonmonotonic-2.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/ordered-1.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr45784.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr64824.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr64868.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-1.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-2.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-3.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-4.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-5.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-6.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-7.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-8.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-9.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/pr69389.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/simd10.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/simd11.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/simd12.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/simd13.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/target-1.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/target-3.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/target-4.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/target-5.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/taskgroup-1.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-1.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-2.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-3.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-4.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/udr-9.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/for-10.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/for-11.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/for-12.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/for-13.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/for-14.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c++/for-9.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c/atomic-18.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/atomic-18.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/cancel-taskgroup-2.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c: here.
|
|
|
|
|
* testsuite/libgomp.c/loop-13.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/loop-13.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/loop-14.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/loop-14.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/loop-15.c: Remove.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/loop-15.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/monotonic-1.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/monotonic-1.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/monotonic-2.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/monotonic-2.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/nonmonotonic-1.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/nonmonotonic-1.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/nonmonotonic-2.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/nonmonotonic-2.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/ordered-4.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/ordered-4.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr45784.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr45784.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr64824.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr64824.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr64868.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr64868.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-1.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-1.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-2.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-2.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-3.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-3.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-4.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-4.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-5.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-5.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-6.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-6.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-7.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-7.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-8.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-8.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-9.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr66199-9.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/pr69389.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr69389.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/simd-14.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/simd-14.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/simd-15.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/simd-15.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/simd-16.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/simd-16.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/simd-17.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/simd-17.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/target-1.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/target-1.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/target-10.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/target-10.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/target-13.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/target-13.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/target-2.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/target-2.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/taskgroup-1.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskgroup-1.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-1.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskloop-1.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-2.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskloop-2.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-3.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskloop-3.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-4.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/taskloop-4.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/udr-1.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/udr-1.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/for-1.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-1.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/for-1.h: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-1.h: ... here.
|
|
|
|
|
* testsuite/libgomp.c/for-2.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-2.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/for-2.h: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-2.h: ... here.
|
|
|
|
|
* testsuite/libgomp.c/for-3.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-3.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/for-4.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-4.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/for-5.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-5.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/for-6.c: Move ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/for-6.c: ... here.
|
|
|
|
|
|
2018-05-02 19:53:29 +02:00
|
|
|
|
2018-05-02 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/82428
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Use
|
|
|
|
|
__builtin_goacc_parlevel_{id,size}.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/tile-1.c: Same.
|
|
|
|
|
|
2018-05-02 14:16:32 +02:00
|
|
|
|
2018-05-02 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/85106
|
|
|
|
|
* testsuite/lib/libgomp.exp: Include scanltranstree.exp.
|
|
|
|
|
|
2018-05-02 14:16:15 +02:00
|
|
|
|
2018-05-02 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/85106
|
|
|
|
|
* testsuite/lib/libgomp.exp: Include scanwpaipa.exp.
|
|
|
|
|
|
2018-04-29 12:26:56 +02:00
|
|
|
|
2018-04-29 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/85527
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: Allow
|
|
|
|
|
arbitrary order for iterations of atomic subtract check.
|
|
|
|
|
|
2018-04-28 00:11:12 +02:00
|
|
|
|
2018-04-28 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/85527
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90 (main): Store
|
|
|
|
|
atomic capture results obtained in parallel loop to an array, instead of
|
|
|
|
|
to a scalar.
|
|
|
|
|
|
2018-04-26 15:27:04 +02:00
|
|
|
|
2018-04-26 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/84020
|
|
|
|
|
* plugin/cuda/cuda.h (CUjit_option): Add CU_JIT_OPTIMIZATION_LEVEL.
|
|
|
|
|
* plugin/plugin-nvptx.c (_GNU_SOURCE): Define.
|
|
|
|
|
(process_GOMP_NVPTX_JIT): New function.
|
|
|
|
|
(link_ptx): Use process_GOMP_NVPTX_JIT.
|
|
|
|
|
|
2018-04-26 15:26:25 +02:00
|
|
|
|
2018-04-26 Richard Biener <rguenther@suse.de>
|
|
|
|
|
Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR lto/85422
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr85422.c: New test.
|
|
|
|
|
|
2018-04-26 15:26:09 +02:00
|
|
|
|
2018-04-26 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/85519
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Reduce
|
|
|
|
|
recursion depth from 25 to 23.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Same.
|
|
|
|
|
|
2018-04-24 18:45:26 +02:00
|
|
|
|
2018-04-24 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2018-04-20 15:46:07 +02:00
|
|
|
|
2018-04-20 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/85445
|
|
|
|
|
* testsuite/libgomp.oacc-c++/ref-1.C: New.
|
|
|
|
|
|
2018-04-19 10:53:38 +02:00
|
|
|
|
2018-04-19 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/85463
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/error_stop-1.f: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/stop-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/stop-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/stop-3.f: Likewise.
|
|
|
|
|
|
|
|
|
|
PR libfortran/85166
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-1.f90: Switch back to "call
|
|
|
|
|
abort".
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
|
|
|
|
|
|
2018-04-19 09:45:51 +02:00
|
|
|
|
2018-04-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2018-04-18 11:46:58 +02:00
|
|
|
|
2018-04-18 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR jit/85384
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2018-04-16 20:01:09 +02:00
|
|
|
|
2018-04-16 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/84955
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
|
|
|
|
|
|
2018-04-12 23:58:54 +02:00
|
|
|
|
2018-04-12 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/83064
|
|
|
|
|
PR testsuite/85346
|
|
|
|
|
* testsuite/libgomp.fortran/do_concurrent_5.f90: Move modified
|
|
|
|
|
test from gfortran.dg to here.
|
|
|
|
|
|
2018-07-24 12:24:00 +02:00
|
|
|
|
2018-04-12 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr84955.c: Revert 259346.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr84955.f90: Likewise.
|
|
|
|
|
|
|
|
|
|
2018-04-12 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/84955
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr84955.f90: New test.
|
|
|
|
|
|
2018-04-05 10:36:37 +02:00
|
|
|
|
2018-04-05 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/85204
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/broadcast-1.c: New test.
|
|
|
|
|
|
2018-03-26 11:45:49 +02:00
|
|
|
|
2018-03-26 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/85063
|
|
|
|
|
* testsuite/libgomp.c/switch-conversion-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/switch-conversion.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/switch-conversion-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/switch-conversion.c: New test.
|
|
|
|
|
|
2018-03-25 18:00:52 +02:00
|
|
|
|
2018-03-25 Thomas Koenig <tkoenig@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/84381
|
|
|
|
|
* testsuite/libgomp.fortran/aligned1.f03: Replace non-standard
|
|
|
|
|
call abort by STOP n.
|
|
|
|
|
* testsuite/libgomp.fortran/alloc-comp-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/alloc-comp-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/alloc-comp-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable10.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable11.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable12.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable9.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/associate1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/associate2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/associate3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-do-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-do-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-parallel-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-sections-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-taskgroup-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/character1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/character2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/collapse1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/collapse2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/collapse3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/collapse4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/declare-target-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/depend-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/depend-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/depend-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/do1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/do2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/doacross1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/doacross2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/doacross3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/array_sections-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/array_sections-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/async_target-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_update-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_update-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lastprivate1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lastprivate2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lib1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lib2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lib3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lib4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lock-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lock-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/nested1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond3.F90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond4.F90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pointer1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pointer2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr25162.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr25219.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr27395-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr27395-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr27416-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr27916-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr27916-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr28390.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr29629.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr32550.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr33880.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr34020.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr35130.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr42162.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr46753.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr48894.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr49792-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr49792-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr63938-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr63938-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr65597.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr66199-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr71014.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr81304.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr81841.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr84418-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/pr84418-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/procptr1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/recursion1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/reference1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/reference2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/retval1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/retval2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/sharing1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/sharing2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/simd1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/simd2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/simd3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/simd4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/simd5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/simd6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/simd7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/stack.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/strassen.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/tabs1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/tabs2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/target1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/target2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/target3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/target4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/target5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/target6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/target7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/target8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/task1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/task2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/task3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/task4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/taskgroup1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/taskloop1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/taskloop2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/taskloop3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/taskloop4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr10.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr11.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr12.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr13.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr14.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr15.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr9.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/vla1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/vla2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/vla3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/vla4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/vla5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/vla6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/vla7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/vla8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/workshare1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/workshare2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/c2.pl: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/combined-directives-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/combined-reduction.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/host_data-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-32-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/nested-function-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/nested-function-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/nested-function-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr70643.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr81352.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr83920.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr84028.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-9.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/update-1.f90: Likewise.
|
|
|
|
|
|
2018-03-20 13:42:59 +01:00
|
|
|
|
2018-03-20 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-4.c: XFAIL one
|
|
|
|
|
parallelizable loop.
|
|
|
|
|
|
2018-02-19 17:25:49 +01:00
|
|
|
|
2018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
|
|
|
|
|
|
|
|
|
|
PR target/84148
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2018-02-16 23:40:32 +01:00
|
|
|
|
2018-02-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/84418
|
|
|
|
|
* libgomp.fortran/pr84418-1.f90: New test.
|
|
|
|
|
* libgomp.fortran/pr84418-2.f90: New test.
|
|
|
|
|
|
2018-02-14 13:12:15 +01:00
|
|
|
|
2018-02-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/84313
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate4.f90: Add
|
|
|
|
|
-std=f2003 -fall-intrinsics into dg-additional-options.
|
|
|
|
|
|
2018-02-08 14:06:26 +01:00
|
|
|
|
2018-02-08 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.hsa.c/pr82416.c: Make the function with target
|
|
|
|
|
clonable.
|
|
|
|
|
|
2018-02-08 14:03:52 +01:00
|
|
|
|
2018-02-08 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.hsa.c/staticvar.c: New test.
|
|
|
|
|
|
2018-02-07 20:32:21 +01:00
|
|
|
|
2018-02-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr84217.c (abort)
|
|
|
|
|
[__cplusplus]: Declare extern "C".
|
|
|
|
|
|
2018-02-07 11:37:55 +01:00
|
|
|
|
2018-02-07 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/84217
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr84217.c: New test.
|
|
|
|
|
|
2018-01-30 00:38:01 +01:00
|
|
|
|
2018-01-29 Christoph Spiel <cspiel@freenet.de>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/84096
|
|
|
|
|
* omp.h.in (omp_init_nest_lock_with_hint): Use omp_nest_lock_t
|
|
|
|
|
instead of omp_lock_t.
|
|
|
|
|
|
2018-01-25 11:25:14 +01:00
|
|
|
|
2018-01-25 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/84028
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr84028.f90: New test.
|
|
|
|
|
|
2018-01-24 14:52:12 +01:00
|
|
|
|
2018-01-24 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/83589
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr83589.c: New test.
|
|
|
|
|
|
2018-01-24 12:27:10 +01:00
|
|
|
|
2018-01-24 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/81352
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr81352.f90: New test.
|
|
|
|
|
|
2018-01-19 17:29:41 +01:00
|
|
|
|
2018-01-19 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR target/83920
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr83920.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr83920.f90: New test.
|
|
|
|
|
|
2018-01-03 10:17:54 +01:00
|
|
|
|
2018-01-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2018-01-03 11:03:58 +01:00
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2018-01-03 10:17:54 +01:00
|
|
|
|
* libgomp.texi: Bump @copying's copyright year.
|
|
|
|
|
|
2017-12-30 18:02:00 +01:00
|
|
|
|
2017-12-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/83046
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr83046.c: New test.
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr83046.c: New test.
|
|
|
|
|
|
2017-12-27 08:50:04 +01:00
|
|
|
|
2017-12-27 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/83046
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/gang-static-2.c (test_static)
|
|
|
|
|
(test_nonstatic): Fix return type to workaround PR83046.
|
|
|
|
|
|
2017-12-05 14:34:41 +01:00
|
|
|
|
2017-12-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/83281
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c (main): Use
|
|
|
|
|
j suffix instead of i.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c (main):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2017-12-01 15:26:07 +01:00
|
|
|
|
2017-12-01 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Add missing
|
|
|
|
|
call to acc_wait (1).
|
|
|
|
|
|
2017-11-24 22:40:21 +01:00
|
|
|
|
2017-11-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/81304
|
|
|
|
|
* testsuite/libgomp.fortran/pr81304.f90: New test.
|
|
|
|
|
|
2017-11-23 21:16:38 +01:00
|
|
|
|
2017-11-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/81841
|
|
|
|
|
* libgomp.fortran/pr81841.f90: New test.
|
|
|
|
|
|
2017-11-22 21:49:56 +01:00
|
|
|
|
2017-11-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/83106
|
|
|
|
|
* target.c (gomp_target_init): Compute lengths just once and
|
|
|
|
|
use them in both malloc size and subsequent copying.
|
|
|
|
|
|
2017-11-17 22:22:09 +01:00
|
|
|
|
2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Set CET_FLAGS, update XCFLAGS and FCFLAGS.
|
|
|
|
|
* acinclude.m4: Add cet.m4.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* Makefile.in: Likewise.
|
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
|
2017-11-15 14:40:58 +01:00
|
|
|
|
2017-11-15 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/f-asyncwait-1.c: New test, copied
|
|
|
|
|
from asyncwait-1.f90. Rewrite into C. Rewrite from float to int.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/f-asyncwait-2.c: New test, copied
|
|
|
|
|
from asyncwait-2.f90. Rewrite into C. Rewrite from float to int.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/f-asyncwait-3.c: New test, copied
|
|
|
|
|
from asyncwait-3.f90. Rewrite into C. Rewrite from float to int.
|
|
|
|
|
|
2017-11-14 10:12:14 +01:00
|
|
|
|
2017-11-14 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Allow to run for
|
|
|
|
|
non-nvidia devices.
|
|
|
|
|
|
2017-11-07 21:51:05 +01:00
|
|
|
|
2017-11-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/82835
|
|
|
|
|
* testsuite/libgomp.c++/pr82835.C: New test.
|
|
|
|
|
|
2017-11-06 14:41:35 +01:00
|
|
|
|
2017-11-06 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/loop-2.C: Return a value
|
|
|
|
|
for functions with non-void return type, or change type to void,
|
|
|
|
|
or add -Wno-return-type for test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-4.C: Likewise.
|
|
|
|
|
* testsuite/libgomp.c++/parallel-1.C: Likewise.
|
|
|
|
|
* testsuite/libgomp.c++/shared-1.C: Likewise.
|
|
|
|
|
* testsuite/libgomp.c++/single-1.C: Likewise.
|
|
|
|
|
* testsuite/libgomp.c++/single-2.C: Likewise.
|
|
|
|
|
|
2017-10-31 13:56:41 +01:00
|
|
|
|
2017-10-31 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-hsa.c (HSA_LOG): Remove semicolon after
|
|
|
|
|
"do {} while (false)".
|
|
|
|
|
(init_single_kernel, GOMP_OFFLOAD_async_run): Add missing semicolon
|
|
|
|
|
after HSA_DEBUG call.
|
|
|
|
|
|
2017-10-28 09:02:39 +02:00
|
|
|
|
2017-10-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.c (struct gomp_coalesce_buf): New type.
|
|
|
|
|
(MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define.
|
|
|
|
|
(gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions.
|
|
|
|
|
(gomp_copy_host2dev): Add CBUF argument, if copying into
|
|
|
|
|
the cached ranges, memcpy into buffer instead of copying
|
|
|
|
|
into device.
|
|
|
|
|
(gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing):
|
|
|
|
|
Add CBUF argument, pass it through to other calls.
|
|
|
|
|
(gomp_map_vars): Aggregate copies from host to device if small enough
|
|
|
|
|
and with small enough gaps in between into memcpy into a buffer and
|
|
|
|
|
fewer host to device copies from the buffer.
|
|
|
|
|
(gomp_update): Adjust gomp_copy_host2dev caller.
|
|
|
|
|
|
2017-10-17 13:17:00 +02:00
|
|
|
|
2017-10-17 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-1.f90: Restore "dg-do
|
|
|
|
|
run" directive.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
|
|
|
|
|
|
2017-10-16 10:44:42 +02:00
|
|
|
|
2017-10-16 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-1.c: Don't require
|
|
|
|
|
openacc_nvidia_accel_selected.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-2.f90: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-4.f90: Same
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-5.f90: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-5.c: Don't require
|
|
|
|
|
openacc_nvidia_accel_selected. Skip for shared memory device.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-1.f90: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-3.f90: Same.
|
|
|
|
|
|
2017-10-09 11:41:44 +02:00
|
|
|
|
2017-10-09 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR hsa/82416
|
|
|
|
|
* testsuite/libgomp.hsa.c/pr82416.c: New test.
|
|
|
|
|
|
2017-10-07 10:46:00 +02:00
|
|
|
|
2017-10-07 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/firstprivate-1.f90 (firstprivate):
|
|
|
|
|
Remove acc_device_nvidia references.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/parallel-reduction.f90 (reduction):
|
|
|
|
|
Same.
|
|
|
|
|
|
2017-10-05 10:31:46 +02:00
|
|
|
|
2017-10-05 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c (main): Remove
|
|
|
|
|
vector_length(32) clause from acc parallel directive.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c (main): Same.
|
|
|
|
|
|
2017-10-04 10:39:09 +02:00
|
|
|
|
2017-10-04 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
|
|
|
|
|
(main): Reduce sum of arr elements. Assert that hres is exactly
|
|
|
|
|
representable in 32-bit floating point.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
|
|
|
|
|
(main): Reduce sum of arr elements. Assert that hres and hmres are
|
|
|
|
|
exactly representable in 32-bit floating point.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same.
|
|
|
|
|
|
2017-09-28 11:32:00 +02:00
|
|
|
|
2017-09-28 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/for-12.C: Remove superfluous -fopenmp option
|
|
|
|
|
setting.
|
|
|
|
|
* testsuite/libgomp.c++/pr69393.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-1.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-3.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-4.C: Same.
|
|
|
|
|
* testsuite/libgomp.c/for-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-6.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/aligned1.f03: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/condinc1.f: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/condinc3.f90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr1.f90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr3.f90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond1.f: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond3.F90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/pr66199-1.f90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/pr66199-2.f90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/recursion1.f90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/target2.f90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/target5.f90: Same.
|
|
|
|
|
* testsuite/libgomp.fortran/task3.f90: Same.
|
|
|
|
|
|
2017-09-28 08:35:23 +02:00
|
|
|
|
2017-09-28 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-1.c (main): Remove
|
|
|
|
|
vector_length(32) clause from acc parallel directive.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-2.c (main): Same.
|
|
|
|
|
|
2017-09-27 14:35:54 +02:00
|
|
|
|
2017-09-27 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c (main):
|
|
|
|
|
Remove acc_device_nvidia references.
|
|
|
|
|
|
2017-09-16 15:11:43 +02:00
|
|
|
|
2017-09-16 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/81875
|
|
|
|
|
* testsuite/libgomp.c-c++-common/pr81875.c: New test.
|
|
|
|
|
|
2017-09-14 23:15:40 +02:00
|
|
|
|
2017-09-14 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/cancel-taskgroup-1.C: Remove.
|
|
|
|
|
* testsuite/libgomp.c/cancel-taskgroup-1.c: Move to ...
|
|
|
|
|
* testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c: ... here.
|
|
|
|
|
* testsuite/libgomp.c/c.exp: Include test-cases from
|
|
|
|
|
libgomp.c-c++-common.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Same. Force c++-mode compilation of .c
|
|
|
|
|
files.
|
|
|
|
|
|
2017-09-14 22:18:17 +02:00
|
|
|
|
2017-09-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/81314
|
|
|
|
|
* testsuite/libgomp.c++/pr81314.C: New test.
|
|
|
|
|
|
2017-09-08 14:27:14 +02:00
|
|
|
|
2017-09-03 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi (Top): www.openacc.org now uses https.
|
|
|
|
|
(Enabling OpenACC): Ditto.
|
|
|
|
|
(acc_get_num_devices): Ditto.
|
|
|
|
|
(acc_set_device_type): Ditto.
|
|
|
|
|
(acc_get_device_type): Ditto.
|
|
|
|
|
(acc_set_device_num): Ditto.
|
|
|
|
|
(acc_get_device_num): Ditto.
|
|
|
|
|
(acc_async_test): Ditto.
|
|
|
|
|
(acc_async_test_all): Ditto.
|
|
|
|
|
(acc_wait): Ditto.
|
|
|
|
|
(acc_wait_all): Ditto.
|
|
|
|
|
(acc_wait_all_async): Ditto.
|
|
|
|
|
(acc_wait_async): Ditto.
|
|
|
|
|
(acc_init): Ditto.
|
|
|
|
|
(acc_shutdown): Ditto.
|
|
|
|
|
(acc_on_device): Ditto.
|
|
|
|
|
(acc_malloc): Ditto.
|
|
|
|
|
(acc_free): Ditto.
|
|
|
|
|
(acc_copyin): Ditto.
|
|
|
|
|
(acc_present_or_copyin): Ditto.
|
|
|
|
|
(acc_create): Ditto.
|
|
|
|
|
(acc_present_or_create): Ditto.
|
|
|
|
|
(acc_copyout): Ditto.
|
|
|
|
|
(acc_delete): Ditto.
|
|
|
|
|
(acc_update_device): Ditto.
|
|
|
|
|
(acc_update_self): Ditto.
|
|
|
|
|
(acc_map_data): Ditto.
|
|
|
|
|
(acc_unmap_data): Ditto.
|
|
|
|
|
(acc_deviceptr): Ditto.
|
|
|
|
|
(acc_hostptr): Ditto.
|
|
|
|
|
(acc_is_present): Ditto.
|
|
|
|
|
(acc_memcpy_to_device): Ditto.
|
|
|
|
|
(acc_memcpy_from_device): Ditto.
|
|
|
|
|
(acc_get_current_cuda_device): Ditto.
|
|
|
|
|
(acc_get_current_cuda_context): Ditto.
|
|
|
|
|
(acc_get_cuda_stream): Ditto.
|
|
|
|
|
(acc_set_cuda_stream): Ditto.
|
|
|
|
|
(ACC_DEVICE_TYPE): Ditto.
|
|
|
|
|
(ACC_DEVICE_NUM): Ditto.
|
|
|
|
|
(OpenACC Library Interoperability): Ditto.
|
|
|
|
|
|
2017-08-10 02:33:20 +02:00
|
|
|
|
2017-08-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/81687
|
|
|
|
|
* testsuite/libgomp.c/pr81687-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr81687-2.c: New test.
|
|
|
|
|
|
2017-08-07 20:34:29 +02:00
|
|
|
|
2017-08-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/69389
|
|
|
|
|
* testsuite/libgomp.c/pr69389.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr69389.C: New test.
|
|
|
|
|
|
2017-08-07 19:06:11 +02:00
|
|
|
|
2017-08-07 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/78266
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail.
|
|
|
|
|
|
2017-07-27 21:13:42 +02:00
|
|
|
|
2017-07-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/45784
|
|
|
|
|
* testsuite/libgomp.c/pr45784.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr45784.C: New test.
|
|
|
|
|
|
2017-07-19 15:05:35 +02:00
|
|
|
|
2017-07-19 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c/vec.c: New test.
|
|
|
|
|
|
2017-07-03 15:40:19 +02:00
|
|
|
|
2017-07-03 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-hsa.c: Fix secure_getenv.h include.
|
|
|
|
|
|
2017-06-27 17:51:48 +02:00
|
|
|
|
2017-06-27 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (notify_var): New function.
|
|
|
|
|
(nvptx_exec): Use notify_var for GOMP_OPENACC_DIM.
|
|
|
|
|
|
2017-06-27 17:51:37 +02:00
|
|
|
|
2017-06-27 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* env.c (parse_unsigned_long_1): Factor out of ...
|
|
|
|
|
(parse_unsigned_long): ... here.
|
|
|
|
|
(parse_int_1): Factor out of ...
|
|
|
|
|
(parse_int): ... here.
|
|
|
|
|
(parse_int_secure): New function.
|
|
|
|
|
(initialize_env): Use parse_int_secure for GOMP_DEBUG.
|
|
|
|
|
* secure_getenv.h: Factor out of ...
|
|
|
|
|
* plugin/plugin-hsa.c: ... here.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/gomp-debug-env.c: New test.
|
|
|
|
|
|
2017-06-21 12:58:00 +02:00
|
|
|
|
2017-06-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/81130
|
|
|
|
|
* testsuite/libgomp.c++/pr81130.C: New test.
|
|
|
|
|
|
2017-06-17 17:32:28 +02:00
|
|
|
|
2017-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/strassen.f90: Remove dg-skip-if
|
|
|
|
|
default args.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove
|
|
|
|
|
dg-xfail-run-if default args.
|
|
|
|
|
|
2017-06-02 06:06:59 +02:00
|
|
|
|
2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr39591-2.c: Fix test case.
|
|
|
|
|
* testsuite/libgomp.c/pr39591-3.c: Likewise.
|
|
|
|
|
|
2017-05-30 14:05:30 +02:00
|
|
|
|
2017-05-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/80822
|
|
|
|
|
* config/linux/affinity.c (gomp_affinity_init_level_1): New function.
|
|
|
|
|
(gomp_affinity_init_level): Use it. Always analyze the core and thread
|
|
|
|
|
sibling lists, depending on level just pick up what CPUs to put
|
|
|
|
|
together into a place vs. whether add multiple ordered places.
|
|
|
|
|
|
2017-05-24 08:59:05 +02:00
|
|
|
|
2017-05-24 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
OpenACC 1.0 compatibility: acc_async_wait, acc_async_wait_all
libgomp/
* openacc.h (acc_async_wait, acc_async_wait_all): New prototypes.
* libgomp.map (OACC_2.0.1): Add these.
* oacc-async.c (acc_async_wait, acc_async_wait_all): New aliases
for "acc_wait", and "acc_wait_all", respectively.
* openacc.f90 (acc_async_wait, acc_async_wait_all): New interfaces
for "acc_wait", and "acc_wait_all", respectively.
* openacc_lib.h (acc_async_wait, acc_async_wait_all): Likewise.
* libgomp.texi (acc_wait, acc_wait_all): Update.
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Update.
* testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: New file.
* testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
From-SVN: r248413
2017-05-24 15:25:01 +02:00
|
|
|
|
* openacc.h (acc_async_wait, acc_async_wait_all): New prototypes.
|
|
|
|
|
* libgomp.map (OACC_2.0.1): Add these.
|
|
|
|
|
* oacc-async.c (acc_async_wait, acc_async_wait_all): New aliases
|
|
|
|
|
for "acc_wait", and "acc_wait_all", respectively.
|
|
|
|
|
* openacc.f90 (acc_async_wait, acc_async_wait_all): New interfaces
|
|
|
|
|
for "acc_wait", and "acc_wait_all", respectively.
|
|
|
|
|
* openacc_lib.h (acc_async_wait, acc_async_wait_all): Likewise.
|
|
|
|
|
* libgomp.texi (acc_wait, acc_wait_all): Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/par-reduction-2-1.f: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/par-reduction-2-2.f: Likewise.
|
|
|
|
|
|
2017-05-24 15:23:55 +02:00
|
|
|
|
* openacc_lib.h (acc_pcopyin, acc_pcreate): Route to
|
|
|
|
|
acc_present_or_copyin and acc_present_or_create procedures,
|
|
|
|
|
respectively.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-32-1.f: Exercise these, and
|
|
|
|
|
generally different variants of OpenACC Runtime Library functions.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
|
|
|
|
|
|
2017-05-24 15:23:45 +02:00
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-32-1.f: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-32-2.f: Likewise.
|
|
|
|
|
|
2017-05-24 15:23:34 +02:00
|
|
|
|
* openacc.h (acc_pcopyin, acc_pcreate): Provide prototypes instead
|
|
|
|
|
of preprocessor definitions.
|
|
|
|
|
* libgomp.h (strong_alias): Guard by "#ifdef
|
|
|
|
|
HAVE_ATTRIBUTE_ALIAS".
|
|
|
|
|
* oacc-mem.c: Provide "acc_pcreate" as alias for
|
|
|
|
|
"acc_present_or_create", and "acc_pcopyin" as alias for
|
|
|
|
|
"acc_present_or_copyin".
|
|
|
|
|
* libgomp.map: New version "OACC_2.0.1".
|
|
|
|
|
(OACC_2.0.1): Add "acc_pcopyin", and "acc_pcreate".
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-38.c: Remove, merging
|
|
|
|
|
its content into...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-32.c: ... this file.
|
|
|
|
|
Extend testing.
|
|
|
|
|
|
2017-05-24 08:59:05 +02:00
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Debugging output
|
|
|
|
|
when disabling nvptx offloading.
|
|
|
|
|
|
2017-05-23 11:16:05 +02:00
|
|
|
|
2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2017-05-23 17:47:32 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
|
|
|
|
|
|
2017-05-23 11:16:05 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Rewrite.
|
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
|
(check_effective_target_openacc_nvidia_accel_configured): New
|
|
|
|
|
proc.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp (check_effective_target_c)
|
|
|
|
|
(check_effective_target_c++): New procs.
|
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp (check_effective_target_c)
|
|
|
|
|
(check_effective_target_c++): Likewise.
|
|
|
|
|
|
2017-05-22 20:51:54 +02:00
|
|
|
|
2017-05-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2017-05-22 20:54:54 +02:00
|
|
|
|
PR middle-end/80809
|
|
|
|
|
* testsuite/libgomp.c/pr80809-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr80809-3.c: New test.
|
|
|
|
|
|
2017-05-22 20:54:05 +02:00
|
|
|
|
PR middle-end/80809
|
|
|
|
|
* testsuite/libgomp.c/pr80809-1.c: New test.
|
|
|
|
|
|
2017-05-22 20:51:54 +02:00
|
|
|
|
PR middle-end/80853
|
|
|
|
|
* testsuite/libgomp.c/pr80853.c: New test.
|
|
|
|
|
|
2017-05-19 15:32:04 +02:00
|
|
|
|
2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2017-05-19 15:32:48 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c++/template-reduction.C: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/nested-2.c: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Likewise.
|
|
|
|
|
|
2017-05-19 15:32:04 +02:00
|
|
|
|
* plugin/plugin-hsa.c (DLSYM_FN, init_hsa_runtime_functions):
|
|
|
|
|
Debug output for failure.
|
|
|
|
|
|
2017-05-12 11:20:37 +02:00
|
|
|
|
2017-05-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Load scanlang.exp.
|
|
|
|
|
|
2017-04-27 22:03:01 +02:00
|
|
|
|
2017-04-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/80531
|
|
|
|
|
* configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid
|
|
|
|
|
bootstrap compare failures.
|
|
|
|
|
|
2017-04-20 19:21:50 +02:00
|
|
|
|
2017-04-20 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-36.c: New testcase.
|
|
|
|
|
|
2017-04-13 21:59:04 +02:00
|
|
|
|
2017-04-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (cuda_lib_inited): Use signed char type
|
|
|
|
|
instead of char.
|
|
|
|
|
|
2017-04-11 19:15:47 +02:00
|
|
|
|
2017-04-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/80394
|
|
|
|
|
* testsuite/libgomp.c/pr80394.c: New test.
|
|
|
|
|
|
2017-04-04 12:41:33 +02:00
|
|
|
|
2017-04-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/79876
|
|
|
|
|
* config/posix/thread-stacksize.h: New file.
|
|
|
|
|
* config/darwin/thread-stacksize.h: New file.
|
|
|
|
|
* config/nvptx/thread-stacksize.h: New file.
|
|
|
|
|
* env.c: Include thread-stacksize.h.
|
|
|
|
|
(initialize_env): Initialize stacksize to GOMP_DEFAULT_STACKSIZE
|
|
|
|
|
instead of 0. Call pthread_attr_setstacksize even if
|
|
|
|
|
GOMP_DEFAULT_STACKSIZE is non-zero.
|
|
|
|
|
|
2017-03-30 22:29:20 +02:00
|
|
|
|
2017-03-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* env.c (initialize_env): Initialize stacksize to 0.
|
|
|
|
|
|
2017-03-22 14:52:10 +01:00
|
|
|
|
2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/80029
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-vla.c: New test.
|
|
|
|
|
|
2017-03-08 18:21:06 +01:00
|
|
|
|
2017-03-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/79940
|
|
|
|
|
* testsuite/libgomp.c/pr79940.c: New test.
|
|
|
|
|
|
2017-02-15 17:35:54 +01:00
|
|
|
|
2017-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr48591.c: Enable on all __float128
|
|
|
|
|
targets.
|
|
|
|
|
Add __float128 options.
|
|
|
|
|
|
2017-02-11 22:23:50 +01:00
|
|
|
|
2017-02-11 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Remove
|
|
|
|
|
hppa*-*-* dg-skip-if directive.
|
|
|
|
|
|
2017-02-09 14:50:28 +01:00
|
|
|
|
2017-02-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Move
|
|
|
|
|
dg-skip-if directive into a comment.
|
|
|
|
|
|
gimplify.c (gimplify_scan_omp_clauses): No special handling for OMP_CLAUSE_TILE.
2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Chung-Lin Tang <cltang@codesourcery.com>
gcc/
* gimplify.c (gimplify_scan_omp_clauses): No special handling for
OMP_CLAUSE_TILE.
(gimplify_adjust_omp_clauses): Don't delete TILE.
(gimplify_omp_for): Deal with TILE.
* internal-fn.c (expand_GOACC_TILE): New function.
* internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
(GOACC_TILE): New.
* omp-expand.c (struct oacc_collapse): Add tile and outer fields.
(expand_oacc_collapse_init): Add LOC paramter. Initialize tile
element fields.
(expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
avoid DIV for outermost collapse var.
(expand_oacc_for): Insert tile element loop as needed. Adjust.
Remove out of date comments, fix whitespace.
* omp-general.c (omp_extract_for_data): Deal with tiling.
* omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
adjust OLF_DIM_BASE value.
(struct omp_for_data): Add tiling field.
* omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
(lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
for auto loops. Remove default auto determining, moved to
oacc_loop_fixed_partitions.
* omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
stmts, add e_mask field.
(oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
(oacc_thread_numbers): Use oacc_dim_call.
(oacc_xform_tile): New.
(new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
(finish_oacc_loop): Adjust for ifns vector.
(oacc_loop_discover_walk): Append loop abstraction sites to list,
add case for GOACC_TILE fns.
(oacc_loop_xform_loop): Delete.
(oacc_loop_process): Iterate over call list directly, and add
handling for GOACC_TILE fns.
(oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
dump partitioning.
(oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
vector partitioning to outer loops. Assign 2 partitions to loops
when available. Add TILE handling.
(oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
(execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
* tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
* tree.c (omp_clause_num_ops): Adjust TILE ops.
* tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
gcc/c/
* c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
(c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
semantic checking.
* c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.
gcc/cp/
* parser.c (cp_parser_oacc_clause_tile): Disallow collapse. Fix
parsing. Parse constant expression. Remove semantic checking.
(cp_parser_omp_clause_collapse): Disallow tile.
(cp_parser_omp_for_loop): Deal with tile clause. Don't emit a parse
error about missing for after already emitting one. Use more
conventional for idiom for unbounded loop.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_TILE.
* semantics.c (finish_omp_clauses): Correct TILE semantic check.
(finish_omp_for): Deal with tile clause.
gcc/fortran/
* openmp.c (resolve_omp_clauses): Error on directives
containing both tile and collapse clauses.
(resolve_oacc_loop_blocks): Represent '*' tile arguments as zero.
* trans-openmp.c (gfc_trans_omp_do): Lower tiled loops like
collapsed loops.
gcc/testsuite/
* c-c++-common/goacc/combined-directives.c: Remove xfail.
* c-c++-common/goacc/loop-auto-1.c: Adjust and add additional case.
* c-c++-common/goacc/loop-auto-2.c: New.
* c-c++-common/goacc/tile.c: Include stdbool, fix expected errors.
* c-c++-common/goacc/tile-2.c: New.
* g++.dg/goacc/template.C: Test tile subst. Adjust erroneous uses.
* g++.dg/goacc/tile-1.C: New, check tile subst.
* gcc.dg/goacc/loop-processing-1.c: Adjust dg-final pattern.
* gfortran.dg/goacc/combined-directives.f90: Remove xfail.
* gfortran.dg/goacc/tile-1.f90: New test.
* gfortran.dg/goacc/tile-2.f90: New test.
* gfortran.dg/goacc/tile-lowering.f95: New test.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/tile-1.c: New.
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and
add additional case.
* testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under
"openacc_nvidia_accel_selected".
* libgomp.oacc-fortran/nested-function-1.f90 (test2):
Add num_workers(8) clause.
From-SVN: r245300
2017-02-09 14:46:20 +01:00
|
|
|
|
2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/tile-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and
|
|
|
|
|
add additional case.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under
|
|
|
|
|
"openacc_nvidia_accel_selected".
|
|
|
|
|
* libgomp.oacc-fortran/nested-function-1.f90 (test2):
|
|
|
|
|
Add num_workers(8) clause.
|
|
|
|
|
|
2017-02-09 01:22:32 +01:00
|
|
|
|
2017-02-08 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Skip on
|
|
|
|
|
hppa*-*-*.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Don't
|
|
|
|
|
include complex.h on hppa*-*-hpux*.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
|
|
|
|
|
|
2017-02-02 15:13:57 +01:00
|
|
|
|
2017-02-02 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2017-02-02 15:35:30 +01:00
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Make it static.
|
|
|
|
|
|
2017-02-02 15:13:57 +01:00
|
|
|
|
* libgomp-plugin.h (GOMP_OFFLOAD_openacc_parallel): Rename to
|
|
|
|
|
GOMP_OFFLOAD_openacc_exec. Adjust all users.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_get_current_cuda_device): Rename to
|
|
|
|
|
GOMP_OFFLOAD_openacc_cuda_get_current_device. Adjust all users.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_get_current_cuda_context): Rename to
|
|
|
|
|
GOMP_OFFLOAD_openacc_cuda_get_current_context. Adjust all users.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_get_cuda_stream): Rename to
|
|
|
|
|
GOMP_OFFLOAD_openacc_cuda_get_stream. Adjust all users.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_set_cuda_stream): Rename to
|
|
|
|
|
GOMP_OFFLOAD_openacc_cuda_set_stream. Adjust all users.
|
|
|
|
|
|
libgomp: Provide prototypes for functions implemented by libgomp plugins
libgomp/
* libgomp-plugin.h: #include <stdbool.h>.
(GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps)
(GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices)
(GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device)
(GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image)
(GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free)
(GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev)
(GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run)
(GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel)
(GOMP_OFFLOAD_openacc_register_async_cleanup)
(GOMP_OFFLOAD_openacc_async_test)
(GOMP_OFFLOAD_openacc_async_test_all)
(GOMP_OFFLOAD_openacc_async_wait)
(GOMP_OFFLOAD_openacc_async_wait_async)
(GOMP_OFFLOAD_openacc_async_wait_all)
(GOMP_OFFLOAD_openacc_async_wait_all_async)
(GOMP_OFFLOAD_openacc_async_set_async)
(GOMP_OFFLOAD_openacc_create_thread_data)
(GOMP_OFFLOAD_openacc_destroy_thread_data)
(GOMP_OFFLOAD_openacc_get_current_cuda_device)
(GOMP_OFFLOAD_openacc_get_current_cuda_context)
(GOMP_OFFLOAD_openacc_get_cuda_stream)
(GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes.
* libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use
these.
* plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image)
(GOMP_OFFLOAD_unload_image): Fix argument types.
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_type): Fix
return type.
(GOMP_OFFLOAD_load_image): Fix argument types.
From-SVN: r245062
2017-01-31 15:32:58 +01:00
|
|
|
|
2017-01-31 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp-plugin.h: #include <stdbool.h>.
|
|
|
|
|
(GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps)
|
|
|
|
|
(GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices)
|
|
|
|
|
(GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device)
|
|
|
|
|
(GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image)
|
|
|
|
|
(GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free)
|
|
|
|
|
(GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev)
|
|
|
|
|
(GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run)
|
|
|
|
|
(GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_register_async_cleanup)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_test)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_test_all)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait_async)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait_all)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_wait_all_async)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_async_set_async)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_create_thread_data)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_destroy_thread_data)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_get_current_cuda_device)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_get_current_cuda_context)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_get_cuda_stream)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes.
|
|
|
|
|
* libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use
|
|
|
|
|
these.
|
|
|
|
|
* plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image)
|
|
|
|
|
(GOMP_OFFLOAD_unload_image): Fix argument types.
|
|
|
|
|
|
2017-01-26 12:20:51 +01:00
|
|
|
|
2017-01-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2017-01-26 20:37:08 +01:00
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
|
(check_effective_target_hsa_offloading_selected_nocache): Fix up
|
|
|
|
|
check_compile invocation. Fix up removal of executable. Drop
|
|
|
|
|
bogus "2>&1" argument.
|
|
|
|
|
|
2017-01-26 12:20:51 +01:00
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-4.f90: Add cleanup-modules
|
|
|
|
|
directive.
|
|
|
|
|
|
|
|
|
|
2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
|
2017-01-24 13:45:56 +01:00
|
|
|
|
Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* plugin/hsa.h: Moved to top level include.
|
|
|
|
|
* plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly.
|
|
|
|
|
|
2017-01-21 09:47:11 +01:00
|
|
|
|
2017-01-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR other/79046
|
|
|
|
|
* testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
|
|
|
|
|
of cat to get version from BASE-VER file.
|
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
|
|
2017-01-19 16:53:51 +01:00
|
|
|
|
2017-01-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* plugin/cuda/cuda.h (CUdeviceptr): Typedef to unsigned long long even
|
|
|
|
|
for _WIN64.
|
|
|
|
|
|
2017-01-17 10:38:48 +01:00
|
|
|
|
2017-01-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2017-01-17 10:45:23 +01:00
|
|
|
|
* plugin/hsa.h: Add GCC runtime library exception.
|
|
|
|
|
* plugin/hsa_ext_finalize.h: Likewise.
|
|
|
|
|
|
configfrag.ac: For --without-cuda-driver don't initialize CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB.
* plugin/configfrag.ac: For --without-cuda-driver don't initialize
CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB. If both
CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB are empty and linking small
cuda program fails, define PLUGIN_NVPTX_DYNAMIC to 1 and use
plugin/include/cuda as include dir and -ldl instead of -lcuda as
library to link ptx plugin against.
* plugin/plugin-nvptx.c: Include dlfcn.h if PLUGIN_NVPTX_DYNAMIC.
(CUDA_CALLS): Define.
(cuda_lib, cuda_lib_inited): New variables.
(init_cuda_lib): New function.
(CUDA_CALL_PREFIX): Define.
(CUDA_CALL_ERET, CUDA_CALL_ASSERT): Use CUDA_CALL_PREFIX.
(CUDA_CALL): Use FN instead of (FN).
(CUDA_CALL_NOCHECK): Define.
(cuda_error, fini_streams_for_device, select_stream_for_async,
nvptx_attach_host_thread_to_device, nvptx_open_device, link_ptx,
event_gc, nvptx_exec, nvptx_async_test, nvptx_async_test_all,
nvptx_wait_all, nvptx_set_clocktick, GOMP_OFFLOAD_unload_image,
nvptx_stacks_alloc, nvptx_stacks_free, GOMP_OFFLOAD_run): Use
CUDA_CALL_NOCHECK.
(nvptx_init): Call init_cuda_lib, if it fails, return false. Use
CUDA_CALL_NOCHECK.
(nvptx_get_num_devices): Call init_cuda_lib, if it fails, return 0.
Use CUDA_CALL_NOCHECK.
* plugin/cuda/cuda.h: New file.
* config.h.in: Regenerated.
* configure: Regenerated.
From-SVN: r244522
2017-01-17 10:44:17 +01:00
|
|
|
|
* plugin/configfrag.ac: For --without-cuda-driver don't initialize
|
|
|
|
|
CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB. If both
|
|
|
|
|
CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB are empty and linking small
|
|
|
|
|
cuda program fails, define PLUGIN_NVPTX_DYNAMIC to 1 and use
|
|
|
|
|
plugin/include/cuda as include dir and -ldl instead of -lcuda as
|
|
|
|
|
library to link ptx plugin against.
|
|
|
|
|
* plugin/plugin-nvptx.c: Include dlfcn.h if PLUGIN_NVPTX_DYNAMIC.
|
|
|
|
|
(CUDA_CALLS): Define.
|
|
|
|
|
(cuda_lib, cuda_lib_inited): New variables.
|
|
|
|
|
(init_cuda_lib): New function.
|
|
|
|
|
(CUDA_CALL_PREFIX): Define.
|
|
|
|
|
(CUDA_CALL_ERET, CUDA_CALL_ASSERT): Use CUDA_CALL_PREFIX.
|
|
|
|
|
(CUDA_CALL): Use FN instead of (FN).
|
|
|
|
|
(CUDA_CALL_NOCHECK): Define.
|
|
|
|
|
(cuda_error, fini_streams_for_device, select_stream_for_async,
|
|
|
|
|
nvptx_attach_host_thread_to_device, nvptx_open_device, link_ptx,
|
|
|
|
|
event_gc, nvptx_exec, nvptx_async_test, nvptx_async_test_all,
|
|
|
|
|
nvptx_wait_all, nvptx_set_clocktick, GOMP_OFFLOAD_unload_image,
|
|
|
|
|
nvptx_stacks_alloc, nvptx_stacks_free, GOMP_OFFLOAD_run): Use
|
|
|
|
|
CUDA_CALL_NOCHECK.
|
|
|
|
|
(nvptx_init): Call init_cuda_lib, if it fails, return false. Use
|
|
|
|
|
CUDA_CALL_NOCHECK.
|
|
|
|
|
(nvptx_get_num_devices): Call init_cuda_lib, if it fails, return 0.
|
|
|
|
|
Use CUDA_CALL_NOCHECK.
|
|
|
|
|
* plugin/cuda/cuda.h: New file.
|
|
|
|
|
* config.h.in: Regenerated.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2017-01-17 10:38:48 +01:00
|
|
|
|
PR other/79046
|
|
|
|
|
* configure.ac: Add GCC_BASE_VER.
|
|
|
|
|
* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
|
|
|
|
|
get version from BASE-VER file.
|
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
|
2017-01-09 21:29:06 +01:00
|
|
|
|
2017-01-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libgomp/60670
|
|
|
|
|
* Makefile.am: Make fincludedir multilib-aware.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2017-01-01 12:31:28 +01:00
|
|
|
|
2017-01-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2017-01-01 13:07:43 +01:00
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2017-01-01 12:31:28 +01:00
|
|
|
|
* libgomp.texi: Bump @copying's copyright year.
|
|
|
|
|
|
2016-12-02 15:13:12 +01:00
|
|
|
|
2016-12-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* libgomp/config/rtems/pool.h (gomp_thread_pool_reservoir): Use
|
|
|
|
|
pthread_spinlock_t instead of gomp_mutex_t lock.
|
|
|
|
|
(gomp_get_thread_pool): Likewise.
|
|
|
|
|
(gomp_release_thread_pool): Likewise.
|
|
|
|
|
* libgomp/config/rtems/proc.c (allocate_thread_pool_reservoir):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2016-12-02 15:10:33 +01:00
|
|
|
|
2016-12-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config/rtems/pool.h (gomp_get_thread_pool): Return proper
|
|
|
|
|
thread pool in case nthreads == 1.
|
|
|
|
|
|
2016-11-30 19:23:00 +01:00
|
|
|
|
2016-11-30 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* config/nvptx/env.c: Delete.
|
|
|
|
|
* icv.c: Move definitions of ICV variables back ...
|
|
|
|
|
* env.c: ...here. Do not compile environment-related functionality if
|
|
|
|
|
LIBGOMP_OFFLOADED_ONLY is set.
|
|
|
|
|
|
2016-11-30 19:08:30 +01:00
|
|
|
|
2016-11-30 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* configure.ac [nvptx*-*-*] (libgomp_offloaded_only): Set and use it...
|
|
|
|
|
(LIBGOMP_OFFLOADED_ONLY): ...here; new define.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
|
2016-11-30 19:05:33 +01:00
|
|
|
|
2016-11-30 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate with automake-1.11.6.
|
|
|
|
|
* aclocal.m4: Likewise.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
|
2016-11-28 14:50:23 +01:00
|
|
|
|
2016-11-28 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* config/nvptx/critical.c: Delete to use generic implementation.
|
|
|
|
|
|
2016-11-28 14:42:50 +01:00
|
|
|
|
2016-11-28 Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* config/linux/affinity.c [!HAVE_PTHREAD_AFFINITY_NP]: Include
|
|
|
|
|
../../affinity.c as fallback.
|
|
|
|
|
* config/nvptx/affinity.c: Delete to use fallback implementation.
|
|
|
|
|
|
2016-11-23 19:36:41 +01:00
|
|
|
|
2016-11-23 Alexander Monakov <amonakov@ispras.ru>
|
2018-08-27 16:04:23 +02:00
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
2016-11-23 19:36:41 +01:00
|
|
|
|
Dmitry Melnik <dm@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add atomic.c, icv.c, icv-device.c.
|
|
|
|
|
* Makefile.in. Regenerate.
|
|
|
|
|
* configure.ac [nvptx*-*-*] (libgomp_use_pthreads): Set and use it...
|
|
|
|
|
(LIBGOMP_USE_PTHREADS): ...here; new define.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
* config/posix/affinity.c: Move to...
|
|
|
|
|
* affinity.c: ...here (new file). Guard use of Pthreads-specific
|
|
|
|
|
interface by LIBGOMP_USE_PTHREADS.
|
|
|
|
|
* critical.c: Split out GOMP_atomic_{start,end} into...
|
|
|
|
|
* atomic.c: ...here (new file).
|
|
|
|
|
* env.c: Split out ICV definitions into...
|
|
|
|
|
* icv.c: ...here (new file) and...
|
|
|
|
|
* icv-device.c: ...here. New file.
|
|
|
|
|
* config/linux/lock.c (gomp_init_lock_30): Move to generic lock.c.
|
|
|
|
|
(gomp_destroy_lock_30): Ditto.
|
|
|
|
|
(gomp_set_lock_30): Ditto.
|
|
|
|
|
(gomp_unset_lock_30): Ditto.
|
|
|
|
|
(gomp_test_lock_30): Ditto.
|
|
|
|
|
(gomp_init_nest_lock_30): Ditto.
|
|
|
|
|
(gomp_destroy_nest_lock_30): Ditto.
|
|
|
|
|
(gomp_set_nest_lock_30): Ditto.
|
|
|
|
|
(gomp_unset_nest_lock_30): Ditto.
|
|
|
|
|
(gomp_test_nest_lock_30): Ditto.
|
|
|
|
|
* lock.c: New.
|
|
|
|
|
* config/nvptx/lock.c: New.
|
|
|
|
|
* config/nvptx/bar.c: New.
|
|
|
|
|
* config/nvptx/bar.h: New.
|
|
|
|
|
* config/nvptx/doacross.h: New.
|
|
|
|
|
* config/nvptx/error.c: New.
|
|
|
|
|
* config/nvptx/icv-device.c: New.
|
|
|
|
|
* config/nvptx/mutex.h: New.
|
|
|
|
|
* config/nvptx/pool.h: New.
|
|
|
|
|
* config/nvptx/proc.c: New.
|
|
|
|
|
* config/nvptx/ptrlock.h: New.
|
|
|
|
|
* config/nvptx/sem.h: New.
|
|
|
|
|
* config/nvptx/simple-bar.h: New.
|
|
|
|
|
* config/nvptx/target.c: New.
|
|
|
|
|
* config/nvptx/task.c: New.
|
|
|
|
|
* config/nvptx/team.c: New.
|
|
|
|
|
* config/nvptx/time.c: New.
|
|
|
|
|
* config/posix/simple-bar.h: New.
|
|
|
|
|
* libgomp.h: Guard pthread.h inclusion. Include simple-bar.h.
|
|
|
|
|
(gomp_num_teams_var): Declare.
|
|
|
|
|
(struct gomp_thread_pool): Change threads_dock member to
|
|
|
|
|
gomp_simple_barrier_t.
|
|
|
|
|
[__nvptx__] (gomp_thread): New implementation.
|
|
|
|
|
(gomp_thread_attr): Guard by LIBGOMP_USE_PTHREADS.
|
|
|
|
|
(gomp_thread_destructor): Ditto.
|
|
|
|
|
(gomp_init_thread_affinity): Ditto.
|
|
|
|
|
* team.c: Guard uses of Pthreads-specific interfaces by
|
|
|
|
|
LIBGOMP_USE_PTHREADS. Adjust all uses of threads_dock.
|
|
|
|
|
(gomp_free_thread) [__nvptx__]: Do not call 'free'.
|
|
|
|
|
* config/nvptx/alloc.c: Delete.
|
|
|
|
|
* config/nvptx/barrier.c: Ditto.
|
|
|
|
|
* config/nvptx/fortran.c: Ditto.
|
|
|
|
|
* config/nvptx/iter.c: Ditto.
|
|
|
|
|
* config/nvptx/iter_ull.c: Ditto.
|
|
|
|
|
* config/nvptx/loop.c: Ditto.
|
|
|
|
|
* config/nvptx/loop_ull.c: Ditto.
|
|
|
|
|
* config/nvptx/ordered.c: Ditto.
|
|
|
|
|
* config/nvptx/parallel.c: Ditto.
|
|
|
|
|
* config/nvptx/priority_queue.c: Ditto.
|
|
|
|
|
* config/nvptx/sections.c: Ditto.
|
|
|
|
|
* config/nvptx/single.c: Ditto.
|
|
|
|
|
* config/nvptx/splay-tree.c: Ditto.
|
|
|
|
|
* config/nvptx/work.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp (lang_link_flags): Pass
|
|
|
|
|
-foffload=-lgfortran in addition to -lgfortran.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp (lang_link_flags): Ditto.
|
|
|
|
|
* plugin/plugin-nvptx.c: Include <limits.h>.
|
|
|
|
|
(struct targ_fn_descriptor): Add new fields.
|
|
|
|
|
(struct ptx_device): Ditto. Set them...
|
|
|
|
|
(nvptx_open_device): ...here.
|
|
|
|
|
(nvptx_adjust_launch_bounds): New.
|
|
|
|
|
(nvptx_host2dev): Allow NULL 'nvthd'.
|
|
|
|
|
(nvptx_dev2host): Ditto.
|
|
|
|
|
(GOMP_OFFLOAD_get_caps): Add GOMP_OFFLOAD_CAP_OPENMP_400.
|
|
|
|
|
(link_ptx): Adjust log sizes.
|
|
|
|
|
(nvptx_host2dev): Allow NULL 'nvthd'.
|
|
|
|
|
(nvptx_dev2host): Ditto.
|
|
|
|
|
(nvptx_set_clocktick): New. Use it...
|
|
|
|
|
(GOMP_OFFLOAD_load_image): ...here. Set new targ_fn_descriptor
|
|
|
|
|
fields.
|
|
|
|
|
(GOMP_OFFLOAD_dev2dev): New.
|
|
|
|
|
(nvptx_adjust_launch_bounds): New.
|
|
|
|
|
(nvptx_stacks_size): New.
|
|
|
|
|
(nvptx_stacks_alloc): New.
|
|
|
|
|
(nvptx_stacks_free): New.
|
|
|
|
|
(GOMP_OFFLOAD_run): New.
|
|
|
|
|
(GOMP_OFFLOAD_async_run): New (stub).
|
|
|
|
|
|
backport: hsa-builtins.def: New file.
Merge from HSA branch to trunk
2016-11-23 Martin Jambor <mjambor@suse.cz>
Martin Liska <mliska@suse.cz>
gcc/
* hsa-builtins.def: New file.
* Makefile.in (BUILTINS_DEF): Add hsa-builtins.def dependency.
* builtins.def: Include hsa-builtins.def.
(DEF_HSA_BUILTIN): New macro.
* dumpfile.h (OPTGROUP_OPENMP): Define.
* dumpfile.c (optgroup_options): Added OPTGROUP_OPENMP.
* gimple.h (gf_mask): Added elements GF_OMP_FOR_GRID_INTRA_GROUP and
GF_OMP_FOR_GRID_GROUP_ITER.
(gimple_omp_for_grid_phony): Added checking assert.
(gimple_omp_for_set_grid_phony): Likewise.
(gimple_omp_for_grid_intra_group): New function.
(gimple_omp_for_set_grid_intra_group): Likewise.
(gimple_omp_for_grid_group_iter): Likewise.
(gimple_omp_for_set_grid_group_iter): Likewise.
* omp-low.c (check_omp_nesting_restrictions): Allow GRID loop where
previosuly only distribute loop was permitted.
(lower_lastprivate_clauses): Allow non tcc_comparison predicates.
(grid_get_kernel_launch_attributes): Support multiple HSA grid
dimensions.
(grid_expand_omp_for_loop): Likewise and also support standalone
distribute constructs. New parameter INTRA_GROUP, updated both users.
(grid_expand_target_grid_body): Support standalone distribute
constructs.
(pass_data_expand_omp): Changed optinfo_flags to OPTGROUP_OPENMP.
(pass_data_expand_omp_ssa): Likewise.
(pass_data_omp_device_lower): Likewsie.
(pass_data_lower_omp): Likewise.
(pass_data_diagnose_omp_blocks): Likewise.
(pass_data_oacc_device_lower): Likewise.
(pass_data_omp_target_link): Likewise.
(grid_lastprivate_predicate): New function.
(lower_omp_for_lastprivate): Call grid_lastprivate_predicate for
gridified loops.
(lower_omp_for): Support standalone distribute constructs.
(grid_prop): New type.
(grid_safe_assignment_p): Check for assignments to group_sizes, new
parameter GRID.
(grid_seq_only_contains_local_assignments): New parameter GRID, pass
it to callee.
(grid_find_single_omp_among_assignments_1): Likewise, improve missed
optimization info messages.
(grid_find_single_omp_among_assignments): Likewise.
(grid_find_ungridifiable_statement): Do not bail out for SIMDs.
(grid_parallel_clauses_gridifiable): New function.
(grid_inner_loop_gridifiable_p): Likewise.
(grid_dist_follows_simple_pattern): Likewise.
(grid_gfor_follows_tiling_pattern): Likewise.
(grid_call_permissible_in_distribute_p): Likewise.
(grid_handle_call_in_distribute): Likewise.
(grid_dist_follows_tiling_pattern): Likewise.
(grid_target_follows_gridifiable_pattern): Support standalone distribute
constructs.
(grid_var_segment): New enum.
(grid_mark_variable_segment): New function.
(grid_copy_leading_local_assignments): Call grid_mark_variable_segment
if a new argument says so.
(grid_process_grid_body): New function.
(grid_eliminate_combined_simd_part): Likewise.
(grid_mark_tiling_loops): Likewise.
(grid_mark_tiling_parallels_and_loops): Likewise.
(grid_process_kernel_body_copy): Support standalone distribute
constructs.
(grid_attempt_target_gridification): New grid variable holding overall
gridification state. Support standalone distribute constructs and
collapse clauses.
* doc/optinfo.texi (Optimization groups): Document OPTGROUP_OPENMP.
* hsa.h (hsa_bb): Add method method append_phi.
(hsa_insn_br): Renamed to hsa_insn_cbr, renamed all
occurences in all files too.
(hsa_insn_br): New class, now the ancestor of hsa_incn_cbr.
(is_a_helper <hsa_insn_br *>::test): New function.
(is_a_helper <hsa_insn_cbr *>::test): Adjust to only cover conditional
branch instructions.
(hsa_insn_signal): Make a direct descendant of
hsa_insn_basic. Add memorder constructor parameter and
m_memory_order and m_signalop member variables.
(hsa_insn_queue): Changed constructor parameters to common form.
Added m_segment and m_memory_order member variables.
(hsa_summary_t): Add private member function
process_gpu_implementation_attributes.
(hsa_function_summary): Rename m_binded_function to
m_bound_function.
(hsa_insn_basic_p): Remove typedef.
(hsa_op_with_type): Change hsa_insn_basic_p into plain pointers.
(hsa_op_reg_p): Remove typedef.
(hsa_function_representation): Change hsa_op_reg_p into plain
pointers.
(hsa_insn_phi): Removed new and delete operators.
(hsa_insn_br): Likewise.
(hsa_insn_cbr): Likewise.
(hsa_insn_sbr): Likewise.
(hsa_insn_cmp): Likewise.
(hsa_insn_mem): Likewise.
(hsa_insn_atomic): Likewise.
(hsa_insn_signal): Likewise.
(hsa_insn_seg): Likewise.
(hsa_insn_call): Likewise.
(hsa_insn_arg_block): Likewise.
(hsa_insn_comment): Likewise.
(hsa_insn_srctype): Likewise.
(hsa_insn_packed): Likewise.
(hsa_insn_cvt): Likewise.
(hsa_insn_alloca): Likewise.
* hsa.c (hsa_destroy_insn): Also handle instances of hsa_insn_br.
(process_gpu_implementation_attributes): New function.
(link_functions): Move some functionality into it. Adjust after
renaming m_binded_functions to m_bound_functions.
(hsa_insn_basic::op_output_p): Add BRIG_OPCODE_DEBUGTRAP
to the list of instructions with no output registers.
(get_in_type): Return this if it is a register of
matching size.
(hsa_get_declaration_name): Moved to...
* hsa-gen.c (hsa_get_declaration_name): ...here. Allocate
temporary string on an obstack instead from ggc.
(query_hsa_grid): Renamed to query_hsa_grid_dim, reimplemented, cut
down to two overloads.
(hsa_allocp_operand_address): Removed.
(hsa_allocp_operand_immed): Likewise.
(hsa_allocp_operand_reg): Likewise.
(hsa_allocp_operand_code_list): Likewise.
(hsa_allocp_operand_operand_list): Likewise.
(hsa_allocp_inst_basic): Likewise.
(hsa_allocp_inst_phi): Likewise.
(hsa_allocp_inst_mem): Likewise.
(hsa_allocp_inst_atomic): Likewise.
(hsa_allocp_inst_signal): Likewise.
(hsa_allocp_inst_seg): Likewise.
(hsa_allocp_inst_cmp): Likewise.
(hsa_allocp_inst_br): Likewise.
(hsa_allocp_inst_sbr): Likewise.
(hsa_allocp_inst_call): Likewise.
(hsa_allocp_inst_arg_block): Likewise.
(hsa_allocp_inst_comment): Likewise.
(hsa_allocp_inst_queue): Likewise.
(hsa_allocp_inst_srctype): Likewise.
(hsa_allocp_inst_packed): Likewise.
(hsa_allocp_inst_cvt): Likewise.
(hsa_allocp_inst_alloca): Likewise.
(hsa_allocp_bb): Likewise.
(hsa_obstack): New.
(hsa_init_data_for_cfun): Initialize obstack.
(hsa_deinit_data_for_cfun): Release memory of the obstack.
(hsa_op_immed::operator new): Use obstack instead of object_allocator.
(hsa_op_reg::operator new): Likewise.
(hsa_op_address::operator new): Likewise.
(hsa_op_code_list::operator new): Likewise.
(hsa_op_operand_list::operator new): Likewise.
(hsa_insn_basic::operator new): Likewise.
(hsa_insn_phi::operator new): Likewise.
(hsa_insn_br::operator new): Likewise.
(hsa_insn_sbr::operator new): Likewise.
(hsa_insn_cmp::operator new): Likewise.
(hsa_insn_mem::operator new): Likewise.
(hsa_insn_atomic::operator new): Likewise.
(hsa_insn_signal::operator new): Likewise.
(hsa_insn_seg::operator new): Likewise.
(hsa_insn_call::operator new): Likewise.
(hsa_insn_arg_block::operator new): Likewise.
(hsa_insn_comment::operator new): Likewise.
(hsa_insn_srctype::operator new): Likewise.
(hsa_insn_packed::operator new): Likewise.
(hsa_insn_cvt::operator new): Likewise.
(hsa_insn_alloca::operator new): Likewise.
(hsa_init_new_bb): Likewise.
(hsa_bb::append_phi): New function.
(gen_hsa_phi_from_gimple_phi): Use it.
(get_symbol_for_decl): Fix dinstinguishing between
global and local functions. Put local variables into a segment
according to their attribute or static flag, if there is one.
(hsa_insn_br::hsa_insn_br): New.
(hsa_insn_br::operator new): Likewise.
(hsa_insn_cbr::hsa_insn_cbr): Set width via ancestor constructor.
(query_hsa_grid_nodim): New function.
(multiply_grid_dim_characteristics): Likewise.
(gen_get_num_threads): Likewise.
(gen_get_num_teams): Reimplemented.
(gen_get_team_num): Likewise.
(gen_hsa_insns_for_known_library_call): Updated calls to the above
helper functions.
(get_memory_order_name): Removed.
(get_memory_order): Likewise.
(hsa_memorder_from_tree): New function.
(gen_hsa_ternary_atomic_for_builtin): Renamed to
gen_hsa_atomic_for_builtin, can also create signals.
(gen_hsa_insns_for_call): Handle many new builtins. Adjust to use
hsa_memory_order_from_tree and gen_hsa_atomic_for_builtin.
(hsa_insn_atomic): Fix function comment.
(hsa_insn_signal::hsa_insn_signal): Fix comment. Update call to
ancestor constructor and initialization of new member variables.
(hsa_insn_queue::hsa_insn_queue): Added initialization of new
member variables.
(hsa_get_host_function): Handle functions with no bound CPU
implementation. Fix binded to bound.
(get_brig_function_name): Likewise.
(HSA_SORRY_ATV): Remove semicolon after macro.
(HSA_SORRY_AT): Likewise.
(omp_simple_builtin::generate): Add missing semicolons.
(hsa_insn_phi::operator new): Removed.
(hsa_insn_br::operator new): Likewise.
(hsa_insn_cbr::operator new): Likewise.
(hsa_insn_sbr::operator new): Likewise.
(hsa_insn_cmp::operator new): Likewise.
(hsa_insn_mem::operator new): Likewise.
(hsa_insn_atomic::operator new): Likewise.
(hsa_insn_signal::operator new): Likewise.
(hsa_insn_seg::operator new): Likewise.
(hsa_insn_call::operator new): Likewise.
(hsa_insn_arg_block::operator new): Likewise.
(hsa_insn_comment::operator new): Likewise.
(hsa_insn_srctype::operator new): Likewise.
(hsa_insn_packed::operator new): Likewise.
(hsa_insn_cvt::operator new): Likewise.
(hsa_insn_alloca::operator new): Likewise.
(get_symbol_for_decl): Accept CONST_DECLs, put them to
readonly segment.
(gen_hsa_addr): Also process CONST_DECLs.
(gen_hsa_addr_insns): Process CONST_DECLs by creating private
copies.
(gen_hsa_unary_operation): Make sure the function does
not use bittype source type for firstbit and lastbit operations.
(gen_hsa_popcount_to_dest): Make sure the function uses a bittype
source type.
* hsa-brig.c (emit_insn_operands): Cope with zero operands in an
instruction.
(emit_branch_insn): Renamed to emit_cond_branch_insn.
Emit the width stored in the class.
(emit_generic_branch_insn): New function.
(emit_insn): Call emit_generic_branch_insn.
(emit_signal_insn): Remove obsolete comment. Update
member variable name, pick a type according to profile.
(emit_alloca_insn): Remove obsolete comment.
(emit_atomic_insn): Likewise.
(emit_queue_insn): Get segment and memory order from the IR object.
(hsa_brig_section): Make allocate_new_chunk, chunks
and cur_chunk provate, add a default NULL parameter to add method.
(hsa_brig_section::add): Added a new parameter, store pointer to
output data there if it is non-NULL.
(emit_function_directives): Use this new parameter instead of
calculating the pointer itself, fix function comment.
(hsa_brig_emit_function): Add forgotten endian conversion.
(hsa_output_kernels): Remove unnecessary building of
kernel_dependencies_vector_type.
(emit_immediate_operand): Declare.
(emit_directive_variable): Also emit initializers of CONST_DECLs.
(gen_hsa_insn_for_internal_fn_call): Also handle IFN_RSQRT.
(verify_function_arguments): Properly detect variadic
arguments.
* hsa-dump.c (hsa_width_specifier_name): New function.
(dump_hsa_insn_1): Dump generic branch instructions, update signal
member variable name. Special dumping for queue objects.
* ipa-hsa.c (process_hsa_functions): Adjust after renaming
m_binded_functions to m_bound_functions. Copy externally visible flag
to the node.
(ipa_hsa_write_summary): Likewise.
(ipa_hsa_read_section): Likewise.
gcc/fortran/
* f95-lang.c (DEF_HSA_BUILTIN): New macro.
gcc/testsuite/
* c-c++-common/gomp/gridify-1.c: Update scan string.
* gfortran.dg/gomp/gridify-1.f90: Likewise.
* c-c++-common/gomp/gridify-2.c: New test.
* c-c++-common/gomp/gridify-3.c: Likewise.
libgomp/
* testsuite/libgomp.hsa.c/bits-insns.c: New test.
* testsuite/libgomp.hsa.c/tiling-1.c: Likewise.
* testsuite/libgomp.hsa.c/tiling-2.c: Likewise.
Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r242761
2016-11-23 15:51:02 +01:00
|
|
|
|
2016-11-23 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.hsa.c/bits-insns.c: New test.
|
|
|
|
|
* testsuite/libgomp.hsa.c/tiling-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/tiling-2.c: Likewise.
|
|
|
|
|
|
2016-11-23 13:27:13 +01:00
|
|
|
|
2016-11-23 Martin Liska <mliska@suse.cz>
|
2018-08-27 16:04:23 +02:00
|
|
|
|
Martin Jambor <mjambor@suse.cz>
|
2016-11-23 13:27:13 +01:00
|
|
|
|
|
|
|
|
|
* plugin/hsa.h: New file.
|
|
|
|
|
* plugin/hsa_ext_finalize.h: New file.
|
|
|
|
|
* plugin/configfrag.ac: Remove hsa-kmt-lib test. Added checks for
|
|
|
|
|
header file unistd.h, and functions secure_getenv, __secure_getenv,
|
|
|
|
|
getuid, geteuid, getgid and getegid.
|
|
|
|
|
* plugin/Makefrag.am (libgomp_plugin_hsa_la_CPPFLAGS): Added
|
|
|
|
|
-D_GNU_SOURCE.
|
|
|
|
|
* plugin/plugin-hsa.c: Include config.h, inttypes.h and stdbool.h.
|
|
|
|
|
Handle various cases of secure_getenv presence, add an implementation
|
|
|
|
|
when we can test effective UID and GID.
|
|
|
|
|
(struct hsa_runtime_fn_info): New structure.
|
|
|
|
|
(hsa_runtime_fn_info hsa_fns): New variable.
|
|
|
|
|
(hsa_runtime_lib): Likewise.
|
|
|
|
|
(support_cpu_devices): Likewise.
|
|
|
|
|
(init_enviroment_variables): Load newly introduced ENV
|
|
|
|
|
variables.
|
|
|
|
|
(hsa_warn): Call hsa run-time functions via hsa_fns structure.
|
|
|
|
|
(hsa_fatal): Likewise.
|
|
|
|
|
(DLSYM_FN): New macro.
|
|
|
|
|
(init_hsa_runtime_functions): New function.
|
|
|
|
|
(suitable_hsa_agent_p): Call hsa run-time functions via hsa_fns
|
|
|
|
|
structure. Depending on environment, also allow CPU devices.
|
|
|
|
|
(init_hsa_context): Call hsa run-time functions via hsa_fns structure.
|
|
|
|
|
(get_kernarg_memory_region): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_init_device): Likewise.
|
|
|
|
|
(destroy_hsa_program): Likewise.
|
|
|
|
|
(init_basic_kernel_info): New function.
|
|
|
|
|
(GOMP_OFFLOAD_load_image): Use it.
|
|
|
|
|
(create_and_finalize_hsa_program): Call hsa run-time functions via
|
|
|
|
|
hsa_fns structure.
|
|
|
|
|
(create_single_kernel_dispatch): Likewise.
|
|
|
|
|
(release_kernel_dispatch): Likewise.
|
|
|
|
|
(init_single_kernel): Likewise.
|
|
|
|
|
(parse_target_attributes): Allow up multiple HSA grid dimensions.
|
|
|
|
|
(get_group_size): New function.
|
|
|
|
|
(run_kernel): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_run): Outline most functionality to run_kernel.
|
|
|
|
|
(GOMP_OFFLOAD_fini_device): Call hsa run-time functions via hsa_fns
|
|
|
|
|
structure.
|
|
|
|
|
* testsuite/lib/libgomp.exp: Remove hsa_kmt_lib support.
|
|
|
|
|
* testsuite/libgomp-test-support.exp.in: Likewise.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* aclocal.m4: Likewise.
|
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
|
2016-11-15 18:14:32 +01:00
|
|
|
|
2016-11-15 Martin Jambor <mjambor@suse.cz>
|
2018-08-27 16:04:23 +02:00
|
|
|
|
Alexander Monakov <amonakov@ispras.ru>
|
2016-11-15 18:14:32 +01:00
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-1.f90 (e_57_1): Add
|
|
|
|
|
mapping clauses to target constructs.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-3.f90 (e_57_3): Ditto.
|
|
|
|
|
|
2016-11-15 17:34:02 +01:00
|
|
|
|
2016-11-15 Matthias Klose <doko@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
omp-low.c (lower_omp_target): Fix up argument to is_reference.
gcc/
* omp-low.c (lower_omp_target): Fix up argument to is_reference.
(expand_omp_ordered_sink): Handle TREE_PURPOSE of deps being
TRUNC_DIV_EXPR.
* gimplify.c (gimplify_scan_omp_clauses): Likewise. Set
ctx->target_map_scalars_firstprivate on OMP_TARGET even for Fortran.
Remove omp_no_lastprivate callers. Propagate lastprivate on combined
teams distribute parallel for simd even to distribute and teams
construct. For OMP_CLAUSE_DEPEND add missing break at the end of
OMP_CLAUSE_DEPEND_SINK case.
(omp_notice_variable): Use lang_hooks.decls.omp_scalar_p.
(omp_no_lastprivate): Removed.
(gimplify_adjust_omp_clauses): Remove omp_no_lastprivate callers.
(gimplify_omp_for): Likewise.
(computable_teams_clause): Fail for automatic vars from current
function not yet seen in bind expr.
* langhooks.c (lhd_omp_scalar_p): New function.
* langhooks.h (struct lang_hooks_for_decls): Add omp_scalar_p.
* varpool.c (varpool_node::get_create): Set node->offloading
even for DECL_EXTERNAL decls.
* langhooks-def.h (lhd_omp_scalar_p): New prototype.
(LANG_HOOKS_OMP_SCALAR_P): Define.
(LANG_HOOKS_DECLS): Use it.
gcc/fortran/
* openmp.c (gfc_free_omp_clauses): Free critical_name, grainsize,
hint, num_tasks, priority and if_exprs.
(gfc_match_omp_to_link, gfc_match_omp_depend_sink): New functions.
(enum omp_mask1, enum omp_mask2): New enums.
Change all OMP_CLAUSE_* defines into enum values, and change their
values from ((uint64_t) 1 << bit) to just bit.
(omp_mask, omp_inv_mask): New classes. Add ctors and operators.
(gfc_match_omp_clauses): Change mask argument from uint64_t to
const omp_mask. Assert OMP_MASK1_LAST and OMP_MASK2_LAST are
at most 64. Move delete clause handling to where it
alphabetically belongs. Parse defaultmap, grainsize, hint,
is_device_ptr, nogroup, nowait, num_tasks, priority, simd, threads
and use_device_ptr clauses. Parse if clause modifier. Parse map
clause always modifier, and release and delete kinds. Parse ordered
clause with argument. Parse schedule clause modifiers. Differentiate
device clause parsing based on openacc flag. Guard link clause
parsing with openacc flag. Add support for parsing
linear clause modifiers. Parse depend(source) and depend(sink: ...).
Use gfc_match_omp_to_link for to and link clauses in declare target
construct.
(match_acc): Change mask type from uint64_t to const omp_mask.
(OMP_SINGLE_CLAUSES, OMP_ORDERED_CLAUSES,
OMP_DECLARE_TARGET_CLAUSES, OMP_TASKLOOP_CLAUSES,
OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES): Define.
(OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES,
OACC_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES, OACC_DECLARE_CLAUSES,
OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES, OACC_WAIT_CLAUSES,
OACC_ROUTINE_CLAUSES, OMP_PARALLEL_CLAUSES, OMP_DECLARE_SIMD_CLAUSES,
OMP_SECTIONS_CLAUSES, OMP_TEAMS_CLAUSES, OMP_DISTRIBUTE_CLAUSES):
Replace first or only OMP_CLAUSE_* value in bitset with
omp_mask (OMP_CLAUSE_*).
(OMP_DO_CLAUSES): Likewise. Add OMP_CLAUSE_LINEAR.
(OMP_SIMD_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_SIMDLEN.
(OACC_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Replace OMP_CLAUSE_OACC_DEVICE
with OMP_CLAUSE_DEVICE.
(OMP_TASK_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_PRIORITY.
(OMP_TARGET_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND,
OMP_CLAUSE_NOWAIT, OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_DEFAULTMAP and OMP_CLAUSE_IS_DEVICE_PTR.
(OMP_TARGET_DATA_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_USE_DEVICE_PTR.
(OMP_TARGET_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value
in bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND and
OMP_CLAUSE_NOWAIT.
(match_omp): Change mask argument from unsigned int to
const omp_mask.
(gfc_match_omp_critical): Parse optional clauses and use omp_clauses
union member instead of omp_name.
(gfc_match_omp_end_critical): New function.
(gfc_match_omp_distribute_parallel_do): Remove ordered and linear
clauses from the mask.
(gfc_match_omp_distribute_parallel_do_simd): Use
& ~(omp_mask (OMP_CLAUSE_*)) instead of & ~OMP_CLAUSE_*.
(gfc_match_omp_target_teams_distribute_parallel_do_simd): Likewise.
(gfc_match_omp_teams_distribute_parallel_do_simd): Likewise.
(gfc_match_omp_do_simd): Likewise. Don't remove ordered clause from
the mask.
(gfc_match_omp_parallel_do_simd): Likewise.
(gfc_match_omp_target_teams_distribute_parallel_do): Likewise.
(gfc_match_omp_teams_distribute_parallel_do): Likewise.
(gfc_match_omp_declare_simd): If not using the form with
(proc-name), require space before first clause. Make (proc-name)
optional. If not present, set proc_name to NULL.
(gfc_match_omp_declare_target): Rewritten for OpenMP 4.5.
(gfc_match_omp_single): Use OMP_SINGLE_CLAUSES.
(gfc_match_omp_task, gfc_match_omp_taskwait, gfc_match_omp_taskyield):
Move around to where they belong alphabetically.
(gfc_match_omp_target_enter_data, gfc_match_omp_target_exit_data,
gfc_match_omp_target_parallel, gfc_match_omp_target_parallel_do,
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd):
New functions.
(gfc_match_omp_ordered): Parse clauses.
(gfc_match_omp_ordered_depend): New function.
(gfc_match_omp_cancel, gfc_match_omp_end_single): Use
omp_mask (OMP_CLAUSE_*) instead of OMP_CLAUSE_*.
(resolve_oacc_scalar_int_expr): Renamed to ...
(resolve_scalar_int_expr): ... this. Fix up formatting.
(resolve_oacc_positive_int_expr): Renamed to ...
(resolve_positive_int_expr): ... this. Fix up formatting.
(resolve_nonnegative_int_expr): New function.
(resolve_omp_clauses): Adjust callers, use the above functions
even for OpenMP clauses, add handling of new OpenMP 4.5 clauses.
Require orderedc >= collapse if specified. Handle depend(sink:)
and depend(source) restrictions. Disallow linear clause when
orderedc is non-zero. Diagnose linear clause modifiers when not in
declare simd. Only check for integer type if ref modifier
is not used. Remove diagnostics for required VALUE attribute.
Diagnose VALUE attribute with ref or uval modifiers. Allow
non-constant linear-step, if it is a dummy argument alone and is
mentioned in uniform clause. Diagnose map kinds not allowed
for various constructs. Diagnose target {enter ,exit ,}data without
any map clauses. Add dummy OMP_LIST_IS_DEVICE_PTR and
OMP_LIST_USE_DEVICE_PTR cases.
(gfc_resolve_omp_do_blocks): Set omp_current_do_collapse to orderedc
if non-zero.
(gfc_resolve_omp_parallel_blocks): Handle new OpenMP 4.5 constructs,
replace underscores with spaces in a few construct names.
(resolve_omp_do): Set collapse to orderedc if non-zero. Handle new
OpenMP 4.5 constructs.
(resolve_oacc_loop_blocks): Call resolve_positive_int_expr instead
of resolve_oacc_positive_int_expr.
(gfc_resolve_omp_directive): Handle new OpenMP 4.5 constructs.
(gfc_resolve_omp_declare_simd): Allow ods->proc_name to be NULL.
* trans-openmp.c (gfc_omp_scalar_p): New function.
(doacross_steps): New variable.
(gfc_trans_omp_clauses): Handle new OpenMP 4.5 clauses and new clause
modifiers.
(gfc_trans_omp_critical): Adjust EXEC_OMP_CRITICAL handling.
(gfc_trans_omp_do): Handle doacross loops. Clear sched_simd flag.
Handle EXEC_OMP_TASKLOOP.
(gfc_trans_omp_ordered): Translate omp clauses, allow NULL
code->block.
(GFC_OMP_SPLIT_TASKLOOP, GFC_OMP_MASK_TASKLOOP): New enum constants.
(gfc_split_omp_clauses): Copy orderedc together with ordered. Change
firstprivate and lastprivate handling for OpenMP 4.5.
Handle EXEC_OMP_TARGET_SIMD, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
and EXEC_OMP_TASKLOOP{,_SIMD}. Add handling for new OpenMP 4.5
clauses and clause modifiers and handle if clause without/with
modifiers.
(gfc_trans_omp_teams): Add omp_clauses argument, add it to other
teams clauses. Don't wrap into OMP_TEAMS if -fopenmp-simd.
(gfc_trans_omp_target): For -fopenmp, translate num_teams and
thread_limit clauses on combined target teams early and pass to
gfc_trans_omp_teams. Set OMP_TARGET_COMBINED if needed.
Handle EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD} and
EXEC_OMP_TARGET_SIMD.
(gfc_trans_omp_taskloop, gfc_trans_omp_target_enter_data,
gfc_trans_omp_target_exit_data): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TARGET_{ENTER,EXIT}_DATA
EXEC_OMP_TASKLOOP{,_SIMD}, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
and EXEC_OMP_TARGET_SIMD. Adjust gfc_trans_omp_teams caller.
* symbol.c (check_conflict): Handle omp_declare_target_link.
(gfc_add_omp_declare_target_link): New function.
(gfc_copy_attr): Copy omp_declare_target_link.
* dump-parse-tree.c (show_omp_namelist): Handle OMP_DEPEND_SINK_FIRST
depend_op. Print linear clause modifiers.
(show_omp_clauses): Adjust for OpenMP 4.5 clause changes.
(show_omp_node): Print clauses for EXEC_OMP_ORDERED. Allow NULL
c->block for EXEC_OMP_ORDERED. Formatting fixes. Adjust handling of
EXEC_OMP_CRITICAL, handle new OpenMP 4.5 constructs and some
forgotten OpenMP 4.0 constructs.
(show_code_node): Handle new OpenMP 4.5 constructs and some forgotten
OpenMP 4.0 constructs.
* gfortran.h (symbol_attribute): Add omp_declare_target_link bitfield.
(struct gfc_omp_namelist): Add u.common and u.linear_op fields.
(struct gfc_common_head): Change omp_declare_target into bitfield.
Add omp_declare_target_link bitfield.
(gfc_add_omp_declare_target_link): New prototype.
(enum gfc_statement): Add ST_OMP_TARGET_PARALLEL,
ST_OMP_END_TARGET_PARALLEL, ST_OMP_TARGET_PARALLEL_DO,
ST_OMP_END_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_END_TARGET_PARALLEL_DO_SIMD, ST_OMP_TARGET_ENTER_DATA,
ST_OMP_TARGET_EXIT_DATA, ST_OMP_TARGET_SIMD, ST_OMP_END_TARGET_SIMD,
ST_OMP_TASKLOOP, ST_OMP_END_TASKLOOP, ST_OMP_TASKLOOP_SIMD,
ST_OMP_END_TASKLOOP_SIMD and ST_OMP_ORDERED_DEPEND.
(enum gfc_omp_depend_op): Add OMP_DEPEND_SINK_FIRST and
OMP_DEPEND_SINK.
(enum gfc_omp_linear_op): New.
(struct gfc_omp_clauses): Add critical_name, depend_source,
orderedc, defaultmap, nogroup, sched_simd, sched_monotonic,
sched_nonmonotonic, simd, threads, grainsize, hint, num_tasks,
priority and if_exprs fields.
(enum gfc_exec_op): Add EXEC_OMP_END_CRITICAL,
EXEC_OMP_TARGET_ENTER_DATA, EXEC_OMP_TARGET_EXIT_DATA,
EXEC_OMP_TARGET_PARALLEL, EXEC_OMP_TARGET_PARALLEL_DO,
EXEC_OMP_TARGET_PARALLEL_DO_SIMD, EXEC_OMP_TARGET_SIMD,
EXEC_OMP_TASKLOOP, EXEC_OMP_TASKLOOP_SIMD.
(enum gfc_omp_map_op): Add OMP_MAP_RELEASE,
OMP_MAP_ALWAYS_TO, OMP_MAP_ALWAYS_FROM and OMP_MAP_ALWAYS_TOFROM.
(OMP_LIST_IS_DEVICE_PTR, OMP_LIST_USE_DEVICE_PTR): New.
(enum gfc_omp_if_kind): New.
* module.c (enum ab_attribute): Add AB_OMP_DECLARE_TARGET_LINK.
(attr_bits): Add AB_OMP_DECLARE_TARGET_LINK entry.
(mio_symbol_attribute): Save and restore omp_declare_target_link bit.
* trans.h (gfc_omp_scalar_p): New prototype.
* frontend-passes.c (gfc_code_walker): Handle new OpenMP 4.5
expressions.
* trans.c (trans_code): Handle new OpenMP 4.5 constructs.
* resolve.c (gfc_resolve_blocks): Likewise.
(gfc_resolve_code): Likewise.
* f95-lang.c (LANG_HOOKS_OMP_SCALAR_P): Redefine to gfc_omp_scalar_p.
(gfc_attribute_table): Add "omp declare target link".
* st.c (gfc_free_statement): Handle EXEC_OMP_END_CRITICAL like
EXEC_OMP_CRITICAL before, free clauses for EXEC_OMP_CRITICAL
and new OpenMP 4.5 constructs. Free omp clauses even for
EXEC_OMP_ORDERED.
* match.c (match_exit_cycle): Rename collapse variable to count,
set it to orderedc if non-zero, instead of collapse.
* trans-decl.c (add_attributes_to_decl): Add "omp declare target link"
instead of "omp declare target" for omp_declare_target_link.
* trans-common.c (build_common_decl): Likewise.
* match.h (gfc_match_omp_target_enter_data,
gfc_match_omp_target_exit_data, gfc_match_omp_target_parallel,
gfc_match_omp_target_parallel_do,
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd,
gfc_match_omp_end_critical, gfc_match_omp_ordered_depend): New
prototypes.
* parse.c (decode_omp_directive): Use gfc_match_omp_end_critical
instead of gfc_match_omp_critical for !$omp end critical.
Handle new OpenMP 4.5 constructs. If ordered directive has
depend clause as the first of the clauses, use
gfc_match_omp_ordered_depend and ST_OMP_ORDERED_DEPEND instead of
gfc_match_omp_ordered and ST_OMP_ORDERED.
(case_executable): Add ST_OMP_TARGET_ENTER_DATA,
ST_OMP_TARGET_EXIT_DATA and ST_OMP_ORDERED_DEPEND cases.
(case_exec_markers): Add ST_OMP_TARGET_PARALLEL,
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_TARGET_SIMD, ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD cases.
(gfc_ascii_statement): Handle new OpenMP 4.5 constructs.
(parse_omp_do): Handle ST_OMP_TARGET_PARALLEL_DO,
ST_OMP_TARGET_PARALLEL_DO_SIMD, ST_OMP_TASKLOOP and
ST_OMP_TASKLOOP_SIMD.
(parse_omp_structured_block): Handle EXEC_OMP_END_CRITICAL instead
of EXEC_OMP_CRITICAL, adjust for EXEC_OMP_CRITICAL having omp clauses
now.
(parse_executable): Handle ST_OMP_TARGET_PARALLEL,
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD.
gcc/testsuite/
* gfortran.dg/gomp/pr77516.f90: Add dg-warning.
* gfortran.dg/gomp/target1.f90: Remove ordered clause where it is
no longer allowed and corresponding ordered construct.
* gfortran.dg/gomp/linear-1.f90: New test.
* gfortran.dg/gomp/declare-simd-2.f90: New test.
* gfortran.dg/gomp/declare-target-1.f90: New test.
* gfortran.dg/gomp/declare-target-2.f90: New test.
libgomp/
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90
(fib_wrapper): Add map(from: x) clause.
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90
(e_53_2): Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-4.f90
(accum): Add map(tmp) clause.
* testsuite/libgomp.fortran/examples-4/declare_target-5.f90
(accum): Add map(tofrom: tmp) clause.
* testsuite/libgomp.fortran/examples-4/target_data-3.f90
(gramSchmidt): Likewise.
* testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add
map(tofrom: sum) clause.
* testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice
map (alloc: a, l) clause. Add defaultmap(tofrom: scalar) clause.
* testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause
only allowed on the loop iterator.
* testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause.
* testsuite/libgomp.fortran/taskloop2.f90: New test.
* testsuite/libgomp.fortran/taskloop4.f90: New test.
* testsuite/libgomp.fortran/doacross1.f90: New test.
* testsuite/libgomp.fortran/doacross3.f90: New test.
* testsuite/libgomp.fortran/taskloop1.f90: New test.
* testsuite/libgomp.fortran/taskloop3.f90: New test.
* testsuite/libgomp.fortran/doacross2.f90: New test.
* testsuite/libgomp.c/doacross-1.c (main): Add missing
#pragma omp atomic read.
* testsuite/libgomp.c/doacross-2.c (main): Likewise.
* testsuite/libgomp.c/doacross-3.c (main): Likewise.
From-SVN: r242037
2016-11-10 12:38:05 +01:00
|
|
|
|
2016-11-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2016-11-10 18:05:18 +01:00
|
|
|
|
* omp_lib.f90.in (openmp_version): Change to 201511 from 201307.
|
|
|
|
|
* omp_lib.h.in (openmp_version): Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-1.f: Expect 201511 instead
|
|
|
|
|
of 201307.
|
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
|
|
|
|
|
|
omp-low.c (lower_omp_target): Fix up argument to is_reference.
gcc/
* omp-low.c (lower_omp_target): Fix up argument to is_reference.
(expand_omp_ordered_sink): Handle TREE_PURPOSE of deps being
TRUNC_DIV_EXPR.
* gimplify.c (gimplify_scan_omp_clauses): Likewise. Set
ctx->target_map_scalars_firstprivate on OMP_TARGET even for Fortran.
Remove omp_no_lastprivate callers. Propagate lastprivate on combined
teams distribute parallel for simd even to distribute and teams
construct. For OMP_CLAUSE_DEPEND add missing break at the end of
OMP_CLAUSE_DEPEND_SINK case.
(omp_notice_variable): Use lang_hooks.decls.omp_scalar_p.
(omp_no_lastprivate): Removed.
(gimplify_adjust_omp_clauses): Remove omp_no_lastprivate callers.
(gimplify_omp_for): Likewise.
(computable_teams_clause): Fail for automatic vars from current
function not yet seen in bind expr.
* langhooks.c (lhd_omp_scalar_p): New function.
* langhooks.h (struct lang_hooks_for_decls): Add omp_scalar_p.
* varpool.c (varpool_node::get_create): Set node->offloading
even for DECL_EXTERNAL decls.
* langhooks-def.h (lhd_omp_scalar_p): New prototype.
(LANG_HOOKS_OMP_SCALAR_P): Define.
(LANG_HOOKS_DECLS): Use it.
gcc/fortran/
* openmp.c (gfc_free_omp_clauses): Free critical_name, grainsize,
hint, num_tasks, priority and if_exprs.
(gfc_match_omp_to_link, gfc_match_omp_depend_sink): New functions.
(enum omp_mask1, enum omp_mask2): New enums.
Change all OMP_CLAUSE_* defines into enum values, and change their
values from ((uint64_t) 1 << bit) to just bit.
(omp_mask, omp_inv_mask): New classes. Add ctors and operators.
(gfc_match_omp_clauses): Change mask argument from uint64_t to
const omp_mask. Assert OMP_MASK1_LAST and OMP_MASK2_LAST are
at most 64. Move delete clause handling to where it
alphabetically belongs. Parse defaultmap, grainsize, hint,
is_device_ptr, nogroup, nowait, num_tasks, priority, simd, threads
and use_device_ptr clauses. Parse if clause modifier. Parse map
clause always modifier, and release and delete kinds. Parse ordered
clause with argument. Parse schedule clause modifiers. Differentiate
device clause parsing based on openacc flag. Guard link clause
parsing with openacc flag. Add support for parsing
linear clause modifiers. Parse depend(source) and depend(sink: ...).
Use gfc_match_omp_to_link for to and link clauses in declare target
construct.
(match_acc): Change mask type from uint64_t to const omp_mask.
(OMP_SINGLE_CLAUSES, OMP_ORDERED_CLAUSES,
OMP_DECLARE_TARGET_CLAUSES, OMP_TASKLOOP_CLAUSES,
OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES): Define.
(OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES,
OACC_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES, OACC_DECLARE_CLAUSES,
OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES, OACC_WAIT_CLAUSES,
OACC_ROUTINE_CLAUSES, OMP_PARALLEL_CLAUSES, OMP_DECLARE_SIMD_CLAUSES,
OMP_SECTIONS_CLAUSES, OMP_TEAMS_CLAUSES, OMP_DISTRIBUTE_CLAUSES):
Replace first or only OMP_CLAUSE_* value in bitset with
omp_mask (OMP_CLAUSE_*).
(OMP_DO_CLAUSES): Likewise. Add OMP_CLAUSE_LINEAR.
(OMP_SIMD_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_SIMDLEN.
(OACC_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Replace OMP_CLAUSE_OACC_DEVICE
with OMP_CLAUSE_DEVICE.
(OMP_TASK_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_PRIORITY.
(OMP_TARGET_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND,
OMP_CLAUSE_NOWAIT, OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_DEFAULTMAP and OMP_CLAUSE_IS_DEVICE_PTR.
(OMP_TARGET_DATA_CLAUSES): Replace first or only OMP_CLAUSE_* value in
bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_USE_DEVICE_PTR.
(OMP_TARGET_UPDATE_CLAUSES): Replace first or only OMP_CLAUSE_* value
in bitset with omp_mask (OMP_CLAUSE_*). Add OMP_CLAUSE_DEPEND and
OMP_CLAUSE_NOWAIT.
(match_omp): Change mask argument from unsigned int to
const omp_mask.
(gfc_match_omp_critical): Parse optional clauses and use omp_clauses
union member instead of omp_name.
(gfc_match_omp_end_critical): New function.
(gfc_match_omp_distribute_parallel_do): Remove ordered and linear
clauses from the mask.
(gfc_match_omp_distribute_parallel_do_simd): Use
& ~(omp_mask (OMP_CLAUSE_*)) instead of & ~OMP_CLAUSE_*.
(gfc_match_omp_target_teams_distribute_parallel_do_simd): Likewise.
(gfc_match_omp_teams_distribute_parallel_do_simd): Likewise.
(gfc_match_omp_do_simd): Likewise. Don't remove ordered clause from
the mask.
(gfc_match_omp_parallel_do_simd): Likewise.
(gfc_match_omp_target_teams_distribute_parallel_do): Likewise.
(gfc_match_omp_teams_distribute_parallel_do): Likewise.
(gfc_match_omp_declare_simd): If not using the form with
(proc-name), require space before first clause. Make (proc-name)
optional. If not present, set proc_name to NULL.
(gfc_match_omp_declare_target): Rewritten for OpenMP 4.5.
(gfc_match_omp_single): Use OMP_SINGLE_CLAUSES.
(gfc_match_omp_task, gfc_match_omp_taskwait, gfc_match_omp_taskyield):
Move around to where they belong alphabetically.
(gfc_match_omp_target_enter_data, gfc_match_omp_target_exit_data,
gfc_match_omp_target_parallel, gfc_match_omp_target_parallel_do,
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd):
New functions.
(gfc_match_omp_ordered): Parse clauses.
(gfc_match_omp_ordered_depend): New function.
(gfc_match_omp_cancel, gfc_match_omp_end_single): Use
omp_mask (OMP_CLAUSE_*) instead of OMP_CLAUSE_*.
(resolve_oacc_scalar_int_expr): Renamed to ...
(resolve_scalar_int_expr): ... this. Fix up formatting.
(resolve_oacc_positive_int_expr): Renamed to ...
(resolve_positive_int_expr): ... this. Fix up formatting.
(resolve_nonnegative_int_expr): New function.
(resolve_omp_clauses): Adjust callers, use the above functions
even for OpenMP clauses, add handling of new OpenMP 4.5 clauses.
Require orderedc >= collapse if specified. Handle depend(sink:)
and depend(source) restrictions. Disallow linear clause when
orderedc is non-zero. Diagnose linear clause modifiers when not in
declare simd. Only check for integer type if ref modifier
is not used. Remove diagnostics for required VALUE attribute.
Diagnose VALUE attribute with ref or uval modifiers. Allow
non-constant linear-step, if it is a dummy argument alone and is
mentioned in uniform clause. Diagnose map kinds not allowed
for various constructs. Diagnose target {enter ,exit ,}data without
any map clauses. Add dummy OMP_LIST_IS_DEVICE_PTR and
OMP_LIST_USE_DEVICE_PTR cases.
(gfc_resolve_omp_do_blocks): Set omp_current_do_collapse to orderedc
if non-zero.
(gfc_resolve_omp_parallel_blocks): Handle new OpenMP 4.5 constructs,
replace underscores with spaces in a few construct names.
(resolve_omp_do): Set collapse to orderedc if non-zero. Handle new
OpenMP 4.5 constructs.
(resolve_oacc_loop_blocks): Call resolve_positive_int_expr instead
of resolve_oacc_positive_int_expr.
(gfc_resolve_omp_directive): Handle new OpenMP 4.5 constructs.
(gfc_resolve_omp_declare_simd): Allow ods->proc_name to be NULL.
* trans-openmp.c (gfc_omp_scalar_p): New function.
(doacross_steps): New variable.
(gfc_trans_omp_clauses): Handle new OpenMP 4.5 clauses and new clause
modifiers.
(gfc_trans_omp_critical): Adjust EXEC_OMP_CRITICAL handling.
(gfc_trans_omp_do): Handle doacross loops. Clear sched_simd flag.
Handle EXEC_OMP_TASKLOOP.
(gfc_trans_omp_ordered): Translate omp clauses, allow NULL
code->block.
(GFC_OMP_SPLIT_TASKLOOP, GFC_OMP_MASK_TASKLOOP): New enum constants.
(gfc_split_omp_clauses): Copy orderedc together with ordered. Change
firstprivate and lastprivate handling for OpenMP 4.5.
Handle EXEC_OMP_TARGET_SIMD, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
and EXEC_OMP_TASKLOOP{,_SIMD}. Add handling for new OpenMP 4.5
clauses and clause modifiers and handle if clause without/with
modifiers.
(gfc_trans_omp_teams): Add omp_clauses argument, add it to other
teams clauses. Don't wrap into OMP_TEAMS if -fopenmp-simd.
(gfc_trans_omp_target): For -fopenmp, translate num_teams and
thread_limit clauses on combined target teams early and pass to
gfc_trans_omp_teams. Set OMP_TARGET_COMBINED if needed.
Handle EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD} and
EXEC_OMP_TARGET_SIMD.
(gfc_trans_omp_taskloop, gfc_trans_omp_target_enter_data,
gfc_trans_omp_target_exit_data): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TARGET_{ENTER,EXIT}_DATA
EXEC_OMP_TASKLOOP{,_SIMD}, EXEC_OMP_TARGET_PARALLEL{,_DO,_DO_SIMD}
and EXEC_OMP_TARGET_SIMD. Adjust gfc_trans_omp_teams caller.
* symbol.c (check_conflict): Handle omp_declare_target_link.
(gfc_add_omp_declare_target_link): New function.
(gfc_copy_attr): Copy omp_declare_target_link.
* dump-parse-tree.c (show_omp_namelist): Handle OMP_DEPEND_SINK_FIRST
depend_op. Print linear clause modifiers.
(show_omp_clauses): Adjust for OpenMP 4.5 clause changes.
(show_omp_node): Print clauses for EXEC_OMP_ORDERED. Allow NULL
c->block for EXEC_OMP_ORDERED. Formatting fixes. Adjust handling of
EXEC_OMP_CRITICAL, handle new OpenMP 4.5 constructs and some
forgotten OpenMP 4.0 constructs.
(show_code_node): Handle new OpenMP 4.5 constructs and some forgotten
OpenMP 4.0 constructs.
* gfortran.h (symbol_attribute): Add omp_declare_target_link bitfield.
(struct gfc_omp_namelist): Add u.common and u.linear_op fields.
(struct gfc_common_head): Change omp_declare_target into bitfield.
Add omp_declare_target_link bitfield.
(gfc_add_omp_declare_target_link): New prototype.
(enum gfc_statement): Add ST_OMP_TARGET_PARALLEL,
ST_OMP_END_TARGET_PARALLEL, ST_OMP_TARGET_PARALLEL_DO,
ST_OMP_END_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_END_TARGET_PARALLEL_DO_SIMD, ST_OMP_TARGET_ENTER_DATA,
ST_OMP_TARGET_EXIT_DATA, ST_OMP_TARGET_SIMD, ST_OMP_END_TARGET_SIMD,
ST_OMP_TASKLOOP, ST_OMP_END_TASKLOOP, ST_OMP_TASKLOOP_SIMD,
ST_OMP_END_TASKLOOP_SIMD and ST_OMP_ORDERED_DEPEND.
(enum gfc_omp_depend_op): Add OMP_DEPEND_SINK_FIRST and
OMP_DEPEND_SINK.
(enum gfc_omp_linear_op): New.
(struct gfc_omp_clauses): Add critical_name, depend_source,
orderedc, defaultmap, nogroup, sched_simd, sched_monotonic,
sched_nonmonotonic, simd, threads, grainsize, hint, num_tasks,
priority and if_exprs fields.
(enum gfc_exec_op): Add EXEC_OMP_END_CRITICAL,
EXEC_OMP_TARGET_ENTER_DATA, EXEC_OMP_TARGET_EXIT_DATA,
EXEC_OMP_TARGET_PARALLEL, EXEC_OMP_TARGET_PARALLEL_DO,
EXEC_OMP_TARGET_PARALLEL_DO_SIMD, EXEC_OMP_TARGET_SIMD,
EXEC_OMP_TASKLOOP, EXEC_OMP_TASKLOOP_SIMD.
(enum gfc_omp_map_op): Add OMP_MAP_RELEASE,
OMP_MAP_ALWAYS_TO, OMP_MAP_ALWAYS_FROM and OMP_MAP_ALWAYS_TOFROM.
(OMP_LIST_IS_DEVICE_PTR, OMP_LIST_USE_DEVICE_PTR): New.
(enum gfc_omp_if_kind): New.
* module.c (enum ab_attribute): Add AB_OMP_DECLARE_TARGET_LINK.
(attr_bits): Add AB_OMP_DECLARE_TARGET_LINK entry.
(mio_symbol_attribute): Save and restore omp_declare_target_link bit.
* trans.h (gfc_omp_scalar_p): New prototype.
* frontend-passes.c (gfc_code_walker): Handle new OpenMP 4.5
expressions.
* trans.c (trans_code): Handle new OpenMP 4.5 constructs.
* resolve.c (gfc_resolve_blocks): Likewise.
(gfc_resolve_code): Likewise.
* f95-lang.c (LANG_HOOKS_OMP_SCALAR_P): Redefine to gfc_omp_scalar_p.
(gfc_attribute_table): Add "omp declare target link".
* st.c (gfc_free_statement): Handle EXEC_OMP_END_CRITICAL like
EXEC_OMP_CRITICAL before, free clauses for EXEC_OMP_CRITICAL
and new OpenMP 4.5 constructs. Free omp clauses even for
EXEC_OMP_ORDERED.
* match.c (match_exit_cycle): Rename collapse variable to count,
set it to orderedc if non-zero, instead of collapse.
* trans-decl.c (add_attributes_to_decl): Add "omp declare target link"
instead of "omp declare target" for omp_declare_target_link.
* trans-common.c (build_common_decl): Likewise.
* match.h (gfc_match_omp_target_enter_data,
gfc_match_omp_target_exit_data, gfc_match_omp_target_parallel,
gfc_match_omp_target_parallel_do,
gfc_match_omp_target_parallel_do_simd, gfc_match_omp_target_simd,
gfc_match_omp_taskloop, gfc_match_omp_taskloop_simd,
gfc_match_omp_end_critical, gfc_match_omp_ordered_depend): New
prototypes.
* parse.c (decode_omp_directive): Use gfc_match_omp_end_critical
instead of gfc_match_omp_critical for !$omp end critical.
Handle new OpenMP 4.5 constructs. If ordered directive has
depend clause as the first of the clauses, use
gfc_match_omp_ordered_depend and ST_OMP_ORDERED_DEPEND instead of
gfc_match_omp_ordered and ST_OMP_ORDERED.
(case_executable): Add ST_OMP_TARGET_ENTER_DATA,
ST_OMP_TARGET_EXIT_DATA and ST_OMP_ORDERED_DEPEND cases.
(case_exec_markers): Add ST_OMP_TARGET_PARALLEL,
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_TARGET_SIMD, ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD cases.
(gfc_ascii_statement): Handle new OpenMP 4.5 constructs.
(parse_omp_do): Handle ST_OMP_TARGET_PARALLEL_DO,
ST_OMP_TARGET_PARALLEL_DO_SIMD, ST_OMP_TASKLOOP and
ST_OMP_TASKLOOP_SIMD.
(parse_omp_structured_block): Handle EXEC_OMP_END_CRITICAL instead
of EXEC_OMP_CRITICAL, adjust for EXEC_OMP_CRITICAL having omp clauses
now.
(parse_executable): Handle ST_OMP_TARGET_PARALLEL,
ST_OMP_TARGET_PARALLEL_DO, ST_OMP_TARGET_PARALLEL_DO_SIMD,
ST_OMP_TASKLOOP and ST_OMP_TASKLOOP_SIMD.
gcc/testsuite/
* gfortran.dg/gomp/pr77516.f90: Add dg-warning.
* gfortran.dg/gomp/target1.f90: Remove ordered clause where it is
no longer allowed and corresponding ordered construct.
* gfortran.dg/gomp/linear-1.f90: New test.
* gfortran.dg/gomp/declare-simd-2.f90: New test.
* gfortran.dg/gomp/declare-target-1.f90: New test.
* gfortran.dg/gomp/declare-target-2.f90: New test.
libgomp/
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90
(fib_wrapper): Add map(from: x) clause.
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90
(e_53_2): Likewise.
* testsuite/libgomp.fortran/examples-4/declare_target-4.f90
(accum): Add map(tmp) clause.
* testsuite/libgomp.fortran/examples-4/declare_target-5.f90
(accum): Add map(tofrom: tmp) clause.
* testsuite/libgomp.fortran/examples-4/target_data-3.f90
(gramSchmidt): Likewise.
* testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add
map(tofrom: sum) clause.
* testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice
map (alloc: a, l) clause. Add defaultmap(tofrom: scalar) clause.
* testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause
only allowed on the loop iterator.
* testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause.
* testsuite/libgomp.fortran/taskloop2.f90: New test.
* testsuite/libgomp.fortran/taskloop4.f90: New test.
* testsuite/libgomp.fortran/doacross1.f90: New test.
* testsuite/libgomp.fortran/doacross3.f90: New test.
* testsuite/libgomp.fortran/taskloop1.f90: New test.
* testsuite/libgomp.fortran/taskloop3.f90: New test.
* testsuite/libgomp.fortran/doacross2.f90: New test.
* testsuite/libgomp.c/doacross-1.c (main): Add missing
#pragma omp atomic read.
* testsuite/libgomp.c/doacross-2.c (main): Likewise.
* testsuite/libgomp.c/doacross-3.c (main): Likewise.
From-SVN: r242037
2016-11-10 12:38:05 +01:00
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90
|
|
|
|
|
(fib_wrapper): Add map(from: x) clause.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90
|
|
|
|
|
(e_53_2): Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-4.f90
|
|
|
|
|
(accum): Add map(tmp) clause.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-5.f90
|
|
|
|
|
(accum): Add map(tofrom: tmp) clause.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-3.f90
|
|
|
|
|
(gramSchmidt): Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-2.f90 (dotprod): Add
|
|
|
|
|
map(tofrom: sum) clause.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn5.f90 (foo): Add twice
|
|
|
|
|
map (alloc: a, l) clause. Add defaultmap(tofrom: scalar) clause.
|
|
|
|
|
* testsuite/libgomp.fortran/pr66199-2.f90: Adjust for linear clause
|
|
|
|
|
only allowed on the loop iterator.
|
|
|
|
|
* testsuite/libgomp.fortran/target4.f90 (foo): Add map(t) clause.
|
|
|
|
|
* testsuite/libgomp.fortran/taskloop2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/taskloop4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/doacross1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/doacross3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/taskloop1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/taskloop3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/doacross2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.c/doacross-1.c (main): Add missing
|
|
|
|
|
#pragma omp atomic read.
|
|
|
|
|
* testsuite/libgomp.c/doacross-2.c (main): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/doacross-3.c (main): Likewise.
|
|
|
|
|
|
2016-11-02 23:10:02 +01:00
|
|
|
|
2016-11-02 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Nathan Sidwell <nathan@acm.org>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Interrogate board attributes
|
|
|
|
|
to determine default geometry.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Set gang
|
|
|
|
|
dimension.
|
|
|
|
|
|
2016-11-01 17:47:50 +01:00
|
|
|
|
2016-11-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* hashtab.h: Use standard GPLv3 with runtime exception
|
|
|
|
|
boilerplate.
|
|
|
|
|
|
2016-10-27 19:36:36 +02:00
|
|
|
|
2016-10-27 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
* oacc-init.c (goacc_new_thread): Use sizeof of the appropriate
|
|
|
|
|
size when allocating new thread.
|
|
|
|
|
|
2016-09-14 19:46:59 +02:00
|
|
|
|
2016-09-14 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/atomic-3.C: Use -Wno-deprecated.
|
|
|
|
|
|
2016-08-19 17:30:33 +02:00
|
|
|
|
2016-08-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/71014
|
|
|
|
|
* testsuite/libgomp.fortran/pr71014.f90: New test.
|
|
|
|
|
|
2016-08-18 16:46:19 +02:00
|
|
|
|
2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/70895
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-7.f90: Add explicit
|
|
|
|
|
firstprivate clauses.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Remove explicit
|
|
|
|
|
copy clauses.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-flt.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-dbl.c: Likewise.
|
|
|
|
|
|
2016-08-14 20:19:10 +02:00
|
|
|
|
2016-08-14 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/70598
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/host_data-1.f90: New test.
|
|
|
|
|
|
2016-08-08 21:50:29 +02:00
|
|
|
|
2016-08-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/58706
|
|
|
|
|
* testsuite/libgomp.c++/pr58706.C: New test.
|
|
|
|
|
|
2016-08-04 15:34:57 +02:00
|
|
|
|
2016-08-04 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2016-08-04 15:35:10 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.
|
|
|
|
|
|
2016-08-04 15:34:57 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
|
|
|
|
|
test, and don't hardcode -O0.
|
|
|
|
|
|
2016-08-03 19:26:51 +02:00
|
|
|
|
2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/crash-1.c: New.
|
|
|
|
|
|
2016-07-15 16:13:48 +02:00
|
|
|
|
2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New
|
|
|
|
|
test.
|
|
|
|
|
|
2016-07-03 18:40:22 +02:00
|
|
|
|
2016-07-03 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/71734
|
|
|
|
|
* testsuite/libgomp.fortran/pr71734-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr71734-2.f90: Likewise.
|
|
|
|
|
|
2016-07-01 17:13:28 +02:00
|
|
|
|
2016-07-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/71717
|
|
|
|
|
* testsuite/libgomp.fortran/associate3.f90: New test.
|
|
|
|
|
|
2016-06-17 15:35:42 +02:00
|
|
|
|
2016-06-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/target-21.C: New test.
|
|
|
|
|
|
2016-06-16 21:03:05 +02:00
|
|
|
|
2016-06-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/target-20.C: New test.
|
|
|
|
|
|
2016-06-10 11:22:51 +02:00
|
|
|
|
2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/71373
|
|
|
|
|
* libgomp.oacc-c/nested-function-1.c: New file.
|
|
|
|
|
* libgomp.oacc-c/nested-function-2.c: Likewise.
|
|
|
|
|
* libgomp.oacc-fortran/nested-function-1.f90: Likewise.
|
|
|
|
|
* libgomp.oacc-fortran/nested-function-2.f90: Likewise.
|
|
|
|
|
* libgomp.oacc-fortran/nested-function-3.f90: Likewise.
|
|
|
|
|
|
2016-06-10 11:22:38 +02:00
|
|
|
|
2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/71381
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/cache-1.c: #include
|
|
|
|
|
"../../../gcc/testsuite/c-c++-common/goacc/cache-1.c".
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/cache-1.f95: New file.
|
|
|
|
|
|
2016-06-08 13:48:12 +02:00
|
|
|
|
2016-06-03 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-8.f90: New testcase.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-8.c: New testcase.
|
|
|
|
|
|
2016-06-01 22:37:44 +02:00
|
|
|
|
2016-06-01 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/70688
|
2016-07-15 17:28:26 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr70688.c: New file.
|
2016-06-01 22:37:44 +02:00
|
|
|
|
|
2016-05-26 21:12:27 +02:00
|
|
|
|
2016-05-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/doacross-1.c (main): Use schedule(static)
|
|
|
|
|
instead of invalid schedule(static, 0).
|
|
|
|
|
* testsuite/libgomp.c/doacross-2.c (main): Likewise.
|
|
|
|
|
|
2016-05-26 15:28:25 +02:00
|
|
|
|
2016-05-26 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-plugin.h (GOMP_PLUGIN_async_unmap_vars): Add int parameter.
|
|
|
|
|
* oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Add 'int async'
|
|
|
|
|
parameter, use to set async stream around call to gomp_unmap_vars,
|
|
|
|
|
call gomp_unmap_vars() with 'do_copyfrom' set to true.
|
|
|
|
|
* plugin/plugin-nvptx.c (struct ptx_event): Add 'int val' field.
|
|
|
|
|
(event_gc): Adjust event handling loop, collect PTX_EVT_ASYNC_CLEANUP
|
|
|
|
|
events and call GOMP_PLUGIN_async_unmap_vars() for each of them.
|
|
|
|
|
(event_add): Add int parameter, initialize 'val' field when
|
|
|
|
|
adding new ptx_event struct.
|
|
|
|
|
(nvptx_evec): Adjust event_add() call arguments.
|
|
|
|
|
(nvptx_host2dev): Likewise.
|
|
|
|
|
(nvptx_dev2host): Likewise.
|
|
|
|
|
(nvptx_wait_async): Likewise.
|
|
|
|
|
(nvptx_wait_all_async): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_register_async_cleanup): Add async parameter,
|
|
|
|
|
pass to event_add() call.
|
|
|
|
|
* oacc-host.c (host_openacc_register_async_cleanup): Add 'int async'
|
|
|
|
|
parameter.
|
|
|
|
|
* oacc-mem.c (gomp_acc_remove_pointer): Adjust async case to
|
|
|
|
|
call openacc.register_async_cleanup_func() hook.
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed): Likewise.
|
|
|
|
|
* target.c (gomp_copy_from_async): Delete function.
|
|
|
|
|
(gomp_map_vars): Remove async_refcount.
|
|
|
|
|
(gomp_unmap_vars): Likewise.
|
|
|
|
|
(gomp_load_image_to_device): Likewise.
|
|
|
|
|
(omp_target_associate_ptr): Likewise.
|
|
|
|
|
* libgomp.h (struct splay_tree_key_s): Remove async_refcount.
|
|
|
|
|
(acc_dispatch_t.register_async_cleanup_func): Add int parameter.
|
|
|
|
|
(gomp_copy_from_async): Remove.
|
|
|
|
|
|
target.c (gomp_device_copy): New function.
libgomp/
2016-05-26 Chung-Lin Tang <cltang@codesourcery.com>
* target.c (gomp_device_copy): New function.
(gomp_copy_host2dev): Likewise.
(gomp_copy_dev2host): Likewise.
(gomp_free_device_memory): Likewise.
(gomp_map_vars_existing): Adjust to call gomp_copy_host2dev.
(gomp_map_pointer): Likewise.
(gomp_map_vars): Adjust to call gomp_copy_host2dev, handle
NULL value from alloc_func plugin hook.
(gomp_unmap_tgt): Adjust to call gomp_free_device_memory.
(gomp_copy_from_async): Adjust to call gomp_copy_dev2host.
(gomp_unmap_vars): Likewise.
(gomp_update): Adjust to call gomp_copy_dev2host and
gomp_copy_host2dev functions.
(gomp_unload_image_from_device): Handle false value from
unload_image_func plugin hook.
(gomp_init_device): Handle false value from init_device_func
plugin hook.
(gomp_exit_data): Adjust to call gomp_copy_dev2host.
(omp_target_free): Adjust to call gomp_free_device_memory.
(omp_target_memcpy): Handle return values from host2dev_func,
dev2host_func, and dev2dev_func plugin hooks.
(omp_target_memcpy_rect_worker): Likewise.
(gomp_target_fini): Handle false value from fini_device_func
plugin hook.
* libgomp.h (struct gomp_device_descr): Adjust return type of
init_device_func, fini_device_func, unload_image_func, free_func,
dev2host_func,host2dev_func, and dev2dev_func plugin hooks to 'bool'.
* oacc-init.c (acc_shutdown_1): Handle false value from
fini_device_func plugin hook.
* oacc-host.c (host_init_device): Change return type to bool.
(host_fini_device): Likewise.
(host_unload_image): Likewise.
(host_free): Likewise.
(host_dev2host): Likewise.
(host_host2dev): Likewise.
* oacc-mem.c (acc_free): Handle plugin hook fatal error case.
(acc_memcpy_to_device): Likewise.
(acc_memcpy_from_device): Likewise.
(delete_copyout): Add libfnname parameter, handle free_func
hook fatal error case.
(acc_delete): Adjust delete_copyout call.
(acc_copyout): Likewise.
(update_dev_host): Move gomp_mutex_unlock to after
host2dev/dev2host hook calls.
* plugin/plugin-hsa.c (hsa_warn): Adjust 'hsa_error' local variable
to 'hsa_error_msg', for clarity.
(hsa_fatal): Likewise.
(hsa_error): New function.
(init_hsa_context): Change return type to bool, adjust to return
false on error.
(GOMP_OFFLOAD_get_num_devices): Adjust to handle init_hsa_context
return value.
(GOMP_OFFLOAD_init_device): Change return type to bool, adjust to
return false on error.
(get_agent_info): Adjust to return NULL on error.
(destroy_hsa_program): Change return type to bool, adjust to
return false on error.
(GOMP_OFFLOAD_load_image): Adjust to return -1 on error.
(destroy_module): Change return type to bool, adjust to
return false on error.
(GOMP_OFFLOAD_unload_image): Likewise.
(GOMP_OFFLOAD_fini_device): Likewise.
(GOMP_OFFLOAD_alloc): Change to return NULL when called.
(GOMP_OFFLOAD_free): Change to return false when called.
(GOMP_OFFLOAD_dev2host): Likewise.
(GOMP_OFFLOAD_host2dev): Likewise.
(GOMP_OFFLOAD_dev2dev): Likewise.
* plugin/plugin-nvptx.c (CUDA_CALL_ERET): New convenience macro.
(CUDA_CALL): Likewise.
(CUDA_CALL_ASSERT): Likewise.
(map_init): Change return type to bool, use CUDA_CALL* macros.
(map_fini): Likewise.
(init_streams_for_device): Change return type to bool, adjust
call to map_init.
(fini_streams_for_device): Change return type to bool, adjust
call to map_fini.
(select_stream_for_async): Release stream_lock before calls to
GOMP_PLUGIN_fatal, adjust call to map_init.
(nvptx_init): Use CUDA_CALL* macros.
(nvptx_attach_host_thread_to_device): Change return type to bool,
use CUDA_CALL* macros.
(nvptx_open_device): Use CUDA_CALL* macros.
(nvptx_close_device): Change return type to bool, use CUDA_CALL*
macros.
(nvptx_get_num_devices): Use CUDA_CALL* macros.
(link_ptx): Change return type to bool, use CUDA_CALL* macros.
(nvptx_exec): Use CUDA_CALL* macros.
(nvptx_alloc): Use CUDA_CALL* macros.
(nvptx_free): Change return type to bool, use CUDA_CALL* macros.
(nvptx_host2dev): Likewise.
(nvptx_dev2host): Likewise.
(nvptx_wait): Use CUDA_CALL* macros.
(nvptx_wait_async): Likewise.
(nvptx_wait_all): Likewise.
(nvptx_wait_all_async): Likewise.
(nvptx_set_cuda_stream): Adjust order of stream_lock acquire,
use CUDA_CALL* macros, adjust call to map_fini.
(GOMP_OFFLOAD_init_device): Change return type to bool,
adjust code accordingly.
(GOMP_OFFLOAD_fini_device): Likewise.
(GOMP_OFFLOAD_load_image): Adjust calls to
nvptx_attach_host_thread_to_device/link_ptx to handle errors,
use CUDA_CALL* macros.
(GOMP_OFFLOAD_unload_image): Change return type to bool, adjust
return code.
(GOMP_OFFLOAD_alloc): Adjust calls to code to handle error return.
(GOMP_OFFLOAD_free): Change return type to bool, adjust calls to
handle error return.
(GOMP_OFFLOAD_dev2host): Likewise.
(GOMP_OFFLOAD_host2dev): Likewise.
(GOMP_OFFLOAD_openacc_register_async_cleanup): Use CUDA_CALL* macros.
(GOMP_OFFLOAD_openacc_create_thread_data): Likewise.
liboffloadmic/
2016-05-26 Chung-Lin Tang <cltang@codesourcery.com>
* plugin/libgomp-plugin-intelmic.cpp (offload): Change return type
to bool, adjust return code.
(GOMP_OFFLOAD_init_device): Likewise.
(GOMP_OFFLOAD_fini_device): Likewise.
(get_target_table): Likewise.
(offload_image): Likwise.
(GOMP_OFFLOAD_load_image): Adjust call to offload_image(), change
to return -1 on error.
(GOMP_OFFLOAD_unload_image): Change return type to bool, adjust return
code.
(GOMP_OFFLOAD_alloc): Likewise.
(GOMP_OFFLOAD_free): Likewise.
(GOMP_OFFLOAD_host2dev): Likewise.
(GOMP_OFFLOAD_dev2host): Likewise.
(GOMP_OFFLOAD_dev2dev): Likewise.
From-SVN: r236768
2016-05-26 11:58:56 +02:00
|
|
|
|
2016-05-26 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.c (gomp_device_copy): New function.
|
|
|
|
|
(gomp_copy_host2dev): Likewise.
|
|
|
|
|
(gomp_copy_dev2host): Likewise.
|
|
|
|
|
(gomp_free_device_memory): Likewise.
|
|
|
|
|
(gomp_map_vars_existing): Adjust to call gomp_copy_host2dev.
|
|
|
|
|
(gomp_map_pointer): Likewise.
|
|
|
|
|
(gomp_map_vars): Adjust to call gomp_copy_host2dev, handle
|
|
|
|
|
NULL value from alloc_func plugin hook.
|
|
|
|
|
(gomp_unmap_tgt): Adjust to call gomp_free_device_memory.
|
|
|
|
|
(gomp_copy_from_async): Adjust to call gomp_copy_dev2host.
|
|
|
|
|
(gomp_unmap_vars): Likewise.
|
|
|
|
|
(gomp_update): Adjust to call gomp_copy_dev2host and
|
|
|
|
|
gomp_copy_host2dev functions.
|
|
|
|
|
(gomp_unload_image_from_device): Handle false value from
|
|
|
|
|
unload_image_func plugin hook.
|
|
|
|
|
(gomp_init_device): Handle false value from init_device_func
|
|
|
|
|
plugin hook.
|
|
|
|
|
(gomp_exit_data): Adjust to call gomp_copy_dev2host.
|
|
|
|
|
(omp_target_free): Adjust to call gomp_free_device_memory.
|
|
|
|
|
(omp_target_memcpy): Handle return values from host2dev_func,
|
|
|
|
|
dev2host_func, and dev2dev_func plugin hooks.
|
|
|
|
|
(omp_target_memcpy_rect_worker): Likewise.
|
|
|
|
|
(gomp_target_fini): Handle false value from fini_device_func
|
|
|
|
|
plugin hook.
|
|
|
|
|
* libgomp.h (struct gomp_device_descr): Adjust return type of
|
|
|
|
|
init_device_func, fini_device_func, unload_image_func, free_func,
|
|
|
|
|
dev2host_func,host2dev_func, and dev2dev_func plugin hooks to 'bool'.
|
|
|
|
|
* oacc-init.c (acc_shutdown_1): Handle false value from
|
|
|
|
|
fini_device_func plugin hook.
|
|
|
|
|
* oacc-host.c (host_init_device): Change return type to bool.
|
|
|
|
|
(host_fini_device): Likewise.
|
|
|
|
|
(host_unload_image): Likewise.
|
|
|
|
|
(host_free): Likewise.
|
|
|
|
|
(host_dev2host): Likewise.
|
|
|
|
|
(host_host2dev): Likewise.
|
|
|
|
|
* oacc-mem.c (acc_free): Handle plugin hook fatal error case.
|
|
|
|
|
(acc_memcpy_to_device): Likewise.
|
|
|
|
|
(acc_memcpy_from_device): Likewise.
|
|
|
|
|
(delete_copyout): Add libfnname parameter, handle free_func
|
|
|
|
|
hook fatal error case.
|
|
|
|
|
(acc_delete): Adjust delete_copyout call.
|
|
|
|
|
(acc_copyout): Likewise.
|
|
|
|
|
(update_dev_host): Move gomp_mutex_unlock to after
|
|
|
|
|
host2dev/dev2host hook calls.
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-hsa.c (hsa_warn): Adjust 'hsa_error' local variable
|
|
|
|
|
to 'hsa_error_msg', for clarity.
|
|
|
|
|
(hsa_fatal): Likewise.
|
|
|
|
|
(hsa_error): New function.
|
|
|
|
|
(init_hsa_context): Change return type to bool, adjust to return
|
|
|
|
|
false on error.
|
|
|
|
|
(GOMP_OFFLOAD_get_num_devices): Adjust to handle init_hsa_context
|
|
|
|
|
return value.
|
|
|
|
|
(GOMP_OFFLOAD_init_device): Change return type to bool, adjust to
|
|
|
|
|
return false on error.
|
|
|
|
|
(get_agent_info): Adjust to return NULL on error.
|
|
|
|
|
(destroy_hsa_program): Change return type to bool, adjust to
|
|
|
|
|
return false on error.
|
|
|
|
|
(GOMP_OFFLOAD_load_image): Adjust to return -1 on error.
|
|
|
|
|
(destroy_module): Change return type to bool, adjust to
|
|
|
|
|
return false on error.
|
|
|
|
|
(GOMP_OFFLOAD_unload_image): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_fini_device): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_alloc): Change to return NULL when called.
|
|
|
|
|
(GOMP_OFFLOAD_free): Change to return false when called.
|
|
|
|
|
(GOMP_OFFLOAD_dev2host): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_host2dev): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_dev2dev): Likewise.
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (CUDA_CALL_ERET): New convenience macro.
|
|
|
|
|
(CUDA_CALL): Likewise.
|
|
|
|
|
(CUDA_CALL_ASSERT): Likewise.
|
|
|
|
|
(map_init): Change return type to bool, use CUDA_CALL* macros.
|
|
|
|
|
(map_fini): Likewise.
|
|
|
|
|
(init_streams_for_device): Change return type to bool, adjust
|
|
|
|
|
call to map_init.
|
|
|
|
|
(fini_streams_for_device): Change return type to bool, adjust
|
|
|
|
|
call to map_fini.
|
|
|
|
|
(select_stream_for_async): Release stream_lock before calls to
|
|
|
|
|
GOMP_PLUGIN_fatal, adjust call to map_init.
|
|
|
|
|
(nvptx_init): Use CUDA_CALL* macros.
|
|
|
|
|
(nvptx_attach_host_thread_to_device): Change return type to bool,
|
|
|
|
|
use CUDA_CALL* macros.
|
|
|
|
|
(nvptx_open_device): Use CUDA_CALL* macros.
|
|
|
|
|
(nvptx_close_device): Change return type to bool, use CUDA_CALL*
|
|
|
|
|
macros.
|
|
|
|
|
(nvptx_get_num_devices): Use CUDA_CALL* macros.
|
|
|
|
|
(link_ptx): Change return type to bool, use CUDA_CALL* macros.
|
|
|
|
|
(nvptx_exec): Use CUDA_CALL* macros.
|
|
|
|
|
(nvptx_alloc): Use CUDA_CALL* macros.
|
|
|
|
|
(nvptx_free): Change return type to bool, use CUDA_CALL* macros.
|
|
|
|
|
(nvptx_host2dev): Likewise.
|
|
|
|
|
(nvptx_dev2host): Likewise.
|
|
|
|
|
(nvptx_wait): Use CUDA_CALL* macros.
|
|
|
|
|
(nvptx_wait_async): Likewise.
|
|
|
|
|
(nvptx_wait_all): Likewise.
|
|
|
|
|
(nvptx_wait_all_async): Likewise.
|
|
|
|
|
(nvptx_set_cuda_stream): Adjust order of stream_lock acquire,
|
|
|
|
|
use CUDA_CALL* macros, adjust call to map_fini.
|
|
|
|
|
(GOMP_OFFLOAD_init_device): Change return type to bool,
|
|
|
|
|
adjust code accordingly.
|
|
|
|
|
(GOMP_OFFLOAD_fini_device): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_load_image): Adjust calls to
|
|
|
|
|
nvptx_attach_host_thread_to_device/link_ptx to handle errors,
|
|
|
|
|
use CUDA_CALL* macros.
|
|
|
|
|
(GOMP_OFFLOAD_unload_image): Change return type to bool, adjust
|
|
|
|
|
return code.
|
|
|
|
|
(GOMP_OFFLOAD_alloc): Adjust calls to code to handle error return.
|
|
|
|
|
(GOMP_OFFLOAD_free): Change return type to bool, adjust calls to
|
|
|
|
|
handle error return.
|
|
|
|
|
(GOMP_OFFLOAD_dev2host): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_host2dev): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_register_async_cleanup): Use CUDA_CALL* macros.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_create_thread_data): Likewise.
|
|
|
|
|
|
2016-05-25 00:54:21 +02:00
|
|
|
|
2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-mem.c (acc_malloc): Update handling of shared-memory targets.
|
|
|
|
|
(acc_free): Likewise.
|
|
|
|
|
(acc_memcpy_to_device): Likewise.
|
|
|
|
|
(acc_memcpy_from_device): Likewise.
|
|
|
|
|
(acc_deviceptr): Likewise.
|
|
|
|
|
(acc_hostptr): Likewise.
|
|
|
|
|
(acc_is_present): Likewise.
|
|
|
|
|
(acc_map_data): Likewise.
|
|
|
|
|
(acc_unmap_data): Likewise.
|
|
|
|
|
(present_create_copy): Likewise.
|
|
|
|
|
(delete_copyout): Likewise.
|
|
|
|
|
(update_dev_host): Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that
|
|
|
|
|
it only runs on nvptx targets.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
|
|
|
|
|
|
2016-05-23 13:45:13 +02:00
|
|
|
|
2016-05-23 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.hsa.c/switch-sbr-2.c: New test.
|
|
|
|
|
|
2016-05-17 10:07:52 +02:00
|
|
|
|
2016-05-17 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-init.c (acc_init): Remove !cached_base_dev condition on call
|
|
|
|
|
to gomp_init_targets_once.
|
|
|
|
|
(acc_set_device_type): Remove !cached_base_dev condition on call to
|
|
|
|
|
gomp_init_targets_once, move call to before acc_device_lock acquire,
|
|
|
|
|
to avoid deadlock.
|
|
|
|
|
(acc_get_device_num): Remove !cached_base_dev condition on call to
|
|
|
|
|
gomp_init_targets_once.
|
|
|
|
|
(acc_set_device_num): Likewise.
|
|
|
|
|
|
2016-05-16 19:49:44 +02:00
|
|
|
|
2016-05-16 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
2018-08-27 16:04:23 +02:00
|
|
|
|
* testsuite/libgomp.hsa.c/complex-align-2.c: New test.
|
2016-05-16 19:49:44 +02:00
|
|
|
|
|
2016-05-02 15:16:22 +02:00
|
|
|
|
2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
|
|
|
|
|
expected partitioning.
|
|
|
|
|
|
2016-04-29 19:42:04 +02:00
|
|
|
|
2016-04-29 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/70626
|
|
|
|
|
* testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test.
|
|
|
|
|
|
2016-04-21 15:11:47 +02:00
|
|
|
|
2016-04-21 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (map_fini): Make cuMemFreeHost error
|
|
|
|
|
non-fatal.
|
|
|
|
|
|
2016-04-20 03:42:24 +02:00
|
|
|
|
2016-04-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/70680
|
|
|
|
|
* testsuite/libgomp.c/pr70680-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr70680-2.c: New test.
|
|
|
|
|
|
2016-04-14 23:24:03 +02:00
|
|
|
|
2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Don't
|
|
|
|
|
pass parameter variables to subroutines.
|
|
|
|
|
|
2016-04-14 15:44:17 +02:00
|
|
|
|
2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/70643
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr70643.f90: New test.
|
|
|
|
|
|
2016-04-13 20:54:41 +02:00
|
|
|
|
2016-04-13 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/68242
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Adjust test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
|
|
|
|
|
|
2016-04-12 12:40:22 +02:00
|
|
|
|
2016-04-12 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2016-04-12 15:13:53 +02:00
|
|
|
|
* libgomp_g.h: Rename GOACC_parallel_keyd prototype to
|
|
|
|
|
GOACC_parallel_keyed, restore GOACC_parallel prototype, new
|
|
|
|
|
GOACC_declare prototype.
|
|
|
|
|
|
Merge libgomp.oacc-c-c++-common/loop-reduction-*.c into libgomp.oacc-c-c++-common/reduction-7.c
libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c:
Merge this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gv-np-1.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c:
... this file, and...
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c:
... this file into...
* testsuite/libgomp.oacc-c-c++-common/reduction-7.c: ... this
file.
From-SVN: r234899
2016-04-12 13:02:32 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c:
|
|
|
|
|
Merge this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gv-np-1.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c:
|
|
|
|
|
... this file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c:
|
|
|
|
|
... this file into...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-7.c: ... this
|
|
|
|
|
file.
|
|
|
|
|
|
2016-04-12 12:40:22 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c:
|
|
|
|
|
Make failure observable.
|
|
|
|
|
|
2016-04-12 09:05:29 +02:00
|
|
|
|
2016-04-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (struct gomp_target_task): Remove firstprivate_copies
|
|
|
|
|
field.
|
|
|
|
|
* target.c (gomp_target_fallback_firstprivate,
|
|
|
|
|
gomp_target_unshare_firstprivate): Removed.
|
|
|
|
|
(GOMP_target_ext): Copy firstprivate vars into gomp_allocaed memory
|
|
|
|
|
before waiting for dependencies.
|
|
|
|
|
(gomp_target_task_fn): Don't copy firstprivate vars here.
|
|
|
|
|
* task.c (GOMP_PLUGIN_target_task_completion): Don't free
|
|
|
|
|
firstprivate_copies here.
|
|
|
|
|
(gomp_create_target_task): Don't initialize firstprivate_copies field.
|
|
|
|
|
* testsuite/libgomp.c/target-25.c (main): Use map (to:) instead of
|
|
|
|
|
explicit/implicit firstprivate.
|
|
|
|
|
|
2016-04-08 23:09:47 +02:00
|
|
|
|
2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR lto/70289
|
|
|
|
|
PR ipa/70348
|
|
|
|
|
PR tree-optimization/70373
|
|
|
|
|
PR middle-end/70533
|
|
|
|
|
PR middle-end/70534
|
|
|
|
|
PR middle-end/70535
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gang-np-1.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gw-np-1.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-1.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-2.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-3.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-gwv-np-4.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-1.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-vector-p-2.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-worker-p-1.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-reduction-wv-p-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-1.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-2.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c: New
|
|
|
|
|
test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Add test
|
|
|
|
|
coverage.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-reduction.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr70289.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pr70373.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Add test
|
|
|
|
|
coverage.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction.h: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/parallel-reduction.f90: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr70289.f90: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Add test coverage.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-7.f90: New test.
|
|
|
|
|
|
2016-03-30 17:08:47 +02:00
|
|
|
|
2016-03-30 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
James Norris <jnorris@codesourcery.com>
|
|
|
|
|
Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
Julian Brown <julian@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
|
|
|
|
|
XFAIL.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Update.
|
|
|
|
|
Incorporate...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: ... this
|
|
|
|
|
file.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/template-reduction.C: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/gang-static-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-clauses.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/private-variables.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/clauses-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/default-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/firstprivate-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/gang-static-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/implicit-firstprivate-ref.f90:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pr68813.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/private-variables.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Merge this
|
|
|
|
|
file...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-1.c: ..., and this
|
|
|
|
|
file into...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-clauses.h: ... this new
|
|
|
|
|
file. Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels.c: New
|
|
|
|
|
file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-2.c: Rename to...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c:
|
|
|
|
|
... this new file. Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-2.c: Rename to...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-clauses-parallel-ipa-pta.c:
|
|
|
|
|
... this new file. Update.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: New
|
|
|
|
|
file. Incorporate...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c: ... this
|
|
|
|
|
file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: ... this
|
|
|
|
|
file, and...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: ... this
|
|
|
|
|
file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Remove file.
|
|
|
|
|
|
2016-03-29 15:24:22 +02:00
|
|
|
|
2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp [!lang_test_file_found]: Call
|
|
|
|
|
set-torture-options.
|
|
|
|
|
|
2016-03-24 22:29:55 +01:00
|
|
|
|
2016-03-24 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Set up torture testing, use
|
|
|
|
|
gcc-dg-runtest.
|
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: Specify
|
|
|
|
|
-fno-builtin-acc_on_device instead of -O0.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: Skip for
|
|
|
|
|
-O0.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-2.c:
|
|
|
|
|
Don't specify -O2.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-3.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2016-03-24 14:04:12 +01:00
|
|
|
|
2016-03-24 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-hsa.c (packet_store_release): New function
|
|
|
|
|
that is taken from the HSA runtime manual.
|
|
|
|
|
(GOMP_OFFLOAD_run): Use the function.
|
|
|
|
|
|
2016-03-23 19:42:19 +01:00
|
|
|
|
2016-03-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/70376
|
|
|
|
|
* testsuite/libgomp.c++/pr70376.C: New test.
|
|
|
|
|
|
2016-03-23 18:32:05 +01:00
|
|
|
|
2016-03-23 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Add missing
|
|
|
|
|
initialization of lresult and lvresult.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Same.
|
|
|
|
|
|
2016-03-23 15:38:55 +01:00
|
|
|
|
2016-03-23 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
Daichi Fukuoka <dc-fukuoka@sgi.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/69414
|
|
|
|
|
* oacc-mem.c (delete_copyout, update_dev_host): Fix device address.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/update-1.c: Additional tests.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/update-1.f90: New file.
|
|
|
|
|
|
2016-03-23 10:59:51 +01:00
|
|
|
|
2016-03-23 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR hsa/70337
|
|
|
|
|
* plugin/plugin-hsa.c (GOMP_OFFLOAD_run): Copy shadow
|
|
|
|
|
argument just in case a dispatched kernel uses that argument.
|
|
|
|
|
|
2016-03-16 14:10:20 +01:00
|
|
|
|
2016-03-16 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Adjust to
|
|
|
|
|
-ftree-parallelize-loops/-fopenacc changes.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
|
|
|
|
|
|
2016-03-13 20:08:21 +01:00
|
|
|
|
2016-03-13 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Potentially append to
|
|
|
|
|
always_ld_library_path the path to libgcc_s.
|
|
|
|
|
|
2016-03-10 23:50:40 +01:00
|
|
|
|
2016-03-10 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/70009
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vprop.c: Make test data signed.
|
|
|
|
|
|
2016-03-09 10:14:21 +01:00
|
|
|
|
2016-03-09 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
|
|
|
|
|
Same.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-loop.f95: Same.
|
|
|
|
|
|
2016-03-07 19:45:17 +01:00
|
|
|
|
2016-03-07 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
|
(check_effective_target_hsa_offloading_selected_nocache): New.
|
|
|
|
|
(check_effective_target_hsa_offloading_selected): Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/c.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/alloca-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/bitfield-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/builtins-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/complex-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/formal-actual-args-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/function-call-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/get-level-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/gridify-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/gridify-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/gridify-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/gridify-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/memory-operations-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/pr69568.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/rotate-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/switch-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.hsa.c/switch-branch-1.c: Likewise.
|
|
|
|
|
|
2016-03-07 19:42:33 +01:00
|
|
|
|
2016-03-07 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/examples-4/async_target-2.c: Only run on
|
|
|
|
|
non-shared memory accelerators.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/device-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-6.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/async_target-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-7.f90: Likewise.
|
|
|
|
|
|
2016-03-07 19:41:18 +01:00
|
|
|
|
2016-03-07 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Append -Wno-hsa to
|
|
|
|
|
ALWAYS_CFLAGS.
|
|
|
|
|
|
2016-03-02 20:16:14 +01:00
|
|
|
|
2016-03-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/69555
|
|
|
|
|
* testsuite/libgomp.c++/pr69555-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr69555-2.C: New test.
|
|
|
|
|
|
2016-02-26 20:42:31 +01:00
|
|
|
|
2016-02-26 Keith McDaniel <k.allen.mcdaniel@gmail.com>
|
|
|
|
|
Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
|
(check_effective_target_offload_device_shared_as): New proc.
|
|
|
|
|
* testsuite/libgomp.c++/declare_target-1.C: New test.
|
|
|
|
|
|
2016-02-25 13:23:52 +01:00
|
|
|
|
2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
PR driver/68463
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove.
|
|
|
|
|
|
2016-02-23 16:07:54 +01:00
|
|
|
|
2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed): Initialize dims.
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Provide default values for
|
|
|
|
|
dims.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Adjust to
|
|
|
|
|
-ftree-parallelize-loops/-fopenacc changes.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2016-02-22 17:28:25 +01:00
|
|
|
|
2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vprop.c: New test.
|
|
|
|
|
|
2016-02-19 23:18:38 +01:00
|
|
|
|
2016-02-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR driver/69805
|
|
|
|
|
* testsuite/libgomp.c/pr69805.c: New test.
|
|
|
|
|
|
2016-02-16 10:23:09 +01:00
|
|
|
|
2016-02-16 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR lto/67709
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-4.f90: New test.
|
|
|
|
|
|
2016-02-09 09:52:26 +01:00
|
|
|
|
2016-02-09 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/69599
|
|
|
|
|
* testsuite/libgomp.c/omp-nested-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr46032-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-2.c: New test.
|
|
|
|
|
|
2016-02-09 08:04:08 +01:00
|
|
|
|
2016-02-09 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR lto/69707
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: New test.
|
|
|
|
|
|
2016-02-02 19:18:43 +01:00
|
|
|
|
2016-02-02 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-31.c: Fix testcase.
|
|
|
|
|
|
2016-02-02 19:15:58 +01:00
|
|
|
|
2016-02-02 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-3.c: Add missing reduction
|
|
|
|
|
clause.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-3.f90: Add missing
|
|
|
|
|
reduction and map clauses.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
|
|
|
|
|
|
2016-02-02 17:22:26 +01:00
|
|
|
|
2016-02-02 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause.
|
|
|
|
|
|
2016-02-02 13:48:04 +01:00
|
|
|
|
2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2016-02-02 14:53:55 +01:00
|
|
|
|
* libgomp.map (GOACC_2.0): Remove GOACC_host_data.
|
|
|
|
|
* oacc-parallel.c (GOACC_host_data): Remove function definition.
|
|
|
|
|
|
2016-02-02 13:48:41 +01:00
|
|
|
|
* testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test
|
|
|
|
|
cases.
|
|
|
|
|
|
2016-02-02 13:48:31 +01:00
|
|
|
|
* plugin/configfrag.ac (HSA_KMT_LIB, HSA_KMT_LDFLAGS): New
|
|
|
|
|
variables.
|
|
|
|
|
* testsuite/libgomp-test-support.exp.in (hsa_runtime_lib)
|
|
|
|
|
(hsa_kmt_lib): Set variables.
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Use them to amend
|
|
|
|
|
always_ld_library_path.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
|
2016-02-02 13:48:21 +01:00
|
|
|
|
* plugin/configfrag.ac (offload_additional_options)
|
|
|
|
|
(offload_additional_lib_paths): Don't amend for hsa offloading.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2016-02-02 13:48:04 +01:00
|
|
|
|
* plugin/configfrag.ac: Don't configure for offloading target if
|
|
|
|
|
we don't build the corresponding plugin.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2016-02-01 17:20:13 +01:00
|
|
|
|
2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-7.f90: Serialize loop.
|
|
|
|
|
|
2016-01-26 23:11:51 +01:00
|
|
|
|
2016-01-26 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/69110
|
|
|
|
|
* testsuite/libgomp.c/pr69110.c: New test.
|
|
|
|
|
|
2016-01-25 10:31:47 +01:00
|
|
|
|
2016-01-25 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR lto/69393
|
|
|
|
|
* testsuite/libgomp.c++/pr69393.C: New testcase.
|
|
|
|
|
|
2016-01-22 15:27:37 +01:00
|
|
|
|
2016-01-22 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* target.c (gomp_get_target_fn_addr): Allow host fallback if target
|
|
|
|
|
function wasn't mapped to the device with non-shared memory.
|
|
|
|
|
|
2016-01-20 16:01:24 +01:00
|
|
|
|
2016-01-20 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* task.c (gomp_create_target_task): Set firstprivate_copies to NULL.
|
|
|
|
|
|
2016-01-19 11:35:10 +01:00
|
|
|
|
2016-01-19 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* plugin/Makefrag.am: Add HSA plugin requirements.
|
|
|
|
|
* plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable.
|
|
|
|
|
(HSA_RUNTIME_LIB): Likewise.
|
|
|
|
|
(HSA_RUNTIME_CPPFLAGS): Likewise.
|
|
|
|
|
(HSA_RUNTIME_INCLUDE): New substitution.
|
|
|
|
|
(HSA_RUNTIME_LIB): Likewise.
|
|
|
|
|
(HSA_RUNTIME_LDFLAGS): Likewise.
|
|
|
|
|
(hsa-runtime): New configure option.
|
|
|
|
|
(hsa-runtime-include): Likewise.
|
|
|
|
|
(hsa-runtime-lib): Likewise.
|
|
|
|
|
(PLUGIN_HSA): New substitution variable.
|
|
|
|
|
Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new
|
|
|
|
|
configure options.
|
|
|
|
|
(PLUGIN_HSA_CPPFLAGS): Likewise.
|
|
|
|
|
(PLUGIN_HSA_LDFLAGS): Likewise.
|
|
|
|
|
(PLUGIN_HSA_LIBS): Likewise.
|
|
|
|
|
Check that we have access to HSA run-time.
|
|
|
|
|
* libgomp-plugin.h (offload_target_type): New element
|
|
|
|
|
OFFLOAD_TARGET_TYPE_HSA.
|
|
|
|
|
* libgomp.h (gomp_target_task): New fields firstprivate_copies and
|
|
|
|
|
args.
|
|
|
|
|
(bool gomp_create_target_task): Updated.
|
|
|
|
|
(gomp_device_descr): Extra parameter of run_func and async_run_func,
|
|
|
|
|
new field can_run_func.
|
|
|
|
|
* libgomp_g.h (GOMP_target_ext): Update prototype.
|
|
|
|
|
* oacc-host.c (host_run): Added a new parameter args.
|
|
|
|
|
* target.c (calculate_firstprivate_requirements): New function.
|
|
|
|
|
(copy_firstprivate_data): Likewise.
|
|
|
|
|
(gomp_target_fallback_firstprivate): Use them.
|
|
|
|
|
(gomp_target_unshare_firstprivate): New function.
|
|
|
|
|
(gomp_get_target_fn_addr): Allow returning NULL for shared memory
|
|
|
|
|
devices.
|
|
|
|
|
(GOMP_target): Do host fallback for all shared memory devices. Do not
|
|
|
|
|
pass any args to plugins.
|
|
|
|
|
(GOMP_target_ext): Introduce device-specific argument parameter args.
|
|
|
|
|
Allow host fallback if device shares memory. Do not remap data if
|
|
|
|
|
device has shared memory.
|
|
|
|
|
(gomp_target_task_fn): Likewise. Also treat shared memory devices
|
|
|
|
|
like host fallback for mappings.
|
|
|
|
|
(GOMP_target_data): Treat shared memory devices like host fallback.
|
|
|
|
|
(GOMP_target_data_ext): Likewise.
|
|
|
|
|
(GOMP_target_update): Likewise.
|
|
|
|
|
(GOMP_target_update_ext): Likewise. Also pass NULL as args to
|
|
|
|
|
gomp_create_target_task.
|
|
|
|
|
(GOMP_target_enter_exit_data): Likewise.
|
|
|
|
|
(omp_target_alloc): Treat shared memory devices like host fallback.
|
|
|
|
|
(omp_target_free): Likewise.
|
|
|
|
|
(omp_target_is_present): Likewise.
|
|
|
|
|
(omp_target_memcpy): Likewise.
|
|
|
|
|
(omp_target_memcpy_rect): Likewise.
|
|
|
|
|
(omp_target_associate_ptr): Likewise.
|
|
|
|
|
(gomp_load_plugin_for_device): Also load can_run.
|
|
|
|
|
* task.c (GOMP_PLUGIN_target_task_completion): Free
|
|
|
|
|
firstprivate_copies.
|
|
|
|
|
(gomp_create_target_task): Accept new argument args and store it to
|
|
|
|
|
ttask.
|
|
|
|
|
* plugin/plugin-hsa.c: New file.
|
|
|
|
|
|
2016-01-18 13:53:03 +01:00
|
|
|
|
2016-01-18 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
|
|
|
|
|
Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
|
|
|
|
|
Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
|
|
|
|
|
Same.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c: Same.
|
|
|
|
|
|
2016-01-15 20:56:26 +01:00
|
|
|
|
2016-01-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* task.c (GOMP_PLUGIN_target_task_completion): Add missing return.
|
|
|
|
|
|
2016-01-15 15:49:55 +01:00
|
|
|
|
2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/kernels-data.f90: New test.
|
|
|
|
|
|
2016-01-12 18:03:03 +01:00
|
|
|
|
2016-01-12 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Updates for OpenACC.
|
|
|
|
|
|
2016-01-11 13:55:31 +01:00
|
|
|
|
2016-01-11 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (link_ptx): Do not set CU_JIT_TARGET.
|
|
|
|
|
|
2016-01-07 19:18:29 +01:00
|
|
|
|
2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/66680
|
|
|
|
|
* testsuite/libgomp.fortran/pr66680.f90: New test.
|
|
|
|
|
|
2016-01-07 09:45:54 +01:00
|
|
|
|
2016-01-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/68960
|
|
|
|
|
* testsuite/libgomp.c/pr68960.c: New test.
|
|
|
|
|
|
2016-01-06 16:47:14 +01:00
|
|
|
|
2016-01-06 Nathan Sidwell <nathan@acm.org>
|
|
|
|
|
|
2016-01-06 22:26:47 +01:00
|
|
|
|
* openacc.h (acc_on_device): Add routine pragma for C++ wrapper.
|
2016-01-06 16:47:14 +01:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc-on-device-2.c: New.
|
|
|
|
|
|
2016-01-04 14:03:35 +01:00
|
|
|
|
2016-01-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2016-01-04 15:30:50 +01:00
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2016-01-04 14:03:35 +01:00
|
|
|
|
* libgomp.texi: Bump @copying's copyright year.
|
|
|
|
|
|
2015-12-31 15:07:52 +01:00
|
|
|
|
2015-12-31 Nathan Sidwell <nathan@acm.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Correct
|
|
|
|
|
dg-additional-options syntax.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Likewise.
|
|
|
|
|
|
2015-12-15 15:56:50 +01:00
|
|
|
|
2015-12-15 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (REFCOUNT_LINK): Define.
|
|
|
|
|
(struct splay_tree_key_s): Add link_key.
|
|
|
|
|
* target.c (gomp_map_vars): Treat REFCOUNT_LINK objects as not mapped.
|
|
|
|
|
Replace target address of the pointer with target address of newly
|
|
|
|
|
mapped object in the splay tree. Set link pointer on target to the
|
|
|
|
|
device address of the mapped object.
|
|
|
|
|
(gomp_unmap_vars): Restore target address of the pointer in the splay
|
|
|
|
|
tree for REFCOUNT_LINK objects after unmapping.
|
|
|
|
|
(gomp_load_image_to_device): Set refcount to REFCOUNT_LINK for "omp
|
|
|
|
|
declare target link" objects.
|
|
|
|
|
(gomp_unload_image_from_device): Replace j with i. Force unmap of all
|
|
|
|
|
"omp declare target link" objects, which were mapped for the image.
|
|
|
|
|
(gomp_exit_data): Restore target address of the pointer in the splay
|
|
|
|
|
tree for REFCOUNT_LINK objects after unmapping.
|
|
|
|
|
* testsuite/libgomp.c/target-link-1.c: New file.
|
|
|
|
|
|
2015-12-14 17:46:54 +01:00
|
|
|
|
2015-12-14 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (gomp_device_state): New enum.
|
|
|
|
|
(struct gomp_device_descr): Replace is_initialized with state.
|
|
|
|
|
(gomp_fini_device): Remove declaration.
|
|
|
|
|
* oacc-host.c (host_dispatch): Use state instead of is_initialized.
|
|
|
|
|
* oacc-init.c (acc_init_1): Use state instead of is_initialized.
|
|
|
|
|
(acc_shutdown_1): Likewise. Inline gomp_fini_device.
|
|
|
|
|
(acc_set_device_type): Use state instead of is_initialized.
|
|
|
|
|
(acc_set_device_num): Likewise.
|
|
|
|
|
* target.c (resolve_device): Use state instead of is_initialized.
|
|
|
|
|
Do not initialize finalized device.
|
|
|
|
|
(gomp_map_vars): Do nothing if device is finalized.
|
|
|
|
|
(gomp_unmap_vars): Likewise.
|
|
|
|
|
(gomp_update): Likewise.
|
|
|
|
|
(GOMP_offload_register_ver): Use state instead of is_initialized.
|
|
|
|
|
(GOMP_offload_unregister_ver): Likewise.
|
|
|
|
|
(gomp_init_device): Likewise.
|
|
|
|
|
(gomp_unload_device): Likewise.
|
|
|
|
|
(gomp_fini_device): Remove.
|
|
|
|
|
(gomp_get_target_fn_addr): Do nothing if device is finalized.
|
|
|
|
|
(GOMP_target): Go to host fallback if device is finalized.
|
|
|
|
|
(GOMP_target_ext): Likewise.
|
|
|
|
|
(gomp_exit_data): Do nothing if device is finalized.
|
|
|
|
|
(gomp_target_task_fn): Go to host fallback if device is finalized.
|
|
|
|
|
(gomp_target_fini): New static function.
|
|
|
|
|
(gomp_target_init): Use state instead of is_initialized.
|
|
|
|
|
Call gomp_target_fini at exit.
|
|
|
|
|
|
2015-12-09 11:13:35 +01:00
|
|
|
|
2015-12-09 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/68716
|
|
|
|
|
* testsuite/libgomp.c/omp-nested-2.c: New test.
|
|
|
|
|
|
2015-12-02 16:53:34 +01:00
|
|
|
|
2015-12-02 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
|
|
|
|
|
target openacc_nvidia_accel_selected.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.
|
|
|
|
|
|
2015-12-01 16:52:23 +01:00
|
|
|
|
2015-12-01 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
James Norris <James_Norris@mentor.com>
|
|
|
|
|
|
|
|
|
|
* oacc-parallel.c (GOACC_host_data): New function.
|
|
|
|
|
* libgomp.map (GOACC_host_data): Add to GOACC_2.0.1.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New test.
|
|
|
|
|
|
2015-11-30 20:09:33 +01:00
|
|
|
|
2015-11-30 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
libgomp/
|
|
|
|
|
* libgomp.oacc-fortran/routine-5.f90: New test.
|
|
|
|
|
* libgomp.oacc-fortran/routine-7.f90: New test.
|
|
|
|
|
* libgomp.oacc-fortran/routine-9.f90: New test.
|
|
|
|
|
|
2015-11-30 17:34:26 +01:00
|
|
|
|
2015-11-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/46032
|
|
|
|
|
* testsuite/libgomp.c/pr46032.c: New test.
|
|
|
|
|
|
2015-11-27 09:59:55 +01:00
|
|
|
|
2015-11-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2015-11-27 20:33:33 +01:00
|
|
|
|
PR libgomp/68579
|
|
|
|
|
* task.c (gomp_task_run_post_handle_depend_hash): New forward decl.
|
|
|
|
|
(gomp_create_target_task): Call it before freeing
|
|
|
|
|
GOMP_TARGET_TASK_DATA tasks.
|
|
|
|
|
|
2015-11-27 09:59:55 +01:00
|
|
|
|
PR c/63326
|
|
|
|
|
* testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
|
|
|
|
|
in between case label and OpenMP standalone directives.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.
|
|
|
|
|
|
2015-11-26 14:27:21 +01:00
|
|
|
|
2015-11-26 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2015-11-26 10:44:49 +01:00
|
|
|
|
2015-11-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-35.c: New test.
|
|
|
|
|
|
2015-11-22 17:45:38 +01:00
|
|
|
|
2015-11-22 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/declare-5.f90: Likewise.
|
|
|
|
|
|
2015-11-20 20:50:46 +01:00
|
|
|
|
2015-11-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/68221
|
|
|
|
|
* testsuite/libgomp.c/reduction-11.c: Remove xfail.
|
|
|
|
|
* testsuite/libgomp.c/reduction-12.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-11.C: Likewise.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-12.C: Likewise.
|
|
|
|
|
|
2015-11-19 19:58:39 +01:00
|
|
|
|
2015-11-19 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.oacc-c-c++-common/reduction-dbl.c: New.
|
|
|
|
|
* libgomp.oacc-c-c++-common/reduction-flt.c: New.
|
|
|
|
|
* libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Use typedef.
|
|
|
|
|
* libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Use typedef.
|
|
|
|
|
* libgomp.oacc-c-c++-common/reduction-2.c: Uncomment broken tests
|
|
|
|
|
and fix.
|
|
|
|
|
* libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
|
|
|
|
|
* libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
|
|
|
|
|
|
2015-11-18 14:49:17 +01:00
|
|
|
|
2015-11-18 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: Add
|
|
|
|
|
worker & gang cases.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: Likewise.
|
|
|
|
|
|
2015-11-17 18:29:34 +01:00
|
|
|
|
2015-11-17 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/nvptx/priority_queue.c: New file.
|
|
|
|
|
|
2015-11-14 23:02:42 +01:00
|
|
|
|
2015-11-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Update references from OpenMP 4.0 to OpenMP 4.5
|
|
|
|
|
sections.
|
|
|
|
|
|
omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_* internal calls - 0 if...
gcc/
2015-11-14 Jakub Jelinek <jakub@redhat.com>
* omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
internal calls - 0 if ordered simd and 1 for ordered threads simd.
* tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
argument is 1, replace it with GOMP_ordered_* call instead of removing
it.
gcc/c/
2015-11-14 Jakub Jelinek <jakub@redhat.com>
* c-typeck.c (c_finish_omp_clauses): Don't mark
GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
gcc/cp/
2015-11-14 Jakub Jelinek <jakub@redhat.com>
* semantics.c (finish_omp_clauses): Don't mark
GOMP_MAP_FIRSTPRIVATE_POINTER decls addressable.
libgomp/
2015-11-14 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* ordered.c (gomp_doacross_init, GOMP_doacross_post,
GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post,
GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of
iterators or IV by chunk size.
* parallel.c (gomp_resolve_num_threads): Don't assume that
if thr->ts.team is non-NULL, then pool must be non-NULL.
* libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare.
* libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export
GOMP_PLUGIN_target_task_completion.
* Makefile.am (libgomp_la_SOURCES): Add priority_queue.c.
* Makefile.in: Regenerate.
* libgomp.h: Shuffle prototypes and forward definitions around so
priority queues can be defined.
(enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING.
(enum gomp_target_task_state): New enum.
(struct gomp_target_task): Add state, tgt, task and team fields.
(gomp_create_target_task): Change return type to bool, add
state argument.
(gomp_target_task_fn): Change return type to bool.
(struct gomp_device_descr): Add async_run_func.
(struct gomp_task): Remove children, next_child, prev_child,
next_queue, prev_queue, next_taskgroup, prev_taskgroup.
Add pnode field.
(struct gomp_taskgroup): Remove children.
Add taskgroup_queue.
(struct gomp_team): Change task_queue type to a priority queue.
(splay_compare): Define inline.
(priority_queue_offset): New.
(priority_node_to_task): New.
(task_to_priority_node): New.
* oacc-mem.c: Do not include splay-tree.h.
* priority_queue.c: New file.
* priority_queue.h: New file.
* splay-tree.c: Do not include splay-tree.h.
(splay_tree_foreach_internal): New.
(splay_tree_foreach): New.
* splay-tree.h: Become re-entrant if splay_tree_prefix is defined.
(splay_tree_callback): Define typedef.
* target.c (splay_compare): Move to libgomp.h.
(GOMP_target): Don't adjust *thr in any way around running offloaded
task.
(GOMP_target_ext): Likewise. Handle target nowait.
(GOMP_target_update_ext, GOMP_target_enter_exit_data): Check
return value from gomp_create_target_task, if false, fallthrough
as if no dependencies exist.
(gomp_target_task_fn): Change return type to bool, return true
if the task should have another part scheduled later. Handle
target nowait.
(gomp_load_plugin_for_device): Initialize async_run.
* task.c (gomp_init_task): Initialize children_queue.
(gomp_clear_parent_in_list): New.
(gomp_clear_parent_in_tree): New.
(gomp_clear_parent): Handle priorities.
(GOMP_task): Likewise.
(priority_queue_move_task_first,
gomp_target_task_completion, GOMP_PLUGIN_target_task_completion):
New functions.
(gomp_create_target_task): Use priority queues. Change return type
to bool, add state argument, return false if for async
{{enter,exit} data,update} constructs no dependencies need to be
waited for, handle target nowait. Set task->fn to NULL instead of
gomp_target_task_fn.
(verify_children_queue): Remove.
(priority_list_upgrade_task): New.
(priority_queue_upgrade_task): New.
(verify_task_queue): Remove.
(priority_list_downgrade_task): New.
(priority_queue_downgrade_task): New.
(gomp_task_run_pre): Use priority queues.
Abstract code out to priority_queue_downgrade_task.
(gomp_task_run_post_handle_dependers): Use priority queues.
(gomp_task_run_post_remove_parent): Likewise.
(gomp_task_run_post_remove_taskgroup): Likewise.
(gomp_barrier_handle_tasks): Likewise. Handle target nowait target
tasks specially.
(GOMP_taskwait): Likewise.
(gomp_task_maybe_wait_for_dependencies): Likewise. Abstract code to
priority-queue_upgrade_task.
(GOMP_taskgroup_start): Use priority queues.
(GOMP_taskgroup_end): Likewise. Handle target nowait target tasks
specially. If taskgroup is NULL, and thr->ts.level is 0, act as a
barrier.
* taskloop.c (GOMP_taskloop): Handle priorities.
* team.c (gomp_new_team): Call priority_queue_init.
(free_team): Call priority_queue_free.
(gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial
team created for target nowait in implicit parallel region.
(gomp_team_start): For nested check, test thr->ts.level instead of
thr->ts.team != NULL.
* testsuite/libgomp.c/doacross-3.c: New test.
* testsuite/libgomp.c/ordered-5.c: New test.
* testsuite/libgomp.c/priority.c: New test.
* testsuite/libgomp.c/target-31.c: New test.
* testsuite/libgomp.c/target-32.c: New test.
* testsuite/libgomp.c/target-33.c: New test.
* testsuite/libgomp.c/target-34.c: New test.
liboffloadmic/
2015-11-14 Ilya Verbin <ilya.verbin@intel.com>
* runtime/offload_host.cpp (task_completion_callback): New
variable.
(offload_proxy_task_completed_ooo): Call task_completion_callback.
(__offload_register_task_callback): New function.
* runtime/offload_host.h (__offload_register_task_callback): New
declaration.
* plugin/libgomp-plugin-intelmic.cpp (offload): Add async_data
argument, handle async offloading.
(register_main_image): Call register_main_image.
(GOMP_OFFLOAD_init_device, get_target_table, GOMP_OFFLOAD_alloc,
GOMP_OFFLOAD_free, GOMP_OFFLOAD_host2dev, GOMP_OFFLOAD_dev2host,
GOMP_OFFLOAD_dev2dev) Adjust offload callers.
(GOMP_OFFLOAD_async_run): New function.
(GOMP_OFFLOAD_run): Implement using GOMP_OFFLOAD_async_run.
From-SVN: r230381
2015-11-14 19:42:13 +01:00
|
|
|
|
2015-11-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* ordered.c (gomp_doacross_init, GOMP_doacross_post,
|
|
|
|
|
GOMP_doacross_wait, gomp_doacross_ull_init, GOMP_doacross_ull_post,
|
|
|
|
|
GOMP_doacross_ull_wait): For GFS_GUIDED don't divide number of
|
|
|
|
|
iterators or IV by chunk size.
|
|
|
|
|
* parallel.c (gomp_resolve_num_threads): Don't assume that
|
|
|
|
|
if thr->ts.team is non-NULL, then pool must be non-NULL.
|
|
|
|
|
* libgomp-plugin.h (GOMP_PLUGIN_target_task_completion): Declare.
|
|
|
|
|
* libgomp.map (GOMP_PLUGIN_1.1): New symbol version, export
|
|
|
|
|
GOMP_PLUGIN_target_task_completion.
|
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add priority_queue.c.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* libgomp.h: Shuffle prototypes and forward definitions around so
|
|
|
|
|
priority queues can be defined.
|
|
|
|
|
(enum gomp_task_kind): Add GOMP_TASK_ASYNC_RUNNING.
|
|
|
|
|
(enum gomp_target_task_state): New enum.
|
|
|
|
|
(struct gomp_target_task): Add state, tgt, task and team fields.
|
|
|
|
|
(gomp_create_target_task): Change return type to bool, add
|
|
|
|
|
state argument.
|
|
|
|
|
(gomp_target_task_fn): Change return type to bool.
|
|
|
|
|
(struct gomp_device_descr): Add async_run_func.
|
|
|
|
|
(struct gomp_task): Remove children, next_child, prev_child,
|
|
|
|
|
next_queue, prev_queue, next_taskgroup, prev_taskgroup.
|
|
|
|
|
Add pnode field.
|
|
|
|
|
(struct gomp_taskgroup): Remove children.
|
|
|
|
|
Add taskgroup_queue.
|
|
|
|
|
(struct gomp_team): Change task_queue type to a priority queue.
|
|
|
|
|
(splay_compare): Define inline.
|
|
|
|
|
(priority_queue_offset): New.
|
|
|
|
|
(priority_node_to_task): New.
|
|
|
|
|
(task_to_priority_node): New.
|
|
|
|
|
* oacc-mem.c: Do not include splay-tree.h.
|
|
|
|
|
* priority_queue.c: New file.
|
|
|
|
|
* priority_queue.h: New file.
|
|
|
|
|
* splay-tree.c: Do not include splay-tree.h.
|
|
|
|
|
(splay_tree_foreach_internal): New.
|
|
|
|
|
(splay_tree_foreach): New.
|
|
|
|
|
* splay-tree.h: Become re-entrant if splay_tree_prefix is defined.
|
|
|
|
|
(splay_tree_callback): Define typedef.
|
|
|
|
|
* target.c (splay_compare): Move to libgomp.h.
|
|
|
|
|
(GOMP_target): Don't adjust *thr in any way around running offloaded
|
|
|
|
|
task.
|
|
|
|
|
(GOMP_target_ext): Likewise. Handle target nowait.
|
|
|
|
|
(GOMP_target_update_ext, GOMP_target_enter_exit_data): Check
|
|
|
|
|
return value from gomp_create_target_task, if false, fallthrough
|
|
|
|
|
as if no dependencies exist.
|
|
|
|
|
(gomp_target_task_fn): Change return type to bool, return true
|
|
|
|
|
if the task should have another part scheduled later. Handle
|
|
|
|
|
target nowait.
|
|
|
|
|
(gomp_load_plugin_for_device): Initialize async_run.
|
|
|
|
|
* task.c (gomp_init_task): Initialize children_queue.
|
|
|
|
|
(gomp_clear_parent_in_list): New.
|
|
|
|
|
(gomp_clear_parent_in_tree): New.
|
|
|
|
|
(gomp_clear_parent): Handle priorities.
|
|
|
|
|
(GOMP_task): Likewise.
|
|
|
|
|
(priority_queue_move_task_first,
|
|
|
|
|
gomp_target_task_completion, GOMP_PLUGIN_target_task_completion):
|
|
|
|
|
New functions.
|
|
|
|
|
(gomp_create_target_task): Use priority queues. Change return type
|
|
|
|
|
to bool, add state argument, return false if for async
|
|
|
|
|
{{enter,exit} data,update} constructs no dependencies need to be
|
|
|
|
|
waited for, handle target nowait. Set task->fn to NULL instead of
|
|
|
|
|
gomp_target_task_fn.
|
|
|
|
|
(verify_children_queue): Remove.
|
|
|
|
|
(priority_list_upgrade_task): New.
|
|
|
|
|
(priority_queue_upgrade_task): New.
|
|
|
|
|
(verify_task_queue): Remove.
|
|
|
|
|
(priority_list_downgrade_task): New.
|
|
|
|
|
(priority_queue_downgrade_task): New.
|
|
|
|
|
(gomp_task_run_pre): Use priority queues.
|
|
|
|
|
Abstract code out to priority_queue_downgrade_task.
|
|
|
|
|
(gomp_task_run_post_handle_dependers): Use priority queues.
|
|
|
|
|
(gomp_task_run_post_remove_parent): Likewise.
|
|
|
|
|
(gomp_task_run_post_remove_taskgroup): Likewise.
|
|
|
|
|
(gomp_barrier_handle_tasks): Likewise. Handle target nowait target
|
|
|
|
|
tasks specially.
|
|
|
|
|
(GOMP_taskwait): Likewise.
|
|
|
|
|
(gomp_task_maybe_wait_for_dependencies): Likewise. Abstract code to
|
|
|
|
|
priority-queue_upgrade_task.
|
|
|
|
|
(GOMP_taskgroup_start): Use priority queues.
|
|
|
|
|
(GOMP_taskgroup_end): Likewise. Handle target nowait target tasks
|
|
|
|
|
specially. If taskgroup is NULL, and thr->ts.level is 0, act as a
|
|
|
|
|
barrier.
|
|
|
|
|
* taskloop.c (GOMP_taskloop): Handle priorities.
|
|
|
|
|
* team.c (gomp_new_team): Call priority_queue_init.
|
|
|
|
|
(free_team): Call priority_queue_free.
|
|
|
|
|
(gomp_free_thread): Call gomp_team_end if thr->ts.team is artificial
|
|
|
|
|
team created for target nowait in implicit parallel region.
|
|
|
|
|
(gomp_team_start): For nested check, test thr->ts.level instead of
|
|
|
|
|
thr->ts.team != NULL.
|
|
|
|
|
* testsuite/libgomp.c/doacross-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/ordered-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/priority.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-31.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-32.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-33.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-34.c: New test.
|
|
|
|
|
|
2015-11-13 17:53:28 +01:00
|
|
|
|
2015-11-13 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2015-11-13 22:51:32 +01:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: New.
|
|
|
|
|
|
2015-11-13 17:53:28 +01:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Sequential
|
|
|
|
|
loop is sequential.
|
|
|
|
|
|
2015-11-13 16:08:11 +01:00
|
|
|
|
2015-11-13 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-dbl.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt.c: New.
|
|
|
|
|
|
2015-11-12 23:20:41 +01:00
|
|
|
|
2015-11-12 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.map (GOACC_2.0.1): Export GOACC_declare.
|
|
|
|
|
* oacc-parallel.c (GOACC_declare): New function.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/declare-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/declare-1.C: Likewise.
|
|
|
|
|
|
2015-11-12 14:51:13 +01:00
|
|
|
|
2015-11-12 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/default-1.c: New.
|
|
|
|
|
|
2015-11-11 15:24:09 +01:00
|
|
|
|
2015-11-1 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/firstprivate-2.c: New.
|
|
|
|
|
|
2015-11-10 02:01:15 +01:00
|
|
|
|
2015-11-09 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2015-11-10 14:51:09 +01:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/firstprivate-1.c: Remove
|
|
|
|
|
inadvertent commit.
|
|
|
|
|
|
|
|
|
|
2015-11-09 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2015-11-10 02:01:15 +01:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: New.
|
|
|
|
|
|
2015-11-06 12:11:34 +01:00
|
|
|
|
2015-11-06 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: XFAIL.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
|
|
|
|
|
|
gcc/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* builtin-types.def
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
* cgraph.h (enum cgraph_simd_clone_arg_type): Add
SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
(struct cgraph_simd_clone_arg): Adjust comment.
* omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
to GOMP_target_ext. Add num_teams and thread_limit arguments.
(BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
to GOMP_target_data_ext.
(BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
to GOMP_target_update_ext.
(BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
* tree-core.h (enum omp_clause_schedule_kind): Add
OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
OMP_CLAUSE_SCHEDULE_LAST value.
* tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
* tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
OMP_FOR_CHECK. Remove comment.
* tree-pretty-print.c (dump_omp_clause): Handle
GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
Simplify. Print schedule clause modifiers.
* tree-vect-stmts.c (vectorizable_simd_clone_call): Add
SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
cases.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
(omp_default_clause): Tweak for
private/firstprivate/is_device_ptr variables on target
construct and use_device_ptr on target data.
(omp_check_private): Likewise.
(omp_notice_variable): For references check whether what it refers
to has mappable type, rather than the reference itself.
(omp_is_private): Diagnose linear iteration variables on non-simd
constructs.
(omp_no_lastprivate): Return true only for Fortran.
(gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
based array sections. Use GOMP_MAP_ALWAYS_P. Fix up handling of
lastprivate and linear when combined with distribute. Gimplify
variable low-bound for array reduction. Look through
POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
reductions.
(gimplify_adjust_omp_clauses_1): For implicit references to
variables with reference type and when not ref to scalar or
ref to pointer, map what they refer to using tofrom and
use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
(gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
from target exit data. Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
Drop OMP_CLAUSE_MAP_PRIVATE support. Use GOMP_MAP_ALWAYS_P.
Diagnose the same var on both firstprivate and lastprivate on
distribute construct.
(gimplify_omp_for): Fix up handling of predetermined
lastprivate or linear iter vars when combined with distribute.
(find_omp_teams, computable_teams_clause, optimize_target_teams): New
functions.
(gimplify_omp_workshare): Call optimize_target_teams.
* omp-low.c (struct omp_region): Add sched_modifiers field.
(struct omp_for_data): Likewise.
(omp_any_child_fn_dumped): New variable.
(extract_omp_for_data): Fill in sched_modifiers, and mask out
OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
from sched_kind.
(determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
bits of OMP_CLAUSE_SCHED_KIND.
(scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
drop OMP_CLAUSE_MAP_PRIVATE support. Look through POINTER_PLUS_EXPR
for array section reductions.
(add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
for distribute parallel for, if there are lastprivate clauses on the
for.
(lower_rec_input_clauses): Handle non-zero low-bound on array
section reductions.
(lower_reduction_clauses): Likewise.
(lower_send_clauses): Look through POINTER_PLUS_EXPR
for array section reductions.
(expand_parallel_call): Use nonmonotonic entrypoints for
nonmonotonic: dynamic/guided.
(expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
child_fn if current_function_decl has assembler name set, but child_fn
does not. Dump the header and IL of the child function when not in SSA
form.
(expand_omp_target): Likewise. Pass num_teams and thread_limit
arguments to BUILT_IN_GOMP_TARGET.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
Initialize the extra _looptemp_ clause to fd->loop.n2.
(expand_omp_for): Use nonmonotonic entrypoints for
nonmonotonic: dynamic/guided. Initialize region->sched_modifiers.
(expand_omp): Clear omp_any_child_fn_dumped. Dump function header
again if we have dumped any child functions.
(lower_omp_for_lastprivate): Determine the right count variable
for distribute simd, or distribute parallel for{, simd}.
(lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
and GOMP_MAP_ALWAYS_POINTER. Drop OMP_CLAUSE_MAP_PRIVATE
support.
(simd_clone_clauses_extract): Handle variable step
for references and arguments passed by reference.
(simd_clone_mangle): Mangle ref/uval/val variable steps.
(simd_clone_adjust_argument_types): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
(simd_clone_linear_addend): New function.
(simd_clone_adjust): Handle variable step like similarly
to constant step, use simd_clone_linear_addend to determine
the actual step at runtime.
gcc/c-family/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
* c-common.h (c_finish_omp_atomic): Add TEST argument.
(c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
* c-omp.c (c_finish_omp_atomic): Add TEST argument. Don't call
save_expr or create_tmp_var* if TEST is true.
(c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
Don't call add_stmt here.
(struct c_omp_check_loop_iv_data): New type.
(c_omp_check_loop_iv_r, c_omp_check_loop_iv,
c_omp_check_loop_iv_exprs): New functions.
(c_omp_split_clauses): Adjust for lastprivate being allowed on
distribute.
(c_omp_declare_simd_clauses_to_numbers): Change
OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
(c_omp_declare_simd_clauses_to_decls): Similarly change those
from numbers to PARM_DECLs.
gcc/c/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* c-parser.c: Include context.h and gimple-expr.h.
(c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
monotonic together with nonmonotonic.
(c_parser_omp_for_loop): Call c_omp_check_loop_iv. Call add_stmt here.
(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
(c_parser_omp_target_data, c_parser_omp_target_enter_data,
c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
(c_parser_omp_target): Likewise. Evaluate num_teams and thread_limit
expressions on combined target teams before the target.
(c_parser_omp_declare_target): If decl has "omp declare target" or
"omp declare target link" attribute, and cgraph or varpool node already
exists, then set corresponding flags. Call c_finish_omp_clauses
in the parenthesized extended-list syntax case.
* c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
declare target.
* c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
on OMP_CLAUSE_REDUCTION array sections.
(handle_omp_array_sections): Encode low-bound into the MEM_REF, either
into the constant offset, or for variable low-bound using
POINTER_PLUS_EXPR. For structure element based array sections use
GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
(c_finish_omp_clauses): Drop generic_field_head, structure
elements are now always mapped even as array section bases,
diagnose same var in data sharing and mapping clauses. Diagnose if
linear step on declare simd is neither a constant nor a uniform
parameter. Look through POINTER_PLUS_EXPR for array section
reductions. Diagnose the same var or function appearing multiple
times on the same directive. Fix up wording for the to clause if t
is neither a FUNCTION_DECL nor a VAR_DECL. Diagnose nonmonotonic
modifier on kinds other than dynamic or guided or nonmonotonic
modifier together with ordered clause.
gcc/cp/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* cp-tree.h (finish_omp_for): Add ORIG_INITS argument.
(omp_privatize_field): Add SHARED argument.
* parser.c: Include context.h.
(cp_parser_omp_clause_schedule): Parse schedule
modifiers, diagnose monotonic together with nonmonotonic.
(cp_parser_omp_clause_linear): Add DECLARE_SIMD argument. Parse
parameter name as linear step as id-expression rather than expression.
(cp_parser_omp_all_clauses): Adjust caller.
(cp_parser_omp_for_loop_init): Add ORIG_INIT argument,
initialize it. Adjust omp_privatize_field caller.
(cp_parser_omp_for_loop): Compute orig_inits, pass it's address
to finish_omp_for.
(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
(cp_parser_omp_target_data,
cp_parser_omp_target_enter_data,
cp_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER
and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
(cp_parser_omp_target): Likewise. Evaluate num_teams and
thread_limit expressions on combined target teams before the target.
(cp_parser_omp_declare_target): If decl has "omp declare target" or
"omp declare target link" attribute, and cgraph or varpool node already
exists, then set corresponding flags. Call finish_omp_clauses
in the parenthesized extended-list syntax case. Call
cp_parser_require_pragma_eol instead of cp_parser_skip_to_pragma_eol.
(cp_parser_omp_end_declare_target): Call cp_parser_require_pragma_eol
instead of cp_parser_skip_to_pragma_eol.
* decl2.c (cplus_decl_attributes): Don't diagnose block scope vars inside
declare target.
* pt.c (tsubst_omp_clauses): If OMP_CLAUSE_LINEAR_VARIABLE_STRIDE,
use tsubst_omp_clause_decl instead of tsubst_expr on
OMP_CLAUSE_LINEAR_STEP. Handle non-static data members in shared
clauses.
(tsubst_omp_for_iterator): Adjust omp_privatize_field caller.
(tsubst_find_omp_teams): New function.
(tsubst_expr): Evaluate num_teams and thread_limit expressions on
combined target teams before the target. Use OMP_FOR_ORIG_DECLS for
all OpenMP/OpenACC/Cilk+ looping constructs. Adjust finish_omp_for
caller.
* semantics.c (omp_privatize_field): Add SHARED argument, if true,
always create artificial var and never put it into the hash table
or vector.
(handle_omp_array_sections_1): Adjust omp_privatize_field caller.
Allow non-zero low-bound on OMP_CLAUSE_REDUCTION array sections.
(handle_omp_array_sections): For structure element
based array sections use GOMP_MAP_ALWAYS_POINTER instead of
GOMP_MAP_FIRSTPRIVATE_POINTER. Encode low-bound into the MEM_REF,
either into the constant offset, or for variable low-bound using
POINTER_PLUS_EXPR.
(finish_omp_clauses): Adjust omp_privatize_field caller. Drop
generic_field_head, structure elements are now always mapped even
as array section bases, diagnose same var in data sharing and
mapping clauses. For references map what they refer to using
GOMP_MAP_ALWAYS_POINTER for structure elements and
GOMP_MAP_FIRSTPRIVATE_REFERENCE otherwise. Diagnose if linear step
on declare simd is neither a constant nor a uniform parameter.
Allow non-static data members on shared clauses. Look through
POINTER_PLUS_EXPR for array section reductions. Diagnose nonmonotonic
modifier on kinds other than dynamic or guided or nonmonotonic
modifier together with ordered clause. Diagnose the same var or
function appearing multiple times on the same directive. Fix up
wording for the to clause if t is neither a FUNCTION_DECL nor a
VAR_DECL, use special wording for OVERLOADs and TEMPLATE_ID_EXPR.
(handle_omp_for_class_iterator): Add ORIG_DECLS argument. Call
c_omp_check_loop_iv_exprs on cond.
(finish_omp_for): Add ORIG_INITS argument. Call
c_omp_check_loop_iv_exprs on ORIG_INITS elements. Adjust
handle_omp_for_class_iterator caller. Call c_omp_check_loop_iv.
Call add_stmt.
(finish_omp_atomic): Adjust c_finish_omp_atomic caller.
gcc/fortran/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
* types.def (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
gcc/testsuite/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
* c-c++-common/gomp/clauses-2.c (foo): Adjust for diagnostics
of variables in both data sharing and mapping clauses and for
structure element based array sections being mapped rather than
privatized.
* c-c++-common/gomp/declare-target-2.c: Add various new tests. Adjust
expected diagnostics wording in one case.
* c-c++-common/gomp/distribute-1.c: New test.
* c-c++-common/gomp/element-1.c: New test.
* c-c++-common/gomp/pr61486-2.c: Add #pragma omp declare target
and #pragma omp end declare target pair around the function.
Change s from a parameter to a file scope variable.
* c-c++-common/gomp/pr67521.c: Add dg-error directives.
* c-c++-common/gomp/reduction-1.c (foo): Don't expect diagnostics
on non-zero low-bound in reduction array sections. Add further
tests.
* c-c++-common/gomp/schedule-modifiers-1.c: New test.
* c-c++-common/gomp/target-teams-1.c: New test.
* gcc.dg/gomp/declare-simd-1.c: Add scan-assembler-times directives
for expected mangling on x86_64/i?86.
* gcc.dg/gomp/declare-simd-3.c: New test.
* gcc.dg/gomp/declare-simd-4.c: New test.
* gcc.dg/gomp/for-20.c: New test.
* gcc.dg/gomp/for-21.c: New test.
* gcc.dg/gomp/for-22.c: New test.
* gcc.dg/gomp/for-23.c: New test.
* gcc.dg/gomp/for-24.c: New test.
* gcc.dg/gomp/linear-1.c: New test.
* gcc.dg/gomp/loop-1.c: New test.
* g++.dg/gomp/atomic-17.C: New test.
* g++.dg/gomp/clause-1.C (T::test): Don't expect error on
non-static data member in shared clause. Add single construct.
* g++.dg/gomp/declare-simd-1.C: Add dg-options. Add
scan-assembler-times directives for expected mangling on x86_64/i?86.
* g++.dg/gomp/declare-simd-3.C: Likewise.
* g++.dg/gomp/declare-simd-4.C: New test.
* g++.dg/gomp/declare-simd-5.C: New test.
* g++.dg/gomp/declare-target-1.C: New test.
* g++.dg/gomp/linear-2.C: New test.
* g++.dg/gomp/loop-1.C: New test.
* g++.dg/gomp/loop-2.C: New test.
* g++.dg/gomp/loop-3.C: New test.
* g++.dg/gomp/member-2.C (B::m2, B::m4): Don't expect error on
non-static data member in shared clause.
* g++.dg/gomp/member-3.C: New test.
* g++.dg/gomp/member-4.C: New test.
* g++.dg/gomp/pr38639.C (foo): Adjust dg-error.
(bar): Remove dg-message.
* g++.dg/gomp/target-teams-1.C: New test.
include/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_2): Define.
(GOMP_MAP_FLAG_ALWAYS): Remove.
(enum gomp_map_kind): Use GOMP_MAP_FLAG_SPECIAL_2 instead of
GOMP_MAP_FLAG_ALWAYS for GOMP_MAP_ALWAYS_TO, GOMP_MAP_ALWAYS_FROM,
GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT, GOMP_MAP_RELEASE.
Add GOMP_MAP_ALWAYS_POINTER and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
(GOMP_MAP_ALWAYS_P): Define.
(GOMP_TARGET_FLAG_NOWAIT): Adjust comment.
libgomp/
2015-11-05 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_next,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_next,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_parallel_loop_nonmonotonic_dynamic,
GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
(GOMP_target_41): Renamed to ...
(GOMP_target_ext): ... this. Add num_teams and thread_limit
arguments.
(GOMP_target_data_41): Renamed to ...
(GOMP_target_data_ext): ... this.
(GOMP_target_update_41): Renamed to ...
(GOMP_target_update_ext): ... this.
* libgomp.map (GOMP_4.5): Export GOMP_target_ext,
GOMP_target_data_ext and GOMP_target_update_ext instead of
GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
Export GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_next,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_next,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_parallel_loop_nonmonotonic_dynamic and
GOMP_parallel_loop_nonmonotonic_guided.
* loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
GOMP_parallel_loop_nonmonotonic_guided,
GOMP_loop_nonmonotonic_dynamic_start,
GOMP_loop_nonmonotonic_guided_start,
GOMP_loop_nonmonotonic_dynamic_next,
GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
* loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
GOMP_loop_ull_nonmonotonic_guided_start,
GOMP_loop_ull_nonmonotonic_dynamic_next,
GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
* target.c (gomp_map_0len_lookup, gomp_map_val): New inline
functions.
(gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER. For
GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
Use gomp_map_val function.
(gomp_target_fallback_firstprivate): New static function.
(GOMP_target_41): Renamed to ...
(GOMP_target_ext): ... this. Add num_teams and thread_limit
arguments. Move firstprivate fallback handling into a new
function.
(GOMP_target_data_41): Renamed to ...
(GOMP_target_data_ext): ... this.
(GOMP_target_update_41): Renamed to ...
(GOMP_target_update_ext): ... this.
(gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
gomp_map_0len_lookup instead of gomp_map_lookup.
(omp_target_is_present): Use gomp_map_0len_lookup instead of
gomp_map_lookup.
* testsuite/libgomp.c/target-28.c: Likewise.
* testsuite/libgomp.c/monotonic-1.c: New test.
* testsuite/libgomp.c/monotonic-2.c: New test.
* testsuite/libgomp.c/nonmonotonic-1.c: New test.
* testsuite/libgomp.c/nonmonotonic-2.c: New test.
* testsuite/libgomp.c/pr66199-5.c: New test.
* testsuite/libgomp.c/pr66199-6.c: New test.
* testsuite/libgomp.c/pr66199-7.c: New test.
* testsuite/libgomp.c/pr66199-8.c: New test.
* testsuite/libgomp.c/pr66199-9.c: New test.
* testsuite/libgomp.c/reduction-11.c: New test.
* testsuite/libgomp.c/reduction-12.c: New test.
* testsuite/libgomp.c/reduction-13.c: New test.
* testsuite/libgomp.c/reduction-14.c: New test.
* testsuite/libgomp.c/reduction-15.c: New test.
* testsuite/libgomp.c/target-12.c (main): Adjust for
omp_target_is_present change for one-past-last element.
* testsuite/libgomp.c/target-17.c (foo): Drop tests where
the same var is both mapped and privatized.
* testsuite/libgomp.c/target-19.c (foo): Adjust for different
handling of zero-length array sections.
* testsuite/libgomp.c/target-28.c: New test.
* testsuite/libgomp.c/target-29.c: New test.
* testsuite/libgomp.c/target-30.c: New test.
* testsuite/libgomp.c/target-teams-1.c: New test.
* testsuite/libgomp.c++/member-6.C: New test.
* testsuite/libgomp.c++/member-7.C: New test.
* testsuite/libgomp.c++/monotonic-1.C: New test.
* testsuite/libgomp.c++/monotonic-2.C: New test.
* testsuite/libgomp.c++/nonmonotonic-1.C: New test.
* testsuite/libgomp.c++/nonmonotonic-2.C: New test.
* testsuite/libgomp.c++/pr66199-3.C: New test.
* testsuite/libgomp.c++/pr66199-4.C: New test.
* testsuite/libgomp.c++/pr66199-5.C: New test.
* testsuite/libgomp.c++/pr66199-6.C: New test.
* testsuite/libgomp.c++/pr66199-7.C: New test.
* testsuite/libgomp.c++/pr66199-8.C: New test.
* testsuite/libgomp.c++/pr66199-9.C: New test.
* testsuite/libgomp.c++/reduction-11.C: New test.
* testsuite/libgomp.c++/reduction-12.C: New test.
* testsuite/libgomp.c++/target-13.C: New test.
* testsuite/libgomp.c++/target-14.C: New test.
* testsuite/libgomp.c++/target-15.C: New test.
* testsuite/libgomp.c++/target-16.C: New test.
* testsuite/libgomp.c++/target-17.C: New test.
* testsuite/libgomp.c++/target-18.C: New test.
* testsuite/libgomp.c++/target-19.C: New test.
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
From-SVN: r229814
2015-11-05 16:08:08 +01:00
|
|
|
|
2015-11-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
|
|
|
|
|
GOMP_loop_nonmonotonic_dynamic_start,
|
|
|
|
|
GOMP_loop_nonmonotonic_guided_next,
|
|
|
|
|
GOMP_loop_nonmonotonic_guided_start,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_next,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_next,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_start,
|
|
|
|
|
GOMP_parallel_loop_nonmonotonic_dynamic,
|
|
|
|
|
GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
|
|
|
|
|
(GOMP_target_41): Renamed to ...
|
|
|
|
|
(GOMP_target_ext): ... this. Add num_teams and thread_limit
|
|
|
|
|
arguments.
|
|
|
|
|
(GOMP_target_data_41): Renamed to ...
|
|
|
|
|
(GOMP_target_data_ext): ... this.
|
|
|
|
|
(GOMP_target_update_41): Renamed to ...
|
|
|
|
|
(GOMP_target_update_ext): ... this.
|
|
|
|
|
* libgomp.map (GOMP_4.5): Export GOMP_target_ext,
|
|
|
|
|
GOMP_target_data_ext and GOMP_target_update_ext instead of
|
|
|
|
|
GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
|
|
|
|
|
Export GOMP_loop_nonmonotonic_dynamic_next,
|
|
|
|
|
GOMP_loop_nonmonotonic_dynamic_start,
|
|
|
|
|
GOMP_loop_nonmonotonic_guided_next,
|
|
|
|
|
GOMP_loop_nonmonotonic_guided_start,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_next,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_next,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_start,
|
|
|
|
|
GOMP_parallel_loop_nonmonotonic_dynamic and
|
|
|
|
|
GOMP_parallel_loop_nonmonotonic_guided.
|
|
|
|
|
* loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
|
|
|
|
|
GOMP_parallel_loop_nonmonotonic_guided,
|
|
|
|
|
GOMP_loop_nonmonotonic_dynamic_start,
|
|
|
|
|
GOMP_loop_nonmonotonic_guided_start,
|
|
|
|
|
GOMP_loop_nonmonotonic_dynamic_next,
|
|
|
|
|
GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
|
|
|
|
|
* loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_start,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_dynamic_next,
|
|
|
|
|
GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
|
|
|
|
|
* target.c (gomp_map_0len_lookup, gomp_map_val): New inline
|
|
|
|
|
functions.
|
|
|
|
|
(gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER. For
|
|
|
|
|
GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
|
|
|
|
|
Use gomp_map_val function.
|
|
|
|
|
(gomp_target_fallback_firstprivate): New static function.
|
|
|
|
|
(GOMP_target_41): Renamed to ...
|
|
|
|
|
(GOMP_target_ext): ... this. Add num_teams and thread_limit
|
|
|
|
|
arguments. Move firstprivate fallback handling into a new
|
|
|
|
|
function.
|
|
|
|
|
(GOMP_target_data_41): Renamed to ...
|
|
|
|
|
(GOMP_target_data_ext): ... this.
|
|
|
|
|
(GOMP_target_update_41): Renamed to ...
|
|
|
|
|
(GOMP_target_update_ext): ... this.
|
|
|
|
|
(gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
|
|
|
|
|
gomp_map_0len_lookup instead of gomp_map_lookup.
|
|
|
|
|
(omp_target_is_present): Use gomp_map_0len_lookup instead of
|
|
|
|
|
gomp_map_lookup.
|
|
|
|
|
* testsuite/libgomp.c/target-28.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/monotonic-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/monotonic-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/nonmonotonic-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/nonmonotonic-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-8.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-9.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-11.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-12.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-13.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-14.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-15.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-12.c (main): Adjust for
|
|
|
|
|
omp_target_is_present change for one-past-last element.
|
|
|
|
|
* testsuite/libgomp.c/target-17.c (foo): Drop tests where
|
|
|
|
|
the same var is both mapped and privatized.
|
|
|
|
|
* testsuite/libgomp.c/target-19.c (foo): Adjust for different
|
|
|
|
|
handling of zero-length array sections.
|
|
|
|
|
* testsuite/libgomp.c/target-28.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-29.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-30.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-teams-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/member-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/member-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/monotonic-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/monotonic-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/nonmonotonic-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/nonmonotonic-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-9.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-12.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-13.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-14.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-15.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-16.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-17.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-18.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-19.C: New test.
|
|
|
|
|
|
2015-11-04 21:48:05 +01:00
|
|
|
|
2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions
|
|
|
|
|
and reduction copy.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New.
|
|
|
|
|
|
2015-11-04 18:01:23 +01:00
|
|
|
|
2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
|
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New.
|
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-v-1.c: New.
|
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-v-2.c: New.
|
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-w-1.c: New.
|
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-w-2.c: New.
|
|
|
|
|
* libgomp.oacc-c-c++-common/loop-red-wv-1.c: New.
|
|
|
|
|
* libgomp.oacc-fortran/reduction-5.f90: Avoid reference var.
|
|
|
|
|
|
2015-11-03 21:18:33 +01:00
|
|
|
|
2015-11-03 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (struct acc_dispatch_t): Remove args from exec_func.
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Remove sizes & kinds arg.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_parallel): Likewise.
|
|
|
|
|
* oacc-host.c (host_openacc_exec): Likewise.
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel_keyed): Adjust exec_func call.
|
|
|
|
|
|
2015-11-03 12:28:22 +01:00
|
|
|
|
2015-11-03 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.
|
|
|
|
|
|
|
|
|
|
2015-11-03 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
|
|
|
|
|
file.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
|
|
|
|
|
|
2015-10-30 01:13:22 +01:00
|
|
|
|
2015-10-29 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* openacc.h (enum acc_device_t): Reformat. Ensure layout
|
|
|
|
|
compatibility.
|
|
|
|
|
(enum acc_async_t): Reformat.
|
|
|
|
|
(acc_on_device): Declare compatible with builtin and provide C++
|
|
|
|
|
wrapper.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc-on-device.c: New.
|
|
|
|
|
|
2015-10-29 10:03:40 +01:00
|
|
|
|
2015-10-29 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/combdir-1.c: Rename to...
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c:
|
|
|
|
|
... this. Add a description of the test at the top of the file.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/combdir-1.f90: Rename file to...
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/combined-directives-1.f90:
|
|
|
|
|
... this. Add a description of the test at the top of the file.
|
|
|
|
|
|
2015-10-28 15:27:30 +01:00
|
|
|
|
2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: New.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: New.
|
|
|
|
|
|
2015-10-28 04:00:10 +01:00
|
|
|
|
2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_exec): Remove check on compute
|
|
|
|
|
dimensions.
|
|
|
|
|
|
2015-10-27 11:32:32 +01:00
|
|
|
|
2015-10-27 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/68063
|
|
|
|
|
* testsuite/libgomp.c++/member-1.C (A::m1): Add missing private clause.
|
|
|
|
|
|
[PR c/64765, c/64880] Support OpenACC Combined Directives in C, C++
gcc/c-family/
PR c/64765
PR c/64880
* c-common.h (c_oacc_split_loop_clauses): Declare function.
* c-omp.c (c_oacc_split_loop_clauses): New function.
gcc/c/
PR c/64765
PR c/64880
* c-parser.c (c_parser_oacc_loop): Add mask, cclauses formal
parameters, and handle these. Adjust all users.
(c_parser_oacc_kernels, c_parser_oacc_parallel): Merge functions
into...
(c_parser_oacc_kernels_parallel): ... this new function. Adjust
all users.
* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels): Don't
declare functions.
(c_finish_omp_construct): Declare function.
* c-typeck.c (c_finish_oacc_parallel, c_finish_oacc_kernels):
Merge functions into...
(c_finish_omp_construct): ... this new function.
gcc/cp/
PR c/64765
PR c/64880
* cp-tree.h (finish_oacc_kernels, finish_oacc_parallel): Don't
declare functions.
(finish_omp_construct): Declare function.
* parser.c (cp_parser_oacc_loop): Add p_name, mask, cclauses
formal parameters, and handle these. Adjust all users.
(cp_parser_oacc_kernels, cp_parser_oacc_parallel): Merge functions
into...
(cp_parser_oacc_kernels_parallel): ... this new function. Adjust
all users.
* semantics.c (finish_oacc_kernels, finish_oacc_parallel): Merge functions into...
(finish_omp_construct): ... this new function.
gcc/
* tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
(OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
(OACC_PARALLEL_COMBINED): Don't define macros. Adjust all users.
gcc/testsuite/
PR c/64765
PR c/64880
* c-c++-common/goacc/loop-1.c: Don't skip for C++. Don't prune
sorry message.
(PR64765): New function.
* gfortran.dg/goacc/coarray_2.f90: XFAIL.
* gfortran.dg/goacc/combined_loop.f90: Extend. Don't prune
sorry message.
* gfortran.dg/goacc/cray.f95: Refine prune directive.
* gfortran.dg/goacc/parameter.f95: Likewise.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file.
* testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise.
From-SVN: r229404
2015-10-27 09:39:15 +01:00
|
|
|
|
2015-10-27 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/combdir-1.c: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/combdir-1.f90: Likewise.
|
|
|
|
|
|
2015-10-26 17:24:17 +01:00
|
|
|
|
2015-10-26 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2015-10-26 17:25:04 +01:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Print to stderr.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
|
|
|
|
|
|
2015-10-26 17:24:54 +01:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Remove explicit
|
|
|
|
|
acc_device_nvidia usage.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
|
|
|
|
|
|
2015-10-26 17:24:44 +01:00
|
|
|
|
* oacc-init.c (acc_shutdown): Call gomp_init_targets_once.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-8.c: New file.
|
|
|
|
|
|
2015-10-26 17:24:28 +01:00
|
|
|
|
PR libgomp/66518
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: Resolve XFAIL.
|
|
|
|
|
|
2015-10-26 17:24:17 +01:00
|
|
|
|
PR libgomp/65437
|
|
|
|
|
PR libgomp/66518
|
|
|
|
|
* oacc-mem.c (update_dev_host): Call goacc_lazy_initialize.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Remove XFAIL.
|
|
|
|
|
|
2015-10-23 12:45:13 +02:00
|
|
|
|
2015-10-23 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/68063
|
|
|
|
|
* testsuite/libgomp.c++/member-2.C (A::m1): Add missing private clause.
|
|
|
|
|
|
2015-10-20 23:09:09 +02:00
|
|
|
|
2015-10-20 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Set sane
|
|
|
|
|
vector_length.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
|
|
|
|
|
|
2015-10-14 20:37:10 +02:00
|
|
|
|
2015-10-14 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
Aleksander Ivanushenko <aleksander.ivanushenko@intel.com>
|
|
|
|
|
|
|
|
|
|
* target.c (gomp_map_vars): Initialize tgt->tgt_start and tgt->tgt_end
|
|
|
|
|
to 0 when mapnum is 0.
|
|
|
|
|
|
2015-10-14 10:30:52 +02:00
|
|
|
|
2015-10-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* fortran.c (omp_get_place_proc_ids_, omp_get_partition_place_nums_):
|
|
|
|
|
Cast to int from int32_t.
|
|
|
|
|
|
builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR, [...]): New.
gcc/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
* cgraph.h (enum cgraph_simd_clone_arg_type): Add
SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
(struct cgraph_simd_clone_arg): Adjust comment.
* coretypes.h (struct gomp_ordered): New forward decl.
* gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
set critical clauses to it.
(gimple_build_omp_ordered): Return gomp_ordered * instead of
gimple *. Add CLAUSES argument, set ordered clauses to it.
(gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
GIMPLE_OMP_ORDERED.
* gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
* gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP. Add another bit
to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP. Adjust
GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
Add another bit to GF_OMP_TARGET_KIND_MASK mask. Add
GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
renumber
GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
(gomp_critical): Add clauses field.
(gomp_ordered): New struct.
(is_a_helper <gomp_ordered *>::test): New inline.
(gimple_build_omp_critical): Add CLAUSES argument.
(gimple_build_omp_ordered): Likewise. Return gomp_ordered *
instead of gimple *.
(gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
inline functions.
* gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
(dump_gimple_omp_target): Handle enter data and exit data.
(dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
(dump_gimple_omp_critical): Print clauses.
(dump_gimple_omp_ordered): New function.
(dump_gimple_omp_task): Handle taskloop.
(pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
GIMPLE_OMP_ORDERED.
* gimple-walk.c (walk_gimple_op): Walk clauses on
GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
(enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
(struct gimplify_omp_ctx): Add loop_iter_var,
target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
and target_firstprivatize_array_bases fields.
(delete_omp_context): Release loop_iter_var.
(gimplify_bind_expr): Handle ORT_NONE.
(maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
ORT_COMBINED_TARGET.
(is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
(omp_firstprivatize_variable): Handle ORT_NONE. Adjust check for
ORT_TARGET for the addition of ORT_COMBINED_TARGET. Handle
ctx->target_map_scalars_firstprivate.
(omp_add_variable): Handle ORT_NONE. Allow map clause together with
data sharing clauses. For data sharing clause with VLA decl
on omp target/target data don't add firstprivate for the pointer.
Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
(omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
the addition of ORT_COMBINED_TARGET.
(omp_notice_variable): Handle ORT_NONE. Adjust check for ORT_TARGET
for the addition of ORT_COMBINED_TARGET. Handle implicit mapping of
pointers as zero length array sections and
ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
data sharing.
(omp_check_private): Handle omp_member_access_dummy_var vars.
(find_decl_expr): New function.
(gimplify_scan_omp_clauses): Add CODE argument. For OMP_CLAUSE_IF
complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
Handle OMP_CLAUSE_GANG separately. Handle
OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
clauses. Diagnose linear clause on combined
distribute {, parallel for} simd construct, unless it is the loop
iterator. Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
Handle map clauses with COMPONENT_REF. Initialize
ctx->target_map_scalars_firstprivate,
ctx->target_firstprivatize_array_bases and
ctx->target_map_pointers_as_0len_arrays. Add firstprivate for
linear clause even to target region if combined. Remove
map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
OMP_TARGET_{,ENTER_,EXIT_}DATA. For GOMP_MAP_FIRSTPRIVATE_POINTER
map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}. Handle
OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
For linear clause on worksharing loop combined with parallel add
shared clause on the parallel. Handle OMP_CLAUSE_REDUCTION
with MEM_REF OMP_CLAUSE_DECL. Set DECL_NAME on
omp_member_access_dummy_var vars. Add lastprivate clause to outer
taskloop if needed.
(gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
GOMP_MAP_POINTER.
(gimplify_adjust_omp_clauses): Add CODE argument. Handle removal
of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
in target body. Handle removal of struct mapping if struct is not
seen in target body. Remove GOMP_MAP_STRUCT map clause on
OMP_TARGET_EXIT_DATA. Adjust check for ORT_TARGET for the
addition of ORT_COMBINED_TARGET. Use GOMP_MAP_FIRSTPRIVATE_POINTER
instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
for VLAs. Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
clause appear together. Handle
OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}. Don't remove map
clause if it has map-type-modifier always. Handle
OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
clauses.
(gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
callers.
(gimplify_omp_for): Likewise. Handle OMP_TASKLOOP. Initialize
loop_iter_var. Use OMP_FOR_ORIG_DECLS. Fix handling of lastprivate
iterators in doacross loops.
(gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
gimplify_adjust_omp_clauses callers. Use ORT_COMBINED_TARGET
for OMP_TARGET_COMBINED. Adjust check for ORT_TARGET
for the addition of ORT_COMBINED_TARGET.
(gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
gimplify_adjust_omp_clauses callers. Handle OMP_TARGET_ENTER_DATA
and OMP_TARGET_EXIT_DATA.
(gimplify_omp_ordered): New function.
(gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
OMP_TARGET_EXIT_DATA. Use gimplify_omp_ordered for OMP_ORDERED.
Gimplify clauses on OMP_CRITICAL.
* internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
expand_GOMP_SIMD_ORDERED_END): New functions.
* internal-fn.def (GOMP_SIMD_ORDERED_START,
GOMP_SIMD_ORDERED_END): New internal functions.
* omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
(BUILT_IN_GOMP_TASK): Add INT argument to the end.
(BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
adjust type.
(BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
GOMP_target_data_41, adjust type.
(BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
GOMP_target_update_41, adjust type.
* omp-low.c (struct omp_region): Adjust comments, add ord_stmt
field.
(struct omp_for_data): Add ordered and simd_schedule fields.
(omp_member_access_dummy_var, unshare_and_remap_1,
unshare_and_remap, is_taskloop_ctx): New functions.
(is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
(extract_omp_for_data): Handle taskloops and doacross loops
and simd schedule modifier.
(omp_adjust_chunk_size): New function.
(get_ws_args_for): Use it.
(lookup_sfield): Change first argument to splay_tree_key,
add overload with first argument tree.
(maybe_lookup_field): Likewise.
(use_pointer_for_field): Handle omp_member_access_dummy_var.
(omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
task_shared_vars, clear TREE_ADDRESSABLE on the copy.
(build_outer_var_ref): Add LASTPRIVATE argument, handle
taskloops and omp_member_access_dummy_var vars.
(build_sender_ref): Change first argument to splay_tree_key,
add overload with first argument tree.
(install_var_field): For mask & 8 use &DECL_UID as key instead
of the tree itself.
(fixup_child_record_type): Const qualify *.omp_data_i.
(scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
(create_omp_child_function): Set TREE_READONLY on .omp_data_i.
(find_combined_for): Allow searching for different GIMPLE_OMP_FOR
kinds.
(add_taskreg_looptemp_clauses): New function.
(scan_omp_parallel): Use it.
(scan_omp_task): Likewise.
(finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
(check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
and GF_OMP_TARGET_KIND_EXIT_DATA. Formatting fixes. Allow the
sandwiched taskloop constructs. Type check
OMP_CLAUSE_DEPEND_{KIND,SOURCE}. Allow ordered simd inside of simd
region. Diagnose depend(source) or depend(sink:...) on
target constructs or task/taskloop.
(handle_simd_reference): Use get_name.
(lower_rec_input_clauses): Likewise. Ignore all
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
Allow _LOOPTEMP_ clause on GOMP_TASK. Unshare new_var
before passing it to omp_clause_{default,copy}_ctor. Handle
OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL. Set
lastprivate_firstprivate flag for linear that needs copyin and
copyout. Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
(lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
on taskloop lookup decl in outer context. Pass true to
build_outer_var_ref lastprivate argument. Handle
OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
outside of outer taskloop for.
(lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
OMP_CLAUSE_DECL.
(lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
GOMP_TASK. Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE. Handle
omp_member_access_dummy_var vars. Handle OMP_CLAUSE_REDUCTION
with MEM_REF OMP_CLAUSE_DECL. Use new lookup_sfield overload.
(lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
abstract origin. Handle omp_member_access_dummy_var vars.
(expand_parallel_call): Use expand_omp_build_assign.
(expand_task_call): Handle taskloop construct expansion. Add
REGION argument. Use GOMP_TASK_* defines instead of hardcoded
integers. Add priority argument to GOMP_task* calls. Or in
GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
GOMP_task call.
(expand_omp_build_assign): Add prototype. Add AFTER
argument, if true emit statements after *GSI_P and continue linking.
(expand_omp_taskreg): Adjust expand_task_call caller.
(expand_omp_for_init_counts): Rename zero_iter_bb argument to
zero_iter1_bb and first_zero_iter to first_zero_iter1, add
zero_iter2_bb and first_zero_iter2 arguments, handle computation
of counts even for ordered loops.
(expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
(expand_omp_ordered_source, expand_omp_ordered_sink,
expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
functions.
(expand_omp_for_generic): Use omp_adjust_chunk_size. Handle linear
clauses on worksharing loop. Handle DOACROSS loop expansion.
(expand_omp_for_static_nochunk): Handle linear clauses on
worksharing loop. Adjust expand_omp_for_init_counts
callers.
(expand_omp_for_static_chunk): Likewise. Use omp_adjust_chunk_size.
(expand_omp_simd): Handle addressable fd->loop.v. Adjust
expand_omp_for_init_counts callers.
(expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
functions.
(expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
Handle doacross loops.
(expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
GF_OMP_TARGET_KIND_EXIT_DATA. Pass flags and depend arguments to
GOMP_target_{41,update_41,enter_exit_data} libcalls.
(expand_omp): Don't expand ordered depend constructs here, record
ord_stmt instead for later expand_omp_for_generic.
(build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
clause as stand-alone directive.
(lower_omp_ordered_clauses): New function.
(lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
don't lower anything.
(lower_omp_for_lastprivate): Use last _looptemp_ clause
on taskloop for comparison.
(lower_omp_for): Handle taskloop constructs. Adjust OMP_CLAUSE_DECL
and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
expansion for linear adjustments.
(create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
(lower_depend_clauses): Assert not seeing sink/source depend kinds.
Set TREE_ADDRESSABLE on array. Change first argument from gimple *
to tree * pointing to the stmt's clauses.
(lower_omp_taskreg): Adjust lower_depend_clauses caller.
(lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
clauses. Always use short kind and 8-bit align shift.
(lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
(struct lower_omp_regimplify_operands_data): New type.
(lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
New functions.
(lower_omp_1): Use lower_omp_regimplify_operands instead of
gimple_regimplify_operands.
(make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
clause as stand-alone directive.
(simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
(simd_clone_mangle): Mangle the various linear kinds
per the new ABI.
(simd_clone_adjust_argument_types): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
(simd_clone_init_simd_arrays): Don't do anything for uval.
(simd_clone_adjust): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
* omp-low.h (omp_member_access_dummy_var): New prototype.
* passes.def (pass_simduid_cleanup): Schedule another copy of the
pass after all optimizations.
* tree.c (omp_clause_code_name): Add entries for
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
(omp_clause_num_ops): Likewise. Bump number of OMP_CLAUSE_REDUCTION
arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
(walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
OMP_CLAUSE_REDUCTION 5 arguments. Handle
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
clauses.
* tree-core.h (enum omp_clause_linear_kind): New.
(struct tree_omp_clause): Change type of map_kind
from unsigned char to unsigned int. Add subcode.if_modifier
and subcode.linear_kind fields.
(enum omp_clause_code): Add
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
(OMP_CLAUSE_REDUCTION): Document
OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
* tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
(OMP_CRITICAL): Move before OMP_SINGLE. Add OMP_CRITICAL_CLAUSES
operand.
(OMP_ORDERED): Move before OMP_SINGLE. Add OMP_ORDERED_CLAUSES
operand.
(OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
codes.
* tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
(OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
char.
(OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
(OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
(OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
(OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
* tree-inline.c (remap_gimple_stmt): Handle clauses on
GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL. For
IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
* tree-nested.c (convert_nonlocal_omp_clauses): Handle
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
clauses. Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
(convert_local_omp_clauses): Likewise.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
clauses. Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
OMP_CLAUSE_DEPEND_{SOURCE,SINK}. Use "delete" for
GOMP_MAP_FORCE_DEALLOC. Handle
GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
(dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
and clauses on OMP_ORDERED and OMP_CRITICAL.
* tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
(vectorize_loops): Adjust comments.
(pass_simduid_cleanup::execute): Likewise.
* tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
* wide-int.h (wi::gcd): New.
gcc/c-family/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
* c-common.c (enum c_builtin_type): Define DEF_FUNCTION_TYPE_9,
DEF_FUNCTION_TYPE_10 and DEF_FUNCTION_TYPE_11.
(c_define_builtins): Likewise.
* c-common.h (enum c_omp_clause_split): Add
C_OMP_CLAUSE_SPLIT_TASKLOOP.
(c_finish_omp_critical, c_finish_omp_ordered): Add CLAUSES argument.
(c_finish_omp_for): Add ORIG_DECLV argument.
* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP as
201511 instead of 201307.
* c-omp.c (c_finish_omp_critical): Add CLAUSES argument, set
OMP_CRITICAL_CLAUSES to it.
(c_finish_omp_ordered): Add CLAUSES argument, set
OMP_ORDERED_CLAUSES to it.
(c_finish_omp_for): Add ORIG_DECLV argument, set OMP_FOR_ORIG_DECLS
to it if OMP_FOR. Clear DECL_INITIAL on the IVs.
(c_omp_split_clauses): Handle OpenMP 4.5 combined/composite
constructs and new OpenMP 4.5 clauses. Clear
OMP_CLAUSE_SCHEDULE_SIMD if not combined with OMP_SIMD. Add
verification code.
* c-pragma.c (omp_pragmas_simd): Add taskloop.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKLOOP.
(enum pragma_omp_clause): Add
PRAGMA_OMP_CLAUSE_{DEFAULTMAP,GRAINSIZE,HINT,{IS,USE}_DEVICE_PTR}
and PRAGMA_OMP_CLAUSE_{LINK,NOGROUP,NUM_TASKS,PRIORITY,SIMD,THREADS}.
gcc/c/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
* c-parser.c (c_parser_pragma): Handle PRAGMA_OMP_ORDERED here.
(c_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
(c_parser_omp_variable_list): Handle structure elements for
map, to and from clauses. Handle array sections in reduction
clause. Formatting fixes.
(c_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
if clause modifiers.
(c_parser_omp_clause_num_tasks, c_parser_omp_clause_grainsize,
c_parser_omp_clause_priority, c_parser_omp_clause_hint,
c_parser_omp_clause_defaultmap, c_parser_omp_clause_use_device_ptr,
c_parser_omp_clause_is_device_ptr): New functions.
(c_parser_omp_clause_ordered): Parse optional parameter.
(c_parser_omp_clause_reduction): Handle array reductions.
(c_parser_omp_clause_schedule): Parse optional simd modifier.
(c_parser_omp_clause_nogroup, c_parser_omp_clause_orderedkind): New
functions.
(c_parser_omp_clause_linear): Parse linear clause modifiers.
(c_parser_omp_clause_depend_sink): New function.
(c_parser_omp_clause_depend): Parse source/sink depend kinds.
(c_parser_omp_clause_map): Parse release/delete map kinds and
optional always modifier.
(c_parser_oacc_all_clauses): Adjust c_parser_omp_clause_if
and c_finish_omp_clauses callers.
(c_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
(c_parser_oacc_cache): Adjust c_finish_omp_clauses caller.
(OMP_CRITICAL_CLAUSE_MASK): Define.
(c_parser_omp_critical): Parse critical clauses.
(c_parser_omp_for_loop): Handle doacross loops, adjust
c_finish_omp_for and c_finish_omp_clauses callers.
(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
(c_parser_omp_simd): Allow ordered clause if it has no parameter.
(OMP_FOR_CLAUSE_MASK): Add linear clause.
(c_parser_omp_for): Disallow ordered clause when combined with
distribute. Disallow linear clause when combined with distribute
and not combined with simd.
(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
(c_parser_omp_ordered): Add CONTEXT argument, remove LOC argument,
parse clauses and if depend clause is found, don't parse a body.
(c_parser_omp_parallel): Disallow copyin clause on target parallel.
Allow target parallel without for after it.
(OMP_TASK_CLAUSE_MASK): Add priority clause.
(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
(c_parser_omp_target_data): Diagnose no map clauses or clauses with
invalid kinds.
(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
(c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): New
functions.
(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
defaultmap and is_device_ptr clauses.
(c_parser_omp_target): Parse target parallel and target simd. Set
OMP_TARGET_COMBINED on combined constructs. Parse target enter data
and target exit data. Diagnose invalid map kinds.
(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
(c_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
construct.
(c_parser_omp_declare_reduction): Use STRIP_NOPS when checking for
&omp_priv.
(OMP_TASKLOOP_CLAUSE_MASK): Define.
(c_parser_omp_taskloop): New function.
(c_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
handle PRAGMA_OMP_TASKLOOP.
(c_parser_cilk_for): Adjust c_finish_omp_clauses callers.
* c-tree.h (c_finish_omp_clauses): Add two new arguments.
* c-typeck.c (handle_omp_array_sections_1): Fix comment typo.
Add IS_OMP argument, handle structure element bases, diagnose
bitfields, pass IS_OMP recursively, diagnose known zero length
array sections in depend clauses, handle array sections in reduction
clause, diagnose negative length even for pointers.
(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
types, pass IS_OMP down to handle_omp_array_sections_1, handle
array sections in reduction clause, set
OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
(c_finish_omp_clauses): Add IS_OMP and DECLARE_SIMD arguments.
Handle new OpenMP 4.5 clauses and new restrictions for the old ones.
gcc/cp/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
* class.c (finish_struct_1): Call finish_omp_declare_simd_methods.
* cp-gimplify.c (cp_gimplify_expr): Handle OMP_TASKLOOP.
(cp_genericize_r): Likewise.
(cxx_omp_finish_clause): Don't diagnose references.
(cxx_omp_disregard_value_expr): New function.
* cp-objcp-common.h (LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR): Redefine.
* cp-tree.h (OMP_FOR_GIMPLIFYING_P): Document for OMP_TASKLOOP.
(DECL_OMP_PRIVATIZED_MEMBER): Define.
(finish_omp_declare_simd_methods, push_omp_privatization_clauses,
pop_omp_privatization_clauses, save_omp_privatization_clauses,
restore_omp_privatization_clauses, omp_privatize_field,
cxx_omp_disregard_value_expr): New prototypes.
(finish_omp_clauses): Add two new arguments.
(finish_omp_for): Add ORIG_DECLV argument.
* parser.c (cp_parser_lambda_body): Call
save_omp_privatization_clauses and restore_omp_privatization_clauses.
(cp_parser_omp_clause_name): Handle OpenMP 4.5 clauses.
(cp_parser_omp_var_list_no_open): Handle structure elements for
map, to and from clauses. Handle array sections in reduction
clause. Parse this keyword. Formatting fixes.
(cp_parser_omp_clause_if): Add IS_OMP argument, handle parsing of
if clause modifiers.
(cp_parser_omp_clause_num_tasks, cp_parser_omp_clause_grainsize,
cp_parser_omp_clause_priority, cp_parser_omp_clause_hint,
cp_parser_omp_clause_defaultmap): New functions.
(cp_parser_omp_clause_ordered): Parse optional parameter.
(cp_parser_omp_clause_reduction): Handle array reductions.
(cp_parser_omp_clause_schedule): Parse optional simd modifier.
(cp_parser_omp_clause_nogroup, cp_parser_omp_clause_orderedkind):
New functions.
(cp_parser_omp_clause_linear): Parse linear clause modifiers.
(cp_parser_omp_clause_depend_sink): New function.
(cp_parser_omp_clause_depend): Parse source/sink depend kinds.
(cp_parser_omp_clause_map): Parse release/delete map kinds and
optional always modifier.
(cp_parser_oacc_all_clauses): Adjust cp_parser_omp_clause_if
and finish_omp_clauses callers.
(cp_parser_omp_all_clauses): Likewise. Parse OpenMP 4.5 clauses.
Parse "to" as OMP_CLAUSE_TO_DECLARE if on declare target directive.
(OMP_CRITICAL_CLAUSE_MASK): Define.
(cp_parser_omp_critical): Parse critical clauses.
(cp_parser_omp_for_incr): Use cp_tree_equal if
processing_template_decl.
(cp_parser_omp_for_loop_init): Return tree instead of bool. Handle
non-static data member iterators.
(cp_parser_omp_for_loop): Handle doacross loops, adjust
finish_omp_for and finish_omp_clauses callers.
(cp_omp_split_clauses): Adjust finish_omp_clauses caller.
(OMP_SIMD_CLAUSE_MASK): Add simdlen clause.
(cp_parser_omp_simd): Allow ordered clause if it has no parameter.
(OMP_FOR_CLAUSE_MASK): Add linear clause.
(cp_parser_omp_for): Disallow ordered clause when combined with
distribute. Disallow linear clause when combined with distribute
and not combined with simd.
(OMP_ORDERED_CLAUSE_MASK, OMP_ORDERED_DEPEND_CLAUSE_MASK): Define.
(cp_parser_omp_ordered): Add CONTEXT argument, return bool instead
of tree, parse clauses and if depend clause is found, don't parse
a body.
(cp_parser_omp_parallel): Disallow copyin clause on target parallel.
Allow target parallel without for after it.
(OMP_TASK_CLAUSE_MASK): Add priority clause.
(OMP_TARGET_DATA_CLAUSE_MASK): Add use_device_ptr clause.
(cp_parser_omp_target_data): Diagnose no map clauses or clauses with
invalid kinds.
(OMP_TARGET_UPDATE_CLAUSE_MASK): Add depend and nowait clauses.
(OMP_TARGET_ENTER_DATA_CLAUSE_MASK,
OMP_TARGET_EXIT_DATA_CLAUSE_MASK): Define.
(cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data): New
functions.
(OMP_TARGET_CLAUSE_MASK): Add depend, nowait, private, firstprivate,
defaultmap and is_device_ptr clauses.
(cp_parser_omp_target): Parse target parallel and target simd. Set
OMP_TARGET_COMBINED on combined constructs. Parse target enter data
and target exit data. Diagnose invalid map kinds.
(cp_parser_oacc_cache): Adjust finish_omp_clauses caller.
(OMP_DECLARE_TARGET_CLAUSE_MASK): Define.
(cp_parser_omp_declare_target): Parse OpenMP 4.5 forms of this
construct.
(OMP_TASKLOOP_CLAUSE_MASK): Define.
(cp_parser_omp_taskloop): New function.
(cp_parser_omp_construct): Don't handle PRAGMA_OMP_ORDERED here,
handle PRAGMA_OMP_TASKLOOP.
(cp_parser_pragma): Handle PRAGMA_OMP_ORDERED here directly,
handle PRAGMA_OMP_TASKLOOP, call push_omp_privatization_clauses
and pop_omp_privatization_clauses around parsing calls.
(cp_parser_cilk_for): Adjust finish_omp_clauses caller.
* pt.c (apply_late_template_attributes): Adjust tsubst_omp_clauses
and finish_omp_clauses callers.
(tsubst_omp_clause_decl): Return NULL if decl is NULL.
For TREE_LIST, copy over OMP_CLAUSE_DEPEND_SINK_NEGATIVE bit.
Use tsubst_expr instead of tsubst_copy, undo convert_from_reference
effects.
(tsubst_omp_clauses): Add ALLOW_FIELDS argument. Handle new
OpenMP 4.5 clauses. Use tsubst_omp_clause_decl for more clauses.
If ALLOW_FIELDS, handle non-static data members in the clauses.
Clear OMP_CLAUSE_LINEAR_STEP if it has been cleared before.
(omp_parallel_combined_clauses): New variable.
(tsubst_omp_for_iterator): Add ORIG_DECLV argument, recur on
OMP_FOR_ORIG_DECLS, handle non-static data member iterators.
Improve handling of clauses on combined constructs.
(tsubst_expr): Call push_omp_privatization_clauses and
pop_omp_privatization_clauses around instantiation of certain
OpenMP constructs, improve handling of clauses on combined
constructs, handle OMP_TASKLOOP, adjust tsubst_omp_for_iterator,
tsubst_omp_clauses and finish_omp_for callers, handle clauses on
critical and ordered, handle OMP_TARGET_{ENTER,EXIT}_DATA.
(instantiate_decl): Call save_omp_privatization_clauses and
restore_omp_privatization_clauses around instantiation.
(dependent_omp_for_p): Fix up comment typo. Handle SCOPE_REF.
* semantics.c (omp_private_member_map, omp_private_member_vec,
omp_private_member_ignore_next): New variables.
(finish_non_static_data_member): Return dummy decl for privatized
non-static data members.
(omp_clause_decl_field, omp_clause_printable_decl,
omp_note_field_privatization, omp_privatize_field): New functions.
(handle_omp_array_sections_1): Fix comment typo.
Add IS_OMP argument, handle structure element bases, diagnose
bitfields, pass IS_OMP recursively, diagnose known zero length
array sections in depend clauses, handle array sections in reduction
clause, diagnose negative length even for pointers.
(handle_omp_array_sections): Add IS_OMP argument, use auto_vec for
types, pass IS_OMP down to handle_omp_array_sections_1, handle
array sections in reduction clause, set
OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION if map could be zero
length array section, use GOMP_MAP_FIRSTPRIVATE_POINTER for IS_OMP.
(finish_omp_reduction_clause): Handle array sections and arrays.
Use omp_clause_printable_decl.
(finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink):
New functions.
(finish_omp_clauses): Add ALLOW_FIELDS and DECLARE_SIMD arguments.
Handle new OpenMP 4.5 clauses and new restrictions for the old
ones, handle non-static data members, reject this keyword when not
allowed.
(push_omp_privatization_clauses, pop_omp_privatization_clauses,
save_omp_privatization_clauses, restore_omp_privatization_clauses):
New functions.
(handle_omp_for_class_iterator): Handle OMP_TASKLOOP class iterators.
Add collapse and ordered arguments. Fix handling of lastprivate
iterators in doacross loops.
(finish_omp_for): Add ORIG_DECLV argument, handle doacross loops,
adjust c_finish_omp_for, handle_omp_for_class_iterator and
finish_omp_clauses callers. Fill in OMP_CLAUSE_LINEAR_STEP on simd
loops with non-static data member iterators.
gcc/fortran/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* f95-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11, DEF_FUNCTION_TYPE_VAR_1): Define.
* trans-openmp.c (gfc_trans_omp_clauses): Set
OMP_CLAUSE_IF_MODIFIER to ERROR_MARK, OMP_CLAUSE_ORDERED_EXPR
to NULL.
(gfc_trans_omp_critical): Adjust for addition of clauses.
(gfc_trans_omp_ordered): Likewise.
* types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
gcc/lto/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
* lto-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11): Define.
gcc/jit/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
* jit-builtins.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11): Define.
* jit-builtins.h (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11): Define.
gcc/ada/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
DEF_FUNCTION_TYPE_11): Define.
gcc/testsuite/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
* c-c++-common/gomp/cancel-1.c (f2): Add map clause to target data.
* c-c++-common/gomp/clauses-1.c: New test.
* c-c++-common/gomp/clauses-2.c: New test.
* c-c++-common/gomp/clauses-3.c: New test.
* c-c++-common/gomp/clauses-4.c: New test.
* c-c++-common/gomp/declare-target-1.c: New test.
* c-c++-common/gomp/declare-target-2.c: New test.
* c-c++-common/gomp/depend-3.c: New test.
* c-c++-common/gomp/depend-4.c: New test.
* c-c++-common/gomp/doacross-1.c: New test.
* c-c++-common/gomp/if-1.c: New test.
* c-c++-common/gomp/if-2.c: New test.
* c-c++-common/gomp/linear-1.c: New test.
* c-c++-common/gomp/map-2.c: New test.
* c-c++-common/gomp/map-3.c: New test.
* c-c++-common/gomp/nesting-1.c (f_omp_parallel,
f_omp_target_data): Add map clause to target data.
* c-c++-common/gomp/nesting-warn-1.c (f_omp_target): Likewise.
* c-c++-common/gomp/ordered-1.c: New test.
* c-c++-common/gomp/ordered-2.c: New test.
* c-c++-common/gomp/ordered-3.c: New test.
* c-c++-common/gomp/pr61486-1.c (foo): Remove linear clause
on non-iterator.
* c-c++-common/gomp/pr61486-2.c (test, test2): Remove ordered
clause and ordered construct where no longer allowed.
* c-c++-common/gomp/priority-1.c: New test.
* c-c++-common/gomp/reduction-1.c: New test.
* c-c++-common/gomp/schedule-simd-1.c: New test.
* c-c++-common/gomp/sink-1.c: New test.
* c-c++-common/gomp/sink-2.c: New test.
* c-c++-common/gomp/sink-3.c: New test.
* c-c++-common/gomp/sink-4.c: New test.
* c-c++-common/gomp/udr-1.c: New test.
* c-c++-common/taskloop-1.c: New test.
* c-c++-common/cpp/openmp-define-3.c: Adjust for the new
value of _OPENMP macro.
* c-c++-common/cilk-plus/PS/body.c (foo): Adjust expected diagnostics.
* c-c++-common/goacc-gomp/nesting-fail-1.c (f_acc_parallel,
f_acc_kernels, f_acc_data, f_acc_loop): Add map clause to target data.
* gcc.dg/gomp/clause-1.c:
* gcc.dg/gomp/reduction-1.c: New test.
* gcc.dg/gomp/sink-fold-1.c: New test.
* gcc.dg/gomp/sink-fold-2.c: New test.
* gcc.dg/gomp/sink-fold-3.c: New test.
* gcc.dg/vect/vect-simd-clone-15.c: New test.
* g++.dg/gomp/clause-1.C (T::test): Remove dg-error on privatization
of non-static data members.
* g++.dg/gomp/clause-3.C (foo): Remove one dg-error directive.
Add some linear clause tests.
* g++.dg/gomp/declare-simd-3.C: New test.
* g++.dg/gomp/linear-1.C: New test.
* g++.dg/gomp/member-1.C: New test.
* g++.dg/gomp/member-2.C: New test.
* g++.dg/gomp/pr66571-2.C: New test.
* g++.dg/gomp/pr67504.C (foo): Add test for ordered clause with
dependent argument.
* g++.dg/gomp/pr67522.C (foo): Add test for invalid array section
in reduction clause.
* g++.dg/gomp/reference-1.C: New test.
* g++.dg/gomp/sink-1.C: New test.
* g++.dg/gomp/sink-2.C: New test.
* g++.dg/gomp/sink-3.C: New test.
* g++.dg/gomp/task-1.C: Remove both dg-error directives.
* g++.dg/gomp/this-1.C: New test.
* g++.dg/gomp/this-2.C: New test.
* g++.dg/vect/simd-clone-2.cc: New test.
* g++.dg/vect/simd-clone-2.h: New test.
* g++.dg/vect/simd-clone-3.cc: New test.
* g++.dg/vect/simd-clone-4.cc: New test.
* g++.dg/vect/simd-clone-4.h: New test.
* g++.dg/vect/simd-clone-5.cc: New test.
include/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* gomp-constants.h (GOMP_MAP_FLAG_ALWAYS): Define.
(enum gomp_map_kind): Add GOMP_MAP_FIRSTPRIVATE,
GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_USE_DEVICE_PTR,
GOMP_MAP_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_ALWAYS_TO,
GOMP_MAP_ALWAYS_FROM, GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT,
GOMP_MAP_DELETE_ZERO_LEN_ARRAY_SECTION, GOMP_MAP_DELETE,
GOMP_MAP_RELEASE, GOMP_MAP_FIRSTPRIVATE_POINTER.
(GOMP_MAP_ALWAYS_TO_P, GOMP_MAP_ALWAYS_FROM_P): Define.
(GOMP_TASK_FLAG_UNTIED, GOMP_TASK_FLAG_FINAL, GOMP_TASK_FLAG_MERGEABLE,
GOMP_TASK_FLAG_DEPEND, GOMP_TASK_FLAG_PRIORITY, GOMP_TASK_FLAG_UP,
GOMP_TASK_FLAG_GRAINSIZE, GOMP_TASK_FLAG_IF, GOMP_TASK_FLAG_NOGROUP,
GOMP_TARGET_FLAG_NOWAIT, GOMP_TARGET_FLAG_EXIT_DATA,
GOMP_TARGET_FLAG_UPDATE): Define.
libgomp/
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Ilya Verbin <ilya.verbin@intel.com>
* config/linux/affinity.c (omp_get_place_num_procs,
omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
* config/linux/doacross.h: New file.
* config/posix/affinity.c (omp_get_place_num_procs,
omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
* config/posix/doacross.h: New file.
* env.c: Include gomp-constants.h.
(struct gomp_task_icv): Rename run_sched_modifier to
run_sched_chunk_size.
(gomp_max_task_priority_var): New variable.
(parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
(handle_omp_display_env): Change _OPENMP value from 201307 to
201511. Print OMP_MAX_TASK_PRIORITY.
(initialize_env): Parse OMP_MAX_TASK_PRIORITY.
(omp_set_schedule, omp_get_schedule): Rename modifier argument to
chunk_size and run_sched_modifier to run_sched_chunk_size.
(omp_get_max_task_priority, omp_get_initial_device,
omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
omp_get_partition_place_nums): New functions.
* fortran.c (omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
to chunk_size.
(omp_get_num_places_, omp_get_place_num_procs_,
omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
omp_get_place_proc_ids_8_, omp_get_place_num_,
omp_get_partition_num_places_, omp_get_partition_place_nums_,
omp_get_partition_place_nums_8_, omp_get_initial_device_,
omp_get_max_task_priority_): New functions.
* libgomp_g.h (GOMP_loop_doacross_static_start,
GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
GOMP_loop_ull_doacross_dynamic_start,
GOMP_loop_ull_doacross_guided_start,
GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
GOMP_target_data_41, GOMP_target_update_41,
GOMP_target_enter_exit_data): New prototypes.
(GOMP_task): Add prototype argument.
* libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
(struct gomp_doacross_work_share): New type.
(struct gomp_work_share): Add doacross field.
(struct gomp_task_icv): Rename run_sched_modifier to
run_sched_chunk_size.
(enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
GOMP_TASK_UNDEFERRED. Add comments.
(struct gomp_task_depend_entry): Add comments.
(struct gomp_task): Likewise.
(struct gomp_taskgroup): Likewise.
(struct gomp_target_task): New type.
(struct gomp_team): Add comment.
(gomp_get_place_proc_ids_8, gomp_doacross_init,
gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
gomp_create_target_task, gomp_target_task_fn): New prototypes.
(struct target_var_desc): New type.
(struct target_mem_desc): Adjust comment. Use struct
target_var_desc instead of splay_tree_key for list.
(REFCOUNT_INFINITY): Define.
(struct splay_tree_key_s): Remove copy_from field.
(struct gomp_device_descr): Add dev2dev_func field.
(enum gomp_map_vars_kind): New enum.
(gomp_map_vars): Add one argument.
* libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
omp_get_place_num_procs, omp_get_place_num_procs_,
omp_get_place_num_procs_8_, omp_get_place_proc_ids,
omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
omp_get_place_num_, omp_get_partition_num_places,
omp_get_partition_num_places_, omp_get_partition_place_nums,
omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
omp_target_free, omp_target_is_present, omp_target_memcpy,
omp_target_memcpy_rect, omp_target_associate_ptr and
omp_target_disassociate_ptr.
(GOMP_4.0.2): Renamed to ...
(GOMP_4.5): ... this. Export GOMP_target_41, GOMP_target_data_41,
GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
GOMP_loop_doacross_static_start, GOMP_doacross_post,
GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
GOMP_loop_ull_doacross_guided_start,
GOMP_loop_ull_doacross_runtime_start,
GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
GOMP_doacross_ull_wait.
* libgomp.texi: Document omp_get_max_task_priority.
Rename modifier argument to chunk_size for omp_set_schedule and
omp_get_schedule. Document OMP_MAX_TASK_PRIORITY env var.
* loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
to run_sched_chunk_size renaming.
(GOMP_loop_ordered_runtime_start): Likewise.
(gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
GOMP_parallel_loop_runtime_start): New functions.
(GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
to run_sched_chunk_size renaming.
(GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
GOMP_loop_doacross_guided_start): New functions or aliases.
* loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
run_sched_modifier to run_sched_chunk_size renaming.
(GOMP_loop_ull_ordered_runtime_start): Likewise.
(gomp_loop_ull_doacross_static_start,
gomp_loop_ull_doacross_dynamic_start,
gomp_loop_ull_doacross_guided_start,
GOMP_loop_ull_doacross_runtime_start): New functions.
(GOMP_loop_ull_doacross_static_start,
GOMP_loop_ull_doacross_dynamic_start,
GOMP_loop_ull_doacross_guided_start): New functions or aliases.
* oacc-mem.c (acc_map_data, present_create_copy,
gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
to gomp_map_vars.
(gomp_acc_remove_pointer): Use copy_from from target_var_desc.
* oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
instead of false to gomp_map_vars.
(GOACC_parallel_keyed): Likewise. Use copy_from from target_var_desc.
* omp.h.in (omp_lock_hint_t): New type.
(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
omp_get_place_num, omp_get_partition_num_places,
omp_get_partition_place_nums, omp_get_initial_device,
omp_get_max_task_priority, omp_target_alloc, omp_target_free,
omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
omp_target_associate_ptr, omp_target_disassociate_ptr): New
prototypes.
* omp_lib.f90.in (omp_lock_hint_kind): New parameter.
(omp_lock_hint_none, omp_lock_hint_uncontended,
omp_lock_hint_contended, omp_lock_hint_nonspeculative,
omp_lock_hint_speculative): New parameters.
(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
omp_get_place_num, omp_get_partition_num_places,
omp_get_partition_place_nums, omp_get_initial_device,
omp_get_max_task_priority): New interfaces.
(omp_set_schedule, omp_get_schedule): Rename modifier argument
to chunk_size.
* omp_lib.h.in (omp_lock_hint_kind): New parameter.
(omp_lock_hint_none, omp_lock_hint_uncontended,
omp_lock_hint_contended, omp_lock_hint_nonspeculative,
omp_lock_hint_speculative): New parameters.
(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
omp_get_place_num, omp_get_partition_num_places,
omp_get_partition_place_nums, omp_get_initial_device,
omp_get_max_task_priority): New functions and subroutines.
* ordered.c: Include stdarg.h and string.h.
(MAX_COLLAPSED_BITS): Define.
(gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
gomp_doacross_ull_init, GOMP_doacross_ull_post,
GOMP_doacross_ull_wait): New functions.
* target.c: Include errno.h.
(resolve_device): If device is not initialized, call
gomp_init_device on it.
(gomp_map_lookup): New function.
(gomp_map_vars_existing): Add tgt_var argument, fill it in.
Don't bump refcount if REFCOUNT_INFINITY. Handle
GOMP_MAP_ALWAYS_TO_P.
(get_kind): Rename is_openacc argument to short_mapkind.
(gomp_map_pointer): Use gomp_map_lookup.
(gomp_map_fields_existing): New function.
(gomp_map_vars): Rename is_openacc argument to short_mapkind
and is_target to pragma_kind. Handle GOMP_MAP_VARS_ENTER_DATA,
handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
Adjust for tgt->list changed type and copy_from living in there.
(gomp_copy_from_async): Adjust for tgt->list changed type and
copy_from living in there.
(gomp_unmap_vars): Likewise.
(gomp_update): Likewise. Rename is_openacc argument to
short_mapkind. Don't fail if object is not mapped.
(gomp_load_image_to_device): Initialize refcount to
REFCOUNT_INFINITY.
(gomp_target_fallback): New function.
(gomp_get_target_fn_addr): Likewise.
(GOMP_target): Adjust gomp_map_vars caller, use
gomp_get_target_fn_addr and gomp_target_fallback.
(GOMP_target_41): New function.
(gomp_target_data_fallback): New function.
(GOMP_target_data): Use it, adjust gomp_map_vars caller.
(GOMP_target_data_41): New function.
(GOMP_target_update): Adjust gomp_update caller.
(GOMP_target_update_41): New function.
(gomp_exit_data, GOMP_target_enter_exit_data,
gomp_target_task_fn, omp_target_alloc, omp_target_free,
omp_target_is_present, omp_target_memcpy,
omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
omp_target_associate_ptr, omp_target_disassociate_ptr,
gomp_load_plugin_for_device): New functions.
* task.c: Include gomp-constants.h. Include taskloop.c
twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
(gomp_task_handle_depend): New function.
(GOMP_task): Use it. Add priority argument. Use
gomp-constant.h constants instead of hardcoded numbers.
Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
(gomp_create_target_task): New function.
(verify_children_queue, verify_taskgroup_queue,
verify_task_queue): New functions.
(gomp_task_run_pre): Call verify_*_queue functions.
If an upcoming tied task is about to leave the sibling or
taskgroup queues in an invalid state, adjust appropriately.
Remove taskgroup argument. Add comments.
(gomp_task_run_post_handle_dependers): Add comments.
(gomp_task_run_post_remove_parent): Likewise.
(gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
(GOMP_taskwait): Likewise. Add comments.
(gomp_task_maybe_wait_for_dependencies): Fix scheduling
problem such that the first non parent_depends_on task does not
end up at the end of the children queue.
(GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
GOMP_TASK_UNDEFERRED.
(GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
* taskloop.c: New file.
* testsuite/lib/libgomp.exp
(check_effective_target_offload_device_nonshared_as): New proc.
* testsuite/libgomp.c/affinity-2.c: New test.
* testsuite/libgomp.c/doacross-1.c: New test.
* testsuite/libgomp.c/doacross-2.c: New test.
* testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
Add map clause to target.
* testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
* testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
* testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
* testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
* testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
Likewise.
* testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
* testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
* testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
* testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
not defined. Use those where needed.
* testsuite/libgomp.c/for-4.c: New test.
* testsuite/libgomp.c/for-5.c: New test.
* testsuite/libgomp.c/for-6.c: New test.
* testsuite/libgomp.c/linear-1.c: New test.
* testsuite/libgomp.c/ordered-4.c: New test.
* testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
only allowed on the loop iterator.
* testsuite/libgomp.c/pr66199-3.c: New test.
* testsuite/libgomp.c/pr66199-4.c: New test.
* testsuite/libgomp.c/reduction-7.c: New test.
* testsuite/libgomp.c/reduction-8.c: New test.
* testsuite/libgomp.c/reduction-9.c: New test.
* testsuite/libgomp.c/reduction-10.c: New test.
* testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
map(tofrom:s).
* testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
* testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
* testsuite/libgomp.c/target-11.c: New test.
* testsuite/libgomp.c/target-12.c: New test.
* testsuite/libgomp.c/target-13.c: New test.
* testsuite/libgomp.c/target-14.c: New test.
* testsuite/libgomp.c/target-15.c: New test.
* testsuite/libgomp.c/target-16.c: New test.
* testsuite/libgomp.c/target-17.c: New test.
* testsuite/libgomp.c/target-18.c: New test.
* testsuite/libgomp.c/target-19.c: New test.
* testsuite/libgomp.c/target-20.c: New test.
* testsuite/libgomp.c/target-21.c: New test.
* testsuite/libgomp.c/target-22.c: New test.
* testsuite/libgomp.c/target-23.c: New test.
* testsuite/libgomp.c/target-24.c: New test.
* testsuite/libgomp.c/target-25.c: New test.
* testsuite/libgomp.c/target-26.c: New test.
* testsuite/libgomp.c/target-27.c: New test.
* testsuite/libgomp.c/taskloop-1.c: New test.
* testsuite/libgomp.c/taskloop-2.c: New test.
* testsuite/libgomp.c/taskloop-3.c: New test.
* testsuite/libgomp.c/taskloop-4.c: New test.
* testsuite/libgomp.c++/ctor-13.C: New test.
* testsuite/libgomp.c++/doacross-1.C: New test.
* testsuite/libgomp.c++/examples-4/declare_target-2.C:
Replace offload_device with offload_device_nonshared_as.
* testsuite/libgomp.c++/for-12.C: New test.
* testsuite/libgomp.c++/for-13.C: New test.
* testsuite/libgomp.c++/for-14.C: New test.
* testsuite/libgomp.c++/linear-1.C: New test.
* testsuite/libgomp.c++/member-1.C: New test.
* testsuite/libgomp.c++/member-2.C: New test.
* testsuite/libgomp.c++/member-3.C: New test.
* testsuite/libgomp.c++/member-4.C: New test.
* testsuite/libgomp.c++/member-5.C: New test.
* testsuite/libgomp.c++/ordered-1.C: New test.
* testsuite/libgomp.c++/reduction-5.C: New test.
* testsuite/libgomp.c++/reduction-6.C: New test.
* testsuite/libgomp.c++/reduction-7.C: New test.
* testsuite/libgomp.c++/reduction-8.C: New test.
* testsuite/libgomp.c++/reduction-9.C: New test.
* testsuite/libgomp.c++/reduction-10.C: New test.
* testsuite/libgomp.c++/reference-1.C: New test.
* testsuite/libgomp.c++/simd14.C: New test.
* testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
* testsuite/libgomp.c++/target-5.C: New test.
* testsuite/libgomp.c++/target-6.C: New test.
* testsuite/libgomp.c++/target-7.C: New test.
* testsuite/libgomp.c++/target-8.C: New test.
* testsuite/libgomp.c++/target-9.C: New test.
* testsuite/libgomp.c++/target-10.C: New test.
* testsuite/libgomp.c++/target-11.C: New test.
* testsuite/libgomp.c++/target-12.C: New test.
* testsuite/libgomp.c++/taskloop-1.C: New test.
* testsuite/libgomp.c++/taskloop-2.C: New test.
* testsuite/libgomp.c++/taskloop-3.C: New test.
* testsuite/libgomp.c++/taskloop-4.C: New test.
* testsuite/libgomp.c++/taskloop-5.C: New test.
* testsuite/libgomp.c++/taskloop-6.C: New test.
* testsuite/libgomp.c++/taskloop-7.C: New test.
* testsuite/libgomp.c++/taskloop-8.C: New test.
* testsuite/libgomp.c++/taskloop-9.C: New test.
* testsuite/libgomp.fortran/affinity1.f90: New test.
* testsuite/libgomp.fortran/affinity2.f90: New test.
liboffloadmic/
2015-10-13 Ilya Verbin <ilya.verbin@intel.com>
* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_dev2dev): New
function.
* plugin/offload_target_main.cpp (__offload_target_tgt2tgt): New
static function, register it in liboffloadmic.
From-SVN: r228777
2015-10-13 21:06:23 +02:00
|
|
|
|
2015-10-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/affinity.c (omp_get_place_num_procs,
|
|
|
|
|
omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
|
|
|
|
|
* config/linux/doacross.h: New file.
|
|
|
|
|
* config/posix/affinity.c (omp_get_place_num_procs,
|
|
|
|
|
omp_get_place_proc_ids, gomp_get_place_proc_ids_8): New functions.
|
|
|
|
|
* config/posix/doacross.h: New file.
|
|
|
|
|
* env.c: Include gomp-constants.h.
|
|
|
|
|
(struct gomp_task_icv): Rename run_sched_modifier to
|
|
|
|
|
run_sched_chunk_size.
|
|
|
|
|
(gomp_max_task_priority_var): New variable.
|
|
|
|
|
(parse_schedule): Rename run_sched_modifier to run_sched_chunk_size.
|
|
|
|
|
(handle_omp_display_env): Change _OPENMP value from 201307 to
|
|
|
|
|
201511. Print OMP_MAX_TASK_PRIORITY.
|
|
|
|
|
(initialize_env): Parse OMP_MAX_TASK_PRIORITY.
|
|
|
|
|
(omp_set_schedule, omp_get_schedule): Rename modifier argument to
|
|
|
|
|
chunk_size and run_sched_modifier to run_sched_chunk_size.
|
|
|
|
|
(omp_get_max_task_priority, omp_get_initial_device,
|
|
|
|
|
omp_get_num_places, omp_get_place_num, omp_get_partition_num_places,
|
|
|
|
|
omp_get_partition_place_nums): New functions.
|
|
|
|
|
* fortran.c (omp_set_schedule_, omp_set_schedule_8_,
|
|
|
|
|
omp_get_schedule_, omp_get_schedule_8_): Rename modifier argument
|
|
|
|
|
to chunk_size.
|
|
|
|
|
(omp_get_num_places_, omp_get_place_num_procs_,
|
|
|
|
|
omp_get_place_num_procs_8_, omp_get_place_proc_ids_,
|
|
|
|
|
omp_get_place_proc_ids_8_, omp_get_place_num_,
|
|
|
|
|
omp_get_partition_num_places_, omp_get_partition_place_nums_,
|
|
|
|
|
omp_get_partition_place_nums_8_, omp_get_initial_device_,
|
|
|
|
|
omp_get_max_task_priority_): New functions.
|
|
|
|
|
* libgomp_g.h (GOMP_loop_doacross_static_start,
|
|
|
|
|
GOMP_loop_doacross_dynamic_start, GOMP_loop_doacross_guided_start,
|
|
|
|
|
GOMP_loop_doacross_runtime_start, GOMP_loop_ull_doacross_static_start,
|
|
|
|
|
GOMP_loop_ull_doacross_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_doacross_guided_start,
|
|
|
|
|
GOMP_loop_ull_doacross_runtime_start, GOMP_doacross_post,
|
|
|
|
|
GOMP_doacross_wait, GOMP_doacross_ull_post, GOMP_doacross_wait,
|
|
|
|
|
GOMP_taskloop, GOMP_taskloop_ull, GOMP_target_41,
|
|
|
|
|
GOMP_target_data_41, GOMP_target_update_41,
|
|
|
|
|
GOMP_target_enter_exit_data): New prototypes.
|
|
|
|
|
(GOMP_task): Add prototype argument.
|
|
|
|
|
* libgomp.h (_LIBGOMP_CHECKING_): Define to 0 if not yet defined.
|
|
|
|
|
(struct gomp_doacross_work_share): New type.
|
|
|
|
|
(struct gomp_work_share): Add doacross field.
|
|
|
|
|
(struct gomp_task_icv): Rename run_sched_modifier to
|
|
|
|
|
run_sched_chunk_size.
|
|
|
|
|
(enum gomp_task_kind): Rename GOMP_TASK_IFFALSE to
|
|
|
|
|
GOMP_TASK_UNDEFERRED. Add comments.
|
|
|
|
|
(struct gomp_task_depend_entry): Add comments.
|
|
|
|
|
(struct gomp_task): Likewise.
|
|
|
|
|
(struct gomp_taskgroup): Likewise.
|
|
|
|
|
(struct gomp_target_task): New type.
|
|
|
|
|
(struct gomp_team): Add comment.
|
|
|
|
|
(gomp_get_place_proc_ids_8, gomp_doacross_init,
|
|
|
|
|
gomp_doacross_ull_init, gomp_task_maybe_wait_for_dependencies,
|
|
|
|
|
gomp_create_target_task, gomp_target_task_fn): New prototypes.
|
|
|
|
|
(struct target_var_desc): New type.
|
|
|
|
|
(struct target_mem_desc): Adjust comment. Use struct
|
|
|
|
|
target_var_desc instead of splay_tree_key for list.
|
|
|
|
|
(REFCOUNT_INFINITY): Define.
|
|
|
|
|
(struct splay_tree_key_s): Remove copy_from field.
|
|
|
|
|
(struct gomp_device_descr): Add dev2dev_func field.
|
|
|
|
|
(enum gomp_map_vars_kind): New enum.
|
|
|
|
|
(gomp_map_vars): Add one argument.
|
|
|
|
|
* libgomp.map (OMP_4.5): Export omp_get_max_task_priority,
|
|
|
|
|
omp_get_max_task_priority_, omp_get_num_places, omp_get_num_places_,
|
|
|
|
|
omp_get_place_num_procs, omp_get_place_num_procs_,
|
|
|
|
|
omp_get_place_num_procs_8_, omp_get_place_proc_ids,
|
|
|
|
|
omp_get_place_proc_ids_, omp_get_place_proc_ids_8_, omp_get_place_num,
|
|
|
|
|
omp_get_place_num_, omp_get_partition_num_places,
|
|
|
|
|
omp_get_partition_num_places_, omp_get_partition_place_nums,
|
|
|
|
|
omp_get_partition_place_nums_, omp_get_partition_place_nums_8_,
|
|
|
|
|
omp_get_initial_device, omp_get_initial_device_, omp_target_alloc,
|
|
|
|
|
omp_target_free, omp_target_is_present, omp_target_memcpy,
|
|
|
|
|
omp_target_memcpy_rect, omp_target_associate_ptr and
|
|
|
|
|
omp_target_disassociate_ptr.
|
|
|
|
|
(GOMP_4.0.2): Renamed to ...
|
|
|
|
|
(GOMP_4.5): ... this. Export GOMP_target_41, GOMP_target_data_41,
|
|
|
|
|
GOMP_target_update_41, GOMP_target_enter_exit_data, GOMP_taskloop,
|
|
|
|
|
GOMP_taskloop_ull, GOMP_loop_doacross_dynamic_start,
|
|
|
|
|
GOMP_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
|
|
|
|
|
GOMP_loop_doacross_static_start, GOMP_doacross_post,
|
|
|
|
|
GOMP_doacross_wait, GOMP_loop_ull_doacross_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_doacross_guided_start,
|
|
|
|
|
GOMP_loop_ull_doacross_runtime_start,
|
|
|
|
|
GOMP_loop_ull_doacross_static_start, GOMP_doacross_ull_post and
|
|
|
|
|
GOMP_doacross_ull_wait.
|
|
|
|
|
* libgomp.texi: Document omp_get_max_task_priority.
|
|
|
|
|
Rename modifier argument to chunk_size for omp_set_schedule and
|
|
|
|
|
omp_get_schedule. Document OMP_MAX_TASK_PRIORITY env var.
|
|
|
|
|
* loop.c (GOMP_loop_runtime_start): Adjust for run_sched_modifier
|
|
|
|
|
to run_sched_chunk_size renaming.
|
|
|
|
|
(GOMP_loop_ordered_runtime_start): Likewise.
|
|
|
|
|
(gomp_loop_doacross_static_start, gomp_loop_doacross_dynamic_start,
|
|
|
|
|
gomp_loop_doacross_guided_start, GOMP_loop_doacross_runtime_start,
|
|
|
|
|
GOMP_parallel_loop_runtime_start): New functions.
|
|
|
|
|
(GOMP_parallel_loop_runtime): Adjust for run_sched_modifier
|
|
|
|
|
to run_sched_chunk_size renaming.
|
|
|
|
|
(GOMP_loop_doacross_static_start, GOMP_loop_doacross_dynamic_start,
|
|
|
|
|
GOMP_loop_doacross_guided_start): New functions or aliases.
|
|
|
|
|
* loop_ull.c (GOMP_loop_ull_runtime_start): Adjust for
|
|
|
|
|
run_sched_modifier to run_sched_chunk_size renaming.
|
|
|
|
|
(GOMP_loop_ull_ordered_runtime_start): Likewise.
|
|
|
|
|
(gomp_loop_ull_doacross_static_start,
|
|
|
|
|
gomp_loop_ull_doacross_dynamic_start,
|
|
|
|
|
gomp_loop_ull_doacross_guided_start,
|
|
|
|
|
GOMP_loop_ull_doacross_runtime_start): New functions.
|
|
|
|
|
(GOMP_loop_ull_doacross_static_start,
|
|
|
|
|
GOMP_loop_ull_doacross_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_doacross_guided_start): New functions or aliases.
|
|
|
|
|
* oacc-mem.c (acc_map_data, present_create_copy,
|
|
|
|
|
gomp_acc_insert_pointer): Pass GOMP_MAP_VARS_OPENACC instead of false
|
|
|
|
|
to gomp_map_vars.
|
|
|
|
|
(gomp_acc_remove_pointer): Use copy_from from target_var_desc.
|
|
|
|
|
* oacc-parallel.c (GOACC_data_start): Pass GOMP_MAP_VARS_OPENACC
|
|
|
|
|
instead of false to gomp_map_vars.
|
|
|
|
|
(GOACC_parallel_keyed): Likewise. Use copy_from from target_var_desc.
|
|
|
|
|
* omp.h.in (omp_lock_hint_t): New type.
|
|
|
|
|
(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
|
|
|
|
|
omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
|
|
|
|
|
omp_get_place_num, omp_get_partition_num_places,
|
|
|
|
|
omp_get_partition_place_nums, omp_get_initial_device,
|
|
|
|
|
omp_get_max_task_priority, omp_target_alloc, omp_target_free,
|
|
|
|
|
omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect,
|
|
|
|
|
omp_target_associate_ptr, omp_target_disassociate_ptr): New
|
|
|
|
|
prototypes.
|
|
|
|
|
* omp_lib.f90.in (omp_lock_hint_kind): New parameter.
|
|
|
|
|
(omp_lock_hint_none, omp_lock_hint_uncontended,
|
|
|
|
|
omp_lock_hint_contended, omp_lock_hint_nonspeculative,
|
|
|
|
|
omp_lock_hint_speculative): New parameters.
|
|
|
|
|
(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
|
|
|
|
|
omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
|
|
|
|
|
omp_get_place_num, omp_get_partition_num_places,
|
|
|
|
|
omp_get_partition_place_nums, omp_get_initial_device,
|
|
|
|
|
omp_get_max_task_priority): New interfaces.
|
|
|
|
|
(omp_set_schedule, omp_get_schedule): Rename modifier argument
|
|
|
|
|
to chunk_size.
|
|
|
|
|
* omp_lib.h.in (omp_lock_hint_kind): New parameter.
|
|
|
|
|
(omp_lock_hint_none, omp_lock_hint_uncontended,
|
|
|
|
|
omp_lock_hint_contended, omp_lock_hint_nonspeculative,
|
|
|
|
|
omp_lock_hint_speculative): New parameters.
|
|
|
|
|
(omp_init_lock_with_hint, omp_init_nest_lock_with_hint,
|
|
|
|
|
omp_get_num_places, omp_get_place_num_procs, omp_get_place_proc_ids,
|
|
|
|
|
omp_get_place_num, omp_get_partition_num_places,
|
|
|
|
|
omp_get_partition_place_nums, omp_get_initial_device,
|
|
|
|
|
omp_get_max_task_priority): New functions and subroutines.
|
|
|
|
|
* ordered.c: Include stdarg.h and string.h.
|
|
|
|
|
(MAX_COLLAPSED_BITS): Define.
|
|
|
|
|
(gomp_doacross_init, GOMP_doacross_post, GOMP_doacross_wait,
|
|
|
|
|
gomp_doacross_ull_init, GOMP_doacross_ull_post,
|
|
|
|
|
GOMP_doacross_ull_wait): New functions.
|
|
|
|
|
* target.c: Include errno.h.
|
|
|
|
|
(resolve_device): If device is not initialized, call
|
|
|
|
|
gomp_init_device on it.
|
|
|
|
|
(gomp_map_lookup): New function.
|
|
|
|
|
(gomp_map_vars_existing): Add tgt_var argument, fill it in.
|
|
|
|
|
Don't bump refcount if REFCOUNT_INFINITY. Handle
|
|
|
|
|
GOMP_MAP_ALWAYS_TO_P.
|
|
|
|
|
(get_kind): Rename is_openacc argument to short_mapkind.
|
|
|
|
|
(gomp_map_pointer): Use gomp_map_lookup.
|
|
|
|
|
(gomp_map_fields_existing): New function.
|
|
|
|
|
(gomp_map_vars): Rename is_openacc argument to short_mapkind
|
|
|
|
|
and is_target to pragma_kind. Handle GOMP_MAP_VARS_ENTER_DATA,
|
|
|
|
|
handle GOMP_MAP_FIRSTPRIVATE_INT, GOMP_MAP_STRUCT,
|
|
|
|
|
GOMP_MAP_USE_DEVICE_PTR, GOMP_MAP_ZERO_LEN_ARRAY_SECTION.
|
|
|
|
|
Adjust for tgt->list changed type and copy_from living in there.
|
|
|
|
|
(gomp_copy_from_async): Adjust for tgt->list changed type and
|
|
|
|
|
copy_from living in there.
|
|
|
|
|
(gomp_unmap_vars): Likewise.
|
|
|
|
|
(gomp_update): Likewise. Rename is_openacc argument to
|
|
|
|
|
short_mapkind. Don't fail if object is not mapped.
|
|
|
|
|
(gomp_load_image_to_device): Initialize refcount to
|
|
|
|
|
REFCOUNT_INFINITY.
|
|
|
|
|
(gomp_target_fallback): New function.
|
|
|
|
|
(gomp_get_target_fn_addr): Likewise.
|
|
|
|
|
(GOMP_target): Adjust gomp_map_vars caller, use
|
|
|
|
|
gomp_get_target_fn_addr and gomp_target_fallback.
|
|
|
|
|
(GOMP_target_41): New function.
|
|
|
|
|
(gomp_target_data_fallback): New function.
|
|
|
|
|
(GOMP_target_data): Use it, adjust gomp_map_vars caller.
|
|
|
|
|
(GOMP_target_data_41): New function.
|
|
|
|
|
(GOMP_target_update): Adjust gomp_update caller.
|
|
|
|
|
(GOMP_target_update_41): New function.
|
|
|
|
|
(gomp_exit_data, GOMP_target_enter_exit_data,
|
|
|
|
|
gomp_target_task_fn, omp_target_alloc, omp_target_free,
|
|
|
|
|
omp_target_is_present, omp_target_memcpy,
|
|
|
|
|
omp_target_memcpy_rect_worker, omp_target_memcpy_rect,
|
|
|
|
|
omp_target_associate_ptr, omp_target_disassociate_ptr,
|
|
|
|
|
gomp_load_plugin_for_device): New functions.
|
|
|
|
|
* task.c: Include gomp-constants.h. Include taskloop.c
|
|
|
|
|
twice to get GOMP_taskloop and GOMP_taskloop_ull definitions.
|
|
|
|
|
(gomp_task_handle_depend): New function.
|
|
|
|
|
(GOMP_task): Use it. Add priority argument. Use
|
|
|
|
|
gomp-constant.h constants instead of hardcoded numbers.
|
|
|
|
|
Rename GOMP_TASK_IFFALSE to GOMP_TASK_UNDEFERRED.
|
|
|
|
|
(gomp_create_target_task): New function.
|
|
|
|
|
(verify_children_queue, verify_taskgroup_queue,
|
|
|
|
|
verify_task_queue): New functions.
|
|
|
|
|
(gomp_task_run_pre): Call verify_*_queue functions.
|
|
|
|
|
If an upcoming tied task is about to leave the sibling or
|
|
|
|
|
taskgroup queues in an invalid state, adjust appropriately.
|
|
|
|
|
Remove taskgroup argument. Add comments.
|
|
|
|
|
(gomp_task_run_post_handle_dependers): Add comments.
|
|
|
|
|
(gomp_task_run_post_remove_parent): Likewise.
|
|
|
|
|
(gomp_barrier_handle_tasks): Adjust gomp_task_run_pre caller.
|
|
|
|
|
(GOMP_taskwait): Likewise. Add comments.
|
|
|
|
|
(gomp_task_maybe_wait_for_dependencies): Fix scheduling
|
|
|
|
|
problem such that the first non parent_depends_on task does not
|
|
|
|
|
end up at the end of the children queue.
|
|
|
|
|
(GOMP_taskgroup_start): Rename GOMP_TASK_IFFALSE to
|
|
|
|
|
GOMP_TASK_UNDEFERRED.
|
|
|
|
|
(GOMP_taskgroup_end): Adjust gomp_task_run_pre caller.
|
|
|
|
|
* taskloop.c: New file.
|
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
|
(check_effective_target_offload_device_nonshared_as): New proc.
|
|
|
|
|
* testsuite/libgomp.c/affinity-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/doacross-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/doacross-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-1.c (fib_wrapper):
|
|
|
|
|
Add map clause to target.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-4.c (accum): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-5.c (accum): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/device-1.c (main): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/device-3.c (main): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-3.c (gramSchmidt):
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-2.c (dotprod): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-3.c (dotprod): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-4.c (dotprod): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/for-2.h (OMPTGT, OMPTO, OMPFROM): Define if
|
|
|
|
|
not defined. Use those where needed.
|
|
|
|
|
* testsuite/libgomp.c/for-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/for-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/for-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/linear-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/ordered-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-2.c (f2): Adjust for linear clause
|
|
|
|
|
only allowed on the loop iterator.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-8.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-9.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-10.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-1.c (fn2, fn3, fn4): Add
|
|
|
|
|
map(tofrom:s).
|
|
|
|
|
* testsuite/libgomp.c/target-2.c (fn2, fn3, fn4): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/target-7.c (foo): Add map(h) where needed.
|
|
|
|
|
* testsuite/libgomp.c/target-11.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-12.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-13.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-14.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-15.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-16.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-17.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-18.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-19.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-20.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-21.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-22.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-23.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-24.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-25.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-26.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-27.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/taskloop-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-13.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/doacross-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/examples-4/declare_target-2.C:
|
|
|
|
|
Replace offload_device with offload_device_nonshared_as.
|
|
|
|
|
* testsuite/libgomp.c++/for-12.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-13.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-14.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/linear-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/member-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/member-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/member-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/member-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/member-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/ordered-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-9.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-10.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reference-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd14.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-2.C (fn2): Add map(tofrom: s) clause.
|
|
|
|
|
* testsuite/libgomp.c++/target-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-9.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-10.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-12.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskloop-9.C: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/affinity1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/affinity2.f90: New test.
|
|
|
|
|
|
2015-10-13 12:08:59 +02:00
|
|
|
|
2015-10-13 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/67476
|
|
|
|
|
* testsuite/libgomp.c/autopar-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/autopar-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/autopar-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/autopar-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/autopar-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/autopar-8.c: New test.
|
|
|
|
|
|
2015-10-12 22:22:30 +02:00
|
|
|
|
2015-10-12 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-loop.c: Fix loop
|
|
|
|
|
initializer.
|
|
|
|
|
|
2015-10-09 15:55:23 +02:00
|
|
|
|
2015-10-09 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Load multiline.exp before prune.exp,
|
|
|
|
|
using load_gcc_lib.
|
|
|
|
|
|
nvptx offloading linking
gcc/
* config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
(Token, Stmt): Remove structs.
(decls, vars, fns): Remove variables.
(alloc_comment, append_stmt, is_keyword): Remove macros.
(tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
(write_stmt, write_stmts, parse_insn, parse_list_nosemi)
(parse_init, parse_file): Remove functions.
(read_file): Accept a pointer to a length and store into it.
(process): Don't try to parse the input file, just write it out as
a string, but looking for maps. Also write out the length.
(main): Don't use "-S" to compile PTX code.
libgomp/
* oacc-ptx.h: Remove file, moving its content into...
* config/nvptx/fortran.c: ... here...
* config/nvptx/oacc-init.c: ..., here...
* config/nvptx/oacc-parallel.c: ..., and here.
* config/nvptx/openacc.f90: New file.
* plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
(link_ptx): Don't link in predefined bits of PTX code.
Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
From-SVN: r228418
2015-10-02 21:43:41 +02:00
|
|
|
|
2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-ptx.h: Remove file, moving its content into...
|
|
|
|
|
* config/nvptx/fortran.c: ... here...
|
|
|
|
|
* config/nvptx/oacc-init.c: ..., here...
|
|
|
|
|
* config/nvptx/oacc-parallel.c: ..., and here.
|
|
|
|
|
* config/nvptx/openacc.f90: New file.
|
|
|
|
|
* plugin/plugin-nvptx.c: Don't include "oacc-ptx.h".
|
|
|
|
|
(link_ptx): Don't link in predefined bits of PTX code.
|
|
|
|
|
|
2015-09-30 23:35:47 +02:00
|
|
|
|
2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
Bernd Schmidt <bernds@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (targ_fn_launch): Use GOMP_DIM_MAX.
|
|
|
|
|
(struct targ_ptx_obj): New.
|
|
|
|
|
(nvptx_tdata): Move earlier, change data format.
|
|
|
|
|
(link_ptx): Take targ_ptx_obj ptr and count. Allow multiple
|
|
|
|
|
objects.
|
|
|
|
|
(GOMP_OFFLOAD_load_image): Adjust.
|
|
|
|
|
|
2015-09-30 10:44:49 +02:00
|
|
|
|
2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
|
|
|
|
|
|
2015-09-29 22:03:33 +02:00
|
|
|
|
2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-init.c (acc_on_device): Force optimization level.
|
|
|
|
|
|
2015-09-29 21:45:47 +02:00
|
|
|
|
2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (ARRAYSIZE): Delete.
|
|
|
|
|
(cuda_errlist): Delete.
|
|
|
|
|
(cuda_error): Reimplement.
|
|
|
|
|
|
gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment.
inlude/
* gomp-constants.h (GOMP_VERSION_NVIDIA_PTX): Increment.
(GOMP_DIM_GANG, GOMP_DIM_WORKER, GOMP_DIM_VECTOR, GOMP_DIM_MAX,
GOMP_DIM_MASK): New.
(GOMP_LAUNCH_DIM, GOMP_LAUNCH_ASYNC, GOMP_LAUNCH_WAIT): New.
(GOMP_LAUNCH_CODE_SHIFT, GOMP_LAUNCH_DEVICE_SHIFT,
GOMP_LAUNCH_OP_SHIFT): New.
(GOMP_LAUNCH_PACK, GOMP_LAUNCH_CODE, GOMP_LAUNCH_DEVICE,
GOMP_LAUNCH_OP): New.
(GOMP_LAUNCH_OP_MAX): New.
libgomp/
* libgomp.h (acc_dispatch_t): Replace separate geometry args with
array.
* libgomp.map (GOACC_parallel_keyed): New.
* oacc-parallel.c (goacc_wait): Take pointer to va_list. Adjust
all callers.
(GOACC_parallel_keyed): New interface. Lose geometry arguments
and take keyed varargs list. Adjust call to exec_func.
(GOACC_parallel): Force host fallback.
* libgomp_g.h (GOACC_parallel): Remove.
(GOACC_parallel_keyed): Declare.
* plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
(stuct targ_gn_descriptor): Replace name field with launch field.
(nvptx_exec): Lose separate geometry args, take array. Process
dynamic dimensions and adjust.
(struct nvptx_tdata): Replace fn_names field with fn_descs.
(GOMP_OFFLOAD_load_image): Adjust for change in function table
data.
(GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
passing.
* oacc-host.c (host_openacc_exec): Adjust for change in dimension
passing.
gcc/
* config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
(nvptx_record_offload_symbol): Record function execution geometry.
* config/nvptx/mkoffload.c (process): Include launch geometry in
function data.
* omp-low.c (oacc_launch_pack): New.
(replace_oacc_fn_attrib): New.
(set_oacc_fn_attrib): New.
(get_oacc_fn_attrib): New.
(expand_omp_target): Create keyed varargs for GOACC_parallel call
generation.
* omp-low.h (get_oacc_fn_attrib): Declare.
* builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
* tree.h (OMP_CLAUSE_EXPR): New.
* omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
gcc/lto/
* lto-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
gcc/c-family/
* c-common.c (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
gcc/fortran/
* f95-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
* types.def (DEF_FUNCTION_TYPE_VAR_6): New.
(DEF_FUNCTION_TYPE_VAR_11): Delete.
gcc/ada/
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_6): Define
From-SVN: r228220
2015-09-28 21:37:33 +02:00
|
|
|
|
2015-09-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (acc_dispatch_t): Replace separate geometry args with
|
|
|
|
|
array.
|
|
|
|
|
* libgomp.map (GOACC_parallel_keyed): New.
|
|
|
|
|
* oacc-parallel.c (goacc_wait): Take pointer to va_list. Adjust
|
|
|
|
|
all callers.
|
|
|
|
|
(GOACC_parallel_keyed): New interface. Lose geometry arguments
|
|
|
|
|
and take keyed varargs list. Adjust call to exec_func.
|
|
|
|
|
(GOACC_parallel): Force host fallback.
|
|
|
|
|
* libgomp_g.h (GOACC_parallel): Remove.
|
|
|
|
|
(GOACC_parallel_keyed): Declare.
|
|
|
|
|
* plugin/plugin-nvptx.c (struct targ_fn_launch): New struct.
|
|
|
|
|
(stuct targ_gn_descriptor): Replace name field with launch field.
|
|
|
|
|
(nvptx_exec): Lose separate geometry args, take array. Process
|
|
|
|
|
dynamic dimensions and adjust.
|
|
|
|
|
(struct nvptx_tdata): Replace fn_names field with fn_descs.
|
|
|
|
|
(GOMP_OFFLOAD_load_image): Adjust for change in function table
|
|
|
|
|
data.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_parallel): Adjust for change in dimension
|
|
|
|
|
passing.
|
|
|
|
|
* oacc-host.c (host_openacc_exec): Adjust for change in dimension
|
|
|
|
|
passing.
|
|
|
|
|
|
2015-09-22 08:45:22 +02:00
|
|
|
|
2015-09-22 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/67141
|
|
|
|
|
* oacc-int.h (goacc_host_init): Add declaration.
|
|
|
|
|
* oacc-host.c (goacc_host_init): Remove static and constructor attribute.
|
|
|
|
|
* oacc-init.c (goacc_runtime_initialize): Call goacc_host_init() at end.
|
|
|
|
|
|
2015-09-09 00:18:11 +02:00
|
|
|
|
2015-09-08 Aditya Kumar <hiraditya@msn.com>
|
2016-02-20 12:42:54 +01:00
|
|
|
|
Sebastian Pop <s.pop@samsung.com>
|
2015-09-09 00:18:11 +02:00
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
|
|
|
|
|
match o/p.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-5.c: Same.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Same.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Same.
|
|
|
|
|
|
2015-09-03 18:20:35 +02:00
|
|
|
|
2015-09-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt: Add missing ;; in between nvptx and rtems
|
|
|
|
|
snippets.
|
|
|
|
|
|
2015-09-03 13:34:28 +02:00
|
|
|
|
2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config/posix/pool.h (gomp_adjust_thread_attr): New.
|
|
|
|
|
* config/rtems/pool.h (gomp_adjust_thread_attr): Likewise.
|
|
|
|
|
(gomp_thread_pool_reservoir): Add priority member.
|
|
|
|
|
* confi/rtems/proc.c (allocate_thread_pool_reservoir): Add
|
|
|
|
|
priority.
|
|
|
|
|
(parse_thread_pools): Likewise.
|
|
|
|
|
* team.c (gomp_team_start): Call configuration provided
|
|
|
|
|
gomp_adjust_thread_attr(). Destroy thread attributes if
|
|
|
|
|
necessary.
|
|
|
|
|
* libgomp.texi: Document GOMP_RTEMS_THREAD_POOLS.
|
|
|
|
|
|
2015-09-03 13:29:59 +02:00
|
|
|
|
2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config/posix/pool.h: New.
|
|
|
|
|
* config/rtems/pool.h: Likewise.
|
|
|
|
|
* config/rtems/proc.c: Likewise.
|
|
|
|
|
* libgomp.h (gomp_thread_destructor): Declare.
|
|
|
|
|
* team.c: Include configuration provided "pool.h".
|
|
|
|
|
(gomp_get_thread_pool): Define in configuration.
|
|
|
|
|
(gomp_team_end): Call configuration defined
|
|
|
|
|
gomp_release_thread_pool().
|
|
|
|
|
|
2015-09-03 13:26:36 +02:00
|
|
|
|
2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config/rtems/bar.c: New.
|
|
|
|
|
* config/rtems/bar.h: Likewise.
|
|
|
|
|
* config/rtems/mutex.c: Likewise.
|
|
|
|
|
* config/rtems/mutex.h: Likewise.
|
|
|
|
|
* config/rtems/sem.c: Likewise.
|
|
|
|
|
* config/rtems/sem.h: Likewise.
|
|
|
|
|
* configure.ac (*-*-rtems*): Check that Newlib provides a proper
|
|
|
|
|
<sys/lock.h> header file.
|
|
|
|
|
* configure.tgt (*-*-rtems*): Enable RTEMS configuration if
|
|
|
|
|
supported by Newlib.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2015-09-03 13:24:34 +02:00
|
|
|
|
2015-09-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* team.c (gomp_new_thread_pool): Delete and move content to ...
|
|
|
|
|
(gomp_get_thread_pool): ... new function. Allocate and
|
|
|
|
|
initialize thread pool on demand.
|
|
|
|
|
(get_last_team): Use gomp_get_thread_pool().
|
|
|
|
|
(gomp_team_start): Delete thread pool initialization.
|
|
|
|
|
|
2015-09-03 13:01:14 +02:00
|
|
|
|
2015-09-03 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/65637
|
|
|
|
|
* testsuite/libgomp.c/autopar-2.c: New test.
|
|
|
|
|
|
2015-08-29 09:07:51 +02:00
|
|
|
|
2015-08-29 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/46193
|
|
|
|
|
* testsuite/libgomp.c/pr46193.c: New test.
|
|
|
|
|
|
2015-08-24 19:10:06 +02:00
|
|
|
|
2015-08-24 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
libgomp/
|
|
|
|
|
* libgomp.map: Add 4.0.2 version.
|
|
|
|
|
* target.c (offload_image_descr): Add version field.
|
|
|
|
|
(gomp_load_image_to_device): Add version argument. Adjust plugin
|
|
|
|
|
call. Improve load mismatch diagnostic.
|
|
|
|
|
(gomp_unload_image_from_device): Add version argument. Adjust plugin
|
|
|
|
|
call.
|
|
|
|
|
(GOMP_offload_regster): Make stub function, move bulk to ...
|
|
|
|
|
(GOMP_offload_register_ver): ... here. Process version argument.
|
|
|
|
|
(GOMP_offload_unregister): Make stub function, move bulk to ...
|
|
|
|
|
(GOMP_offload_unregister_ver): ... here. Process version argument.
|
|
|
|
|
(gomp_init_device): Process version field.
|
|
|
|
|
(gomp_unload_device): Process version field.
|
|
|
|
|
(gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
|
|
|
|
|
macros. Check plugin version.
|
|
|
|
|
* libgomp.h (gomp_device_descr): Add version function field. Adjust
|
|
|
|
|
loader and unloader types.
|
|
|
|
|
* oacc-host.c: Include gomp-constants.h.
|
|
|
|
|
(host_version): New.
|
|
|
|
|
(host_load_image, host_unload_image): Adjust.
|
|
|
|
|
(host_dispatch): Add host_version.
|
|
|
|
|
* plugin/plugin-nvptx.c: Include gomp-constants.h.
|
|
|
|
|
(GOMP_OFFLOAD_version): New.
|
|
|
|
|
(GOMP_OFFLOAD_load_image): Add version arg and check it.
|
|
|
|
|
(GOMP_OFFLOAD_unload_image): Likewise.
|
|
|
|
|
* plugin/plugin-host.c: Include gomp-constants.h.
|
|
|
|
|
(GOMP_OFFLOAD_version): New.
|
|
|
|
|
(GOMP_OFFLOAD_load_image): Add version arg.
|
|
|
|
|
(GOMP_OFFLOAD_unload_image): Likewise.
|
|
|
|
|
|
2015-08-24 17:01:44 +02:00
|
|
|
|
2015-08-24 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/65468
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-loop.c: New test.
|
|
|
|
|
|
2015-08-24 15:14:17 +02:00
|
|
|
|
2015-08-24 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/65468
|
|
|
|
|
* testsuite/libgomp.c/static-chunk-size-one.c: New test.
|
|
|
|
|
|
2015-08-24 13:01:25 +02:00
|
|
|
|
2015-08-24 Joost VandeVondele <vondele@gnu.gcc.org>
|
|
|
|
|
|
|
|
|
|
PR libgomp/66761
|
|
|
|
|
PR libgomp/67303
|
|
|
|
|
* iter.c (gomp_iter_dynamic_next): Employ an atomic load.
|
|
|
|
|
(gomp_iter_guided_next): Idem.
|
|
|
|
|
* iter_ull.c (gomp_iter_ull_dynamic_next): Idem.
|
|
|
|
|
(gomp_iter_ull_guided_next): Idem.
|
|
|
|
|
* config/linux/wait.h (do_spin): Idem.
|
|
|
|
|
|
2015-08-10 18:48:26 +02:00
|
|
|
|
2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp-plugin.h (enum offload_target_type): Remove
|
|
|
|
|
OFFLOAD_TARGET_TYPE_HOST_NONSHM.
|
|
|
|
|
* openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
|
|
|
|
|
* openacc.h (enum acc_device_t): Likewise.
|
|
|
|
|
* openacc_lib.h: Likewise.
|
|
|
|
|
* oacc-init.c (name_of_acc_device_t): Don't handle it.
|
|
|
|
|
(acc_on_device): Just use __builtin_acc_on_device.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
|
|
|
|
|
of acc_on_device builtin.
|
|
|
|
|
* plugin/plugin-host.h: Remove file.
|
|
|
|
|
* plugin/plugin-host.c: Likewise, but salvage some content into...
|
|
|
|
|
* oacc-host.c: ... this file.
|
|
|
|
|
* plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
|
|
|
|
|
* plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
|
(check_effective_target_openacc_host_nonshm_selected): Remove.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Don't handle
|
|
|
|
|
ACC_DEVICE_TYPE=host_nonshm.
|
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
|
|
|
|
|
|
2015-08-10 17:53:33 +02:00
|
|
|
|
2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/nvptx/affinity.c: New file.
|
|
|
|
|
* config/nvptx/alloc.c: Likewise.
|
|
|
|
|
* config/nvptx/bar.c: Likewise.
|
|
|
|
|
* config/nvptx/barrier.c: Likewise.
|
|
|
|
|
* config/nvptx/critical.c: Likewise.
|
|
|
|
|
* config/nvptx/env.c: Likewise.
|
|
|
|
|
* config/nvptx/error.c: Likewise.
|
|
|
|
|
* config/nvptx/fortran.c: Likewise.
|
|
|
|
|
* config/nvptx/iter.c: Likewise.
|
|
|
|
|
* config/nvptx/iter_ull.c: Likewise.
|
|
|
|
|
* config/nvptx/libgomp-plugin.c: Likewise.
|
|
|
|
|
* config/nvptx/lock.c: Likewise.
|
|
|
|
|
* config/nvptx/loop.c: Likewise.
|
|
|
|
|
* config/nvptx/loop_ull.c: Likewise.
|
|
|
|
|
* config/nvptx/mutex.c: Likewise.
|
|
|
|
|
* config/nvptx/oacc-async.c: Likewise.
|
|
|
|
|
* config/nvptx/oacc-cuda.c: Likewise.
|
|
|
|
|
* config/nvptx/oacc-host.c: Likewise.
|
|
|
|
|
* config/nvptx/oacc-init.c: Likewise.
|
|
|
|
|
* config/nvptx/oacc-mem.c: Likewise.
|
|
|
|
|
* config/nvptx/oacc-parallel.c: Likewise.
|
|
|
|
|
* config/nvptx/oacc-plugin.c: Likewise.
|
|
|
|
|
* config/nvptx/omp-lock.h: Likewise.
|
|
|
|
|
* config/nvptx/ordered.c: Likewise.
|
|
|
|
|
* config/nvptx/parallel.c: Likewise.
|
|
|
|
|
* config/nvptx/proc.c: Likewise.
|
|
|
|
|
* config/nvptx/ptrlock.c: Likewise.
|
|
|
|
|
* config/nvptx/sections.c: Likewise.
|
|
|
|
|
* config/nvptx/sem.c: Likewise.
|
|
|
|
|
* config/nvptx/single.c: Likewise.
|
|
|
|
|
* config/nvptx/splay-tree.c: Likewise.
|
|
|
|
|
* config/nvptx/target.c: Likewise.
|
|
|
|
|
* config/nvptx/task.c: Likewise.
|
|
|
|
|
* config/nvptx/team.c: Likewise.
|
|
|
|
|
* config/nvptx/time.c: Likewise.
|
|
|
|
|
* config/nvptx/work.c: Likewise.
|
|
|
|
|
* configure.ac: Don't probe pthreads support for host nvptx*-*-*.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.tgt (config_path): Set to "nvptx" for target
|
|
|
|
|
nvptx*-*-*.
|
|
|
|
|
|
2015-08-10 17:22:30 +02:00
|
|
|
|
2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file.
|
|
|
|
|
|
2015-08-04 02:40:18 +02:00
|
|
|
|
2015-08-03 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c: Don't include dlfcn.h.
|
|
|
|
|
(cuda_errlist): Constify.
|
|
|
|
|
(errmsg): Move into ...
|
|
|
|
|
(cuda_error): ... here. Make smaller.
|
|
|
|
|
(_XSTR, _STR): Delete.
|
|
|
|
|
(cuda_synames): Delete.
|
|
|
|
|
(verify_device_library): Delete.
|
|
|
|
|
(nvptx_init): Don't call it.
|
|
|
|
|
|
2015-07-28 09:54:04 +02:00
|
|
|
|
2015-07-28 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/uns-outer-4.c: New test.
|
|
|
|
|
|
2015-07-24 16:38:43 +02:00
|
|
|
|
2015-07-24 Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr66714.c: New test.
|
|
|
|
|
|
2015-07-22 19:19:31 +02:00
|
|
|
|
2015-07-22 Maxim Blumenthal <maxim.blumenthal@intel.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/66950
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-7.c (N): Change to 30 from 45.
|
|
|
|
|
(fib_ref): New function.
|
|
|
|
|
(fib): Correct corner cases in the recursion.
|
|
|
|
|
(main): Replace the non-simd loop with fib_ref call.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-7.f90: (fib_ref): New
|
|
|
|
|
subroutine.
|
|
|
|
|
(fibonacci): Lower the parameter N to 30. Correct accordingly check
|
|
|
|
|
for the last array element value. Replace the non-simd loop with
|
|
|
|
|
fib_ref call. Remove redundant b_ref array. Remove the comparison
|
|
|
|
|
of the last array element with according Fibonacci sequence element.
|
|
|
|
|
(fib): Correct corner cases in the recursion.
|
|
|
|
|
|
2015-07-21 15:30:06 +02:00
|
|
|
|
2015-07-21 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.c (gomp_offload_image_to_device): Rename to ...
|
|
|
|
|
(gomp_load_image_to_device): ... here.
|
|
|
|
|
(GOMP_offload_register): Adjust call.
|
|
|
|
|
(gomp_init_device): Likewise.
|
|
|
|
|
(gomp_unload_image_from_device): New. Broken out of ...
|
|
|
|
|
(GOMP_offload_unregister): ... here. Call it.
|
|
|
|
|
(gomp_unload_device): New.
|
|
|
|
|
* libgomp.h (gomp_unload_device): Declare.
|
|
|
|
|
* oacc-init.c (acc_shutdown_1): Unload from device before deleting
|
|
|
|
|
mem maps.
|
|
|
|
|
|
2015-07-20 18:17:57 +02:00
|
|
|
|
2015-07-20 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2015-07-20 19:31:46 +02:00
|
|
|
|
* oacc-parallel.c (GOACC_parallel): Move variadic handling into
|
|
|
|
|
wait=-specific if.
|
|
|
|
|
(GOACC_enter_exit_data, GOACC_update): Use consistent num_waits
|
|
|
|
|
!=0 condition.
|
|
|
|
|
(goacc_waits): Move !num_waits handling to ...
|
|
|
|
|
(GOACC_wait): ... here, the only caller that might have zero waits.
|
|
|
|
|
|
2015-07-20 18:17:57 +02:00
|
|
|
|
* plugin/plugin-nvptx.c (struct targ_fn_descriptor): Move later.
|
|
|
|
|
(struct ptx_image_data): Move earlier, add fns field.
|
|
|
|
|
(struct ptx_device): Add images and image_lock fields.
|
|
|
|
|
(ptx_images, ptx_image_lock): Delete.
|
|
|
|
|
(nvptx_open_device): Initialize images and image_lock fields.
|
|
|
|
|
(nvptx_close_device): Destroy image_lock.
|
|
|
|
|
(GOMP_OFFLOAD_load_image): Register image to device-specific fields.
|
|
|
|
|
(GOMP_OFFLOAD_unload_image): Unregister image from device-specific
|
|
|
|
|
fields.
|
|
|
|
|
|
2015-07-17 16:07:53 +02:00
|
|
|
|
2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2015-07-17 19:17:26 +02:00
|
|
|
|
* target.c (GOMP_offload_register): Use int for device type arg.
|
|
|
|
|
(GOMP_offload_unregister): Likewise.
|
|
|
|
|
|
2015-07-17 19:12:01 +02:00
|
|
|
|
* target.c (struct_offload_image_descr): Constify host_table.
|
|
|
|
|
(gomp_offload_image_to_device): Likewise.
|
|
|
|
|
(GOMP_offload_register, GOMP_offload_unregister): Likewise.
|
|
|
|
|
|
2015-07-17 16:07:53 +02:00
|
|
|
|
* libgomp.h (gomp_device_descr): Constify target data arguments.
|
|
|
|
|
* target.c (struct offload_image_descr): Constify target_data.
|
|
|
|
|
(gomp_offload_image_to_device): Likewise.
|
|
|
|
|
(GOMP_offload_register): Likewise.
|
|
|
|
|
(GOMP_offload_unrefister): Likewise.
|
|
|
|
|
* plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
|
|
|
|
|
GOMP_OFFLOAD_unload_image): Constify target data.
|
|
|
|
|
* plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
|
|
|
|
|
(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
|
|
|
|
|
|
2015-07-16 19:17:31 +02:00
|
|
|
|
2015-07-16 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (link_ptx): Constify string argument.
|
|
|
|
|
Workaround driver library const error.
|
|
|
|
|
(struct nvptx_tdata, nvptx_tdata_t): New.
|
|
|
|
|
(GOMP_OFFLOAD_load_image): Use struct for target_data's real
|
|
|
|
|
type.
|
|
|
|
|
|
2015-07-15 15:13:10 +02:00
|
|
|
|
2015-07-15 Maxim Blumenthal <maxim.blumenthal@intel.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
|
|
|
|
|
of EPS parameter from integer to real.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
|
|
|
|
|
type of EPS parameter from integer to real.
|
|
|
|
|
|
2015-07-15 11:11:11 +02:00
|
|
|
|
2015-07-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* team.c (get_last_team): New.
|
|
|
|
|
(gomp_new_team): Recycle last non-nested team if possible.
|
|
|
|
|
(gomp_team_end): Move team work share list free lock destruction
|
|
|
|
|
to ...
|
|
|
|
|
(free_team): ... here.
|
|
|
|
|
|
2015-07-14 20:54:35 +02:00
|
|
|
|
2015-07-14 Maxim Blumenthal <maxim.blumenthal@intel.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-3.c: (main): Change type of res
|
|
|
|
|
and ref from int to double. Replaced their comparison with
|
|
|
|
|
an inequality of their difference and EPS.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-8.c: (main): Replace the
|
|
|
|
|
comparison of pri and a reference number with an inequality of their
|
|
|
|
|
difference and EPS.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-3.f90: (main): Replaced
|
|
|
|
|
the comparison of sum and sum_ref with an inequality of their
|
|
|
|
|
difference and EPS.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Replace
|
|
|
|
|
the comparison of pri and a reference number with an inequality of
|
|
|
|
|
their difference and EPS.
|
|
|
|
|
|
2015-07-13 15:08:13 +02:00
|
|
|
|
2015-07-13 Maxim Blumenthal <maxim.blumenthal@intel.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/examples-4/e.53.2.C: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c++/examples-4/declare_target-2.C: ...this.
|
|
|
|
|
* testsuite/libgomp.c++/examples-4/e.51.5.C: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c++/examples-4/target_data-5.C: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.56.3.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/array_sections-3.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.56.4.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/array_sections-4.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.1.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/async_target-1.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.2.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/async_target-2.c: ...this.
|
|
|
|
|
(vec_mult_ref): Remove v1 and v2 arguments, turn them into local
|
|
|
|
|
variables.
|
|
|
|
|
(vec_mult): Likewise. Add #pragma omp taskwait.
|
|
|
|
|
(main): Adjust caller.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.1.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-1.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.3.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-3.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.4.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-4.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.5.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/declare_target-5.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.1.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/device-1.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.2.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/device-2.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.3.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/device-3.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-1.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-2.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-3.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-4.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-5.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-6.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-7.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/simd-8.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.1.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target-1.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.2.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target-2.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.3.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target-3.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.4.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target-4.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.5.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target-5.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.1.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-1.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.2.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-2.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.3.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-3.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.4.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-4.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.6.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-6.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.7.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_data-7.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.52.1.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_update-1.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.52.2.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/target_update-2.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-1.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-2.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-3.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-4.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/task_dep-5.c: New file.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.2.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-2.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.3.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-3.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.4.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-4.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.5.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-5.c: ...this.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.6.c: Renamed to...
|
|
|
|
|
* testsuite/libgomp.c/examples-4/teams-6.c: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.56.3.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/array_sections-3.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.56.4.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/array_sections-4.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.1.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/async_target-1.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.2.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/async_target-2.f90: ...this.
|
|
|
|
|
(vec_mult): Add !$omp taskwait.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.1.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-1.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.2.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-2.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.3.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-3.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.4.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-4.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.5.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/declare_target-5.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.1.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-1.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.2.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-2.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.3.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/device-3.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-1.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-2.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-3.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-4.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-5.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-6.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-7.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/simd-8.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.1.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-1.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.2.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-2.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.3.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-3.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.4.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-4.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.5.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target-5.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.1.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-1.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.2.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-2.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.3.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-3.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.4.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-4.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.5.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-5.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.6.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-6.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.7.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_data-7.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.52.1.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_update-1.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.52.2.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/target_update-2.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-1.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-2.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-3.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-4.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/task_dep-5.f90: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.2.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-2.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.3.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-3.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.4.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-4.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.5.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-5.f90: ...this.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.6.f90: Renamed to...
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/teams-6.f90: ...this.
|
|
|
|
|
|
2015-07-10 10:25:18 +02:00
|
|
|
|
2015-07-10 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95: New test.
|
|
|
|
|
|
2015-07-08 16:59:59 +02:00
|
|
|
|
2015-07-08 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/65099
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Return 0 if not
|
|
|
|
|
in a 64-bit configuration.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Don't attempt nvidia
|
|
|
|
|
offloading testing if no such device is available.
|
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
|
|
2015-07-08 14:31:00 +02:00
|
|
|
|
2015-07-08 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Fix
|
|
|
|
|
second call to f.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
|
|
|
|
|
|
2015-07-07 18:25:22 +02:00
|
|
|
|
2015-07-07 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/66642
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Test low
|
|
|
|
|
iteration count case.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c (init): New
|
|
|
|
|
function, factor out of ...
|
|
|
|
|
(main): ... here. Test low iteration count case.
|
|
|
|
|
|
2015-07-06 09:21:48 +02:00
|
|
|
|
2015-07-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (gomp_thread_pool): Comment last_team field.
|
|
|
|
|
|
2015-07-02 10:17:20 +02:00
|
|
|
|
2015-07-02 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/pr66702-1.C: Require
|
|
|
|
|
vect_simd_clones effective target.
|
|
|
|
|
* testsuite/libgomp.c++/pr66702-2.C: Ditto.
|
|
|
|
|
|
2015-06-30 17:43:55 +02:00
|
|
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
|
|
|
|
|
already set. Use DEFAULT_CFLAGS in dg-runtest.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Remove dg-options
|
|
|
|
|
"-O2".
|
|
|
|
|
|
2015-06-30 14:22:04 +02:00
|
|
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Set DEFAULT_CFLAGS to -O2 if not
|
|
|
|
|
already set. Use DEFAULT_CFLAGS in dg-runtest.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-16.C: Remove dg-options "-O2 -fopenmp".
|
|
|
|
|
* testsuite/libgomp.c++/pr64824.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/pr64868.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-1.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-2.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/target-2.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/for-7.C: Use dg-additional-options for
|
|
|
|
|
-std=<standard> option.
|
|
|
|
|
* testsuite/libgomp.c++/udr-11.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/udr-12.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/udr-13.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/udr-14.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/udr-15.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/udr-16.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/udr-17.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/udr-18.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/udr-19.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-1.C: Remove dg-options "-O2".
|
|
|
|
|
* testsuite/libgomp.c++/simd-1.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd-2.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd-3.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd-4.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd-5.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd-6.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd-7.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd-8.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd-9.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd10.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd11.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd12.C: Same.
|
|
|
|
|
* testsuite/libgomp.c++/simd13.C: Same.
|
|
|
|
|
|
2015-06-30 14:12:42 +02:00
|
|
|
|
2015-06-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/66702
|
|
|
|
|
* testsuite/libgomp.c++/pr66702-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66702-2.C: New test.
|
|
|
|
|
|
2015-06-30 13:00:32 +02:00
|
|
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
|
|
|
|
|
|
2015-06-30 10:35:57 +02:00
|
|
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/66652
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
|
|
|
|
|
using restrict pointers.
|
|
|
|
|
(main): Add arguments to calls to f.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
|
|
|
|
|
|
2015-06-23 19:59:59 +02:00
|
|
|
|
2015-06-23 Andreas Tobler <andreast@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Fix check for header <sys/sysctl.h>.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
|
2015-06-23 17:02:25 +02:00
|
|
|
|
2015-06-23 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (main): Use
|
|
|
|
|
abort.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c (main): Same.
|
|
|
|
|
|
2015-06-19 09:41:37 +02:00
|
|
|
|
2015-06-19 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2015-06-19 09:41:44 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Only consider for
|
|
|
|
|
acc_device_nvidia.
|
|
|
|
|
|
2015-06-19 09:41:37 +02:00
|
|
|
|
PR libgomp/66518
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: XFAIL.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
|
|
|
|
|
|
2015-06-15 20:10:51 +02:00
|
|
|
|
2015-06-15 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-1.c: Remove dg-options "-O2". Use
|
|
|
|
|
dg-additional-options for any remaining options.
|
|
|
|
|
* testsuite/libgomp.c/atomic-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/atomic-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/atomic-5.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/autopar-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/copyin-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/copyin-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/copyin-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.5.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/nestedfn-5.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr32362-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr32362-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr32362-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr39591-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr39591-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr39591-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr58392.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr58756.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-10.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-11.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-12.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-13.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-14.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-15.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-4.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-5.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-6.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-7.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-8.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-9.c: Same.
|
|
|
|
|
|
2015-06-15 15:57:04 +02:00
|
|
|
|
2015-06-15 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr35625.c: Fix typo.
|
|
|
|
|
|
2015-06-15 15:26:12 +02:00
|
|
|
|
2015-06-15 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-18.c: Remove superfluous -fopenmp setting
|
|
|
|
|
in dg-options.
|
|
|
|
|
* testsuite/libgomp.c/atomic-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/debug-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/nqueens-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr26171.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr48591.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr64824.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr64868.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr66133.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/target-8.c: Same.
|
|
|
|
|
|
2015-06-15 15:26:03 +02:00
|
|
|
|
2015-06-15 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/collapse-3.c: Use dg-additional-options for
|
|
|
|
|
-std={gnu99,c99}.
|
|
|
|
|
* testsuite/libgomp.c/for-1.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/for-2.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/for-3.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr35625.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/pr39154.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-16.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/simd-17.c: Same.
|
|
|
|
|
|
2015-06-13 10:05:54 +02:00
|
|
|
|
2015-06-13 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-4.c: New test.
|
|
|
|
|
|
2015-06-13 10:05:44 +02:00
|
|
|
|
2015-06-13 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: Add comment.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: Add comment.
|
|
|
|
|
(N): Define.
|
|
|
|
|
(main): Use N instead of hardcoded constants.
|
|
|
|
|
|
2015-06-05 17:57:34 +02:00
|
|
|
|
2015-06-05 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
merge from gomp4 branch:
|
|
|
|
|
2015-05-28 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/65443
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: New test.
|
|
|
|
|
|
2015-05-29 10:20:29 +02:00
|
|
|
|
2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/bounds.c: Adjust for
|
|
|
|
|
cleanup-tree-dump removal.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/pr41118.c: Likewise.
|
|
|
|
|
|
2015-05-28 15:59:17 +02:00
|
|
|
|
2015-05-28 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Remove function.
|
|
|
|
|
(futex_wait) [!__x86_64__]: Use __asm operand instead of sys_futex0.
|
|
|
|
|
(futex_wake) [!__x86_64__]: Ditto.
|
|
|
|
|
|
2015-05-28 12:35:39 +02:00
|
|
|
|
2015-05-28 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update
|
|
|
|
|
function comment. Only call gomp_fatal if new argument is true.
|
|
|
|
|
(acc_dev_num_out_of_range): New function.
|
|
|
|
|
(acc_init_1, acc_shutdown_1): Update call to resolve_device. Call
|
|
|
|
|
acc_dev_num_out_of_range as appropriate.
|
|
|
|
|
(acc_get_num_devices, acc_set_device_type, acc_get_device_type)
|
2015-05-28 15:59:17 +02:00
|
|
|
|
(acc_get_device_num, acc_set_device_num): Update calls to
|
|
|
|
|
resolve_device.
|
2015-05-28 12:35:39 +02:00
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test
|
|
|
|
|
output.
|
|
|
|
|
|
2015-05-28 11:29:19 +02:00
|
|
|
|
2015-05-28 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/65742
|
|
|
|
|
* oacc-init.c (plugin/plugin-host.h): Include.
|
|
|
|
|
(acc_on_device): Check whether we're in an offloaded region for
|
|
|
|
|
host_nonshm
|
|
|
|
|
plugin. Don't use __builtin_acc_on_device.
|
|
|
|
|
* plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set
|
|
|
|
|
nonshm_exec flag in thread-local data.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local
|
|
|
|
|
data for host_nonshm plugin.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data
|
|
|
|
|
for host_nonshm plugin.
|
|
|
|
|
* plugin/plugin-host.h: New.
|
|
|
|
|
|
2015-05-27 21:35:58 +02:00
|
|
|
|
2015-05-27 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
2015-05-27 23:07:09 +02:00
|
|
|
|
* config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.
|
|
|
|
|
|
|
|
|
|
2015-05-27 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
|
|
|
|
|
Declare as int.
|
|
|
|
|
(FUTEX_PRIVATE_FLAG): Remove L suffix.
|
|
|
|
|
* config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
|
|
|
|
|
Declare as int.
|
|
|
|
|
|
|
|
|
|
2015-05-27 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
2015-05-28 15:59:17 +02:00
|
|
|
|
* config/linux/x86/futex.h (sys_futex0) [__PIC__]: Remove function.
|
2015-05-27 21:35:58 +02:00
|
|
|
|
|
2015-05-27 08:16:37 +02:00
|
|
|
|
2015-05-27 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* target.c (gomp_map_pointer): New function abstracting out
|
|
|
|
|
GOMP_MAP_POINTER handling.
|
|
|
|
|
(gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
|
|
|
|
|
gomp_map_pointer().
|
|
|
|
|
|
2015-05-19 18:16:15 +02:00
|
|
|
|
2015-05-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/66199
|
|
|
|
|
* testsuite/libgomp.c/pr66199-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr66199-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr66199-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr66199-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr66199-2.f90: New test.
|
|
|
|
|
|
2015-05-19 13:06:31 +02:00
|
|
|
|
2015-05-19 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
|
|
|
|
|
on cuInit failure.
|
|
|
|
|
|
2015-05-13 18:59:20 +02:00
|
|
|
|
2015-05-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/66133
|
|
|
|
|
* testsuite/libgomp.c/pr66133.c: New test.
|
|
|
|
|
|
2015-05-13 13:24:38 +02:00
|
|
|
|
2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerated with automake-1.11.6.
|
|
|
|
|
* aclocal.m4: Likewise.
|
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
|
2015-05-09 06:50:35 +02:00
|
|
|
|
2015-05-08 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c (main): Use
|
|
|
|
|
_Complex.
|
|
|
|
|
|
|
|
|
|
* openacc.h (__GOACC_NOTHROW): Fix noexcept syntax.
|
|
|
|
|
|
2015-05-06 21:10:14 +02:00
|
|
|
|
2015-05-06 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-init.c (acc_device_lock): Add explanatory comment.
|
|
|
|
|
(resolve_device): Add comment about locking requirement.
|
|
|
|
|
(acc_init_1, acc_shutdown_1): Likewise. Add locking around
|
|
|
|
|
gomp_init_device and gomp_fini_device calls.
|
|
|
|
|
(acc_get_num_devices, acc_set_device_type, acc_get_device_type)
|
|
|
|
|
(acc_get_device_num, acc_set_device_num): Add locking around
|
|
|
|
|
resolve_device and gomp_init_device calls.
|
|
|
|
|
|
2015-05-06 18:45:49 +02:00
|
|
|
|
2015-05-06 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-init.c (acc_shutdown_1): Call gomp_mutex_unlock for
|
|
|
|
|
goacc_thread_lock on error paths.
|
|
|
|
|
* oacc-mem.c (lookup_host): Remove locking from function. Note
|
|
|
|
|
locking requirement for caller in function comment.
|
|
|
|
|
(lookup_dev): Likewise.
|
|
|
|
|
(acc_free, acc_deviceptr, acc_hostptr, acc_is_present)
|
|
|
|
|
(acc_map_data, acc_unmap_data, present_create_copy, delete_copyout)
|
|
|
|
|
(update_dev_host, gomp_acc_insert_pointer, gomp_acc_remove_pointer):
|
|
|
|
|
Add locking.
|
|
|
|
|
|
2015-05-05 11:39:29 +02:00
|
|
|
|
2015-05-05 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/65205
|
|
|
|
|
PR libgomp/65993
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: In dg-output,
|
|
|
|
|
don't expect "0x" prefix for "%p" format specifier, don't expect
|
|
|
|
|
"(nil)" for NULL pointer.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: More
|
|
|
|
|
accurately specify what we're looking for.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
|
|
|
|
|
|
2015-04-30 14:44:39 +02:00
|
|
|
|
2015-04-30 James Norris <jnorris@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/65205
|
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
|
(check_effective_target_openacc_host_selected)
|
|
|
|
|
(check_effective_target_openacc_host_nonshm_selected): New
|
|
|
|
|
procedures.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Fix misuse of
|
|
|
|
|
dg-shouldfail.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
|
|
|
|
|
|
mkoffload.c (process): Support variable mapping.
gcc/
* config/nvptx/mkoffload.c (process): Support variable mapping.
libgomp/
* libgomp.h (target_mem_desc: Remove mem_map field.
(acc_dispatch_t): Remove open_device_func, close_device_func,
get_device_num_func, set_device_num_func, target_data members.
Change create_thread_data_func argument to device number instead of
generic pointer.
* oacc-async.c (assert.h): Include.
(acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
(acc_wait_all, acc_wait_all_async): Use current host thread's
active device, not base_dev.
* oacc-cuda.c (acc_get_current_cuda_device)
(acc_get_current_cuda_context, acc_get_cuda_stream)
(acc_set_cuda_stream): Likewise.
* oacc-host.c (host_dispatch): Don't set open_device_func,
close_device_func, get_device_num_func or set_device_num_func.
* oacc-init.c (base_dev, init_key): Remove.
(cached_base_dev): New.
(name_of_acc_device_t): New.
(acc_init_1): Initialise default-numbered device, not zeroth.
(acc_shutdown_1): Close all devices of a given type.
(goacc_destroy_thread): Don't use base_dev.
(lazy_open, lazy_init, lazy_init_and_open): Remove.
(goacc_attach_host_thread_to_device): New.
(acc_init): Reimplement with goacc_attach_host_thread_to_device.
(acc_get_num_devices): Don't use base_dev.
(acc_set_device_type): Reimplement.
(acc_get_device_type): Don't use base_dev.
(acc_get_device_num): Tweak logic.
(acc_set_device_num): Likewise.
(acc_on_device): Use acc_get_device_type.
(goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
(goacc_lazy_initialize): Reimplement with acc_init and
goacc_attach_host_thread_to_device.
* oacc-int.h (goacc_thread): Add base_dev field.
(base_dev): Remove extern declaration.
(goacc_attach_host_thread_to_device): Add prototype.
* oacc-mem.c (acc_malloc): Use current thread's device instead of
base_dev.
(acc_free): Likewise.
(acc_memcpy_to_device): Likewise.
(acc_memcpy_from_device): Likewise.
* oacc-parallel.c (select_acc_device): Remove. Replace calls with
goacc_lazy_initialize (throughout).
(GOACC_parallel): Use tgt_offset to locate target functions.
* target.c (gomp_map_vars): Don't set tgt->mem_map.
(gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
(gomp_load_plugin_for_device): Remove open_device, close_device,
get_device_num, set_device_num openacc hook initialisation. Don't set
openacc.target_data.
* plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
(GOMP_OFFLOAD_openacc_close_device)
(GOMP_OFFLOAD_openacc_get_device_num)
(GOMP_OFFLOAD_openacc_set_device_num): Remove.
(GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
to int.
* plugin/plugin-nvptx.c (ptx_inited): Remove.
(instantiated_devices, ptx_dev_lock): New.
(struct ptx_image_data): New.
(ptx_devices, ptx_images, ptx_image_lock): New.
(fini_streams_for_device): Reorder cuStreamDestroy call.
(nvptx_get_num_devices): Remove forward declaration.
(nvptx_init): Change return type to bool.
(nvptx_fini): Remove.
(nvptx_attach_host_thread_to_device): New.
(nvptx_open_device): Return struct ptx_device* instead of void*.
(nvptx_close_device): Change argument type to struct ptx_device*,
return type to void.
(nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
(kernel_target_data, kernel_host_table): Remove static globals.
(GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
(GOMP_OFFLOAD_init_device): Reimplement.
(GOMP_OFFLOAD_fini_device): Likewise.
(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
(GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
(GOMP_OFFLOAD_host2dev): Use ORD argument.
(GOMP_OFFLOAD_openacc_open_device)
(GOMP_OFFLOAD_openacc_close_device)
(GOMP_OFFLOAD_openacc_set_device_num)
(GOMP_OFFLOAD_openacc_get_device_num): Remove.
(GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
(device number).
libgomp/testsuite/
* libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
From-SVN: r221922
2015-04-08 17:58:33 +02:00
|
|
|
|
2015-04-08 Julian Brown <julian@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (target_mem_desc: Remove mem_map field.
|
|
|
|
|
(acc_dispatch_t): Remove open_device_func, close_device_func,
|
|
|
|
|
get_device_num_func, set_device_num_func, target_data members.
|
|
|
|
|
Change create_thread_data_func argument to device number instead of
|
|
|
|
|
generic pointer.
|
|
|
|
|
* oacc-async.c (assert.h): Include.
|
|
|
|
|
(acc_async_test, acc_async_test_all, acc_wait, acc_wait_async)
|
|
|
|
|
(acc_wait_all, acc_wait_all_async): Use current host thread's
|
|
|
|
|
active device, not base_dev.
|
|
|
|
|
* oacc-cuda.c (acc_get_current_cuda_device)
|
|
|
|
|
(acc_get_current_cuda_context, acc_get_cuda_stream)
|
|
|
|
|
(acc_set_cuda_stream): Likewise.
|
|
|
|
|
* oacc-host.c (host_dispatch): Don't set open_device_func,
|
|
|
|
|
close_device_func, get_device_num_func or set_device_num_func.
|
|
|
|
|
* oacc-init.c (base_dev, init_key): Remove.
|
|
|
|
|
(cached_base_dev): New.
|
|
|
|
|
(name_of_acc_device_t): New.
|
|
|
|
|
(acc_init_1): Initialise default-numbered device, not zeroth.
|
|
|
|
|
(acc_shutdown_1): Close all devices of a given type.
|
|
|
|
|
(goacc_destroy_thread): Don't use base_dev.
|
|
|
|
|
(lazy_open, lazy_init, lazy_init_and_open): Remove.
|
|
|
|
|
(goacc_attach_host_thread_to_device): New.
|
|
|
|
|
(acc_init): Reimplement with goacc_attach_host_thread_to_device.
|
|
|
|
|
(acc_get_num_devices): Don't use base_dev.
|
|
|
|
|
(acc_set_device_type): Reimplement.
|
|
|
|
|
(acc_get_device_type): Don't use base_dev.
|
|
|
|
|
(acc_get_device_num): Tweak logic.
|
|
|
|
|
(acc_set_device_num): Likewise.
|
|
|
|
|
(acc_on_device): Use acc_get_device_type.
|
|
|
|
|
(goacc_runtime_initialize): Initialize cached_base_dev not base_dev.
|
|
|
|
|
(goacc_lazy_initialize): Reimplement with acc_init and
|
|
|
|
|
goacc_attach_host_thread_to_device.
|
|
|
|
|
* oacc-int.h (goacc_thread): Add base_dev field.
|
|
|
|
|
(base_dev): Remove extern declaration.
|
|
|
|
|
(goacc_attach_host_thread_to_device): Add prototype.
|
|
|
|
|
* oacc-mem.c (acc_malloc): Use current thread's device instead of
|
|
|
|
|
base_dev.
|
|
|
|
|
(acc_free): Likewise.
|
|
|
|
|
(acc_memcpy_to_device): Likewise.
|
|
|
|
|
(acc_memcpy_from_device): Likewise.
|
|
|
|
|
* oacc-parallel.c (select_acc_device): Remove. Replace calls with
|
|
|
|
|
goacc_lazy_initialize (throughout).
|
|
|
|
|
(GOACC_parallel): Use tgt_offset to locate target functions.
|
|
|
|
|
* target.c (gomp_map_vars): Don't set tgt->mem_map.
|
|
|
|
|
(gomp_unmap_vars): Use devicep->mem_map pointer not tgt->mem_map.
|
|
|
|
|
(gomp_load_plugin_for_device): Remove open_device, close_device,
|
|
|
|
|
get_device_num, set_device_num openacc hook initialisation. Don't set
|
|
|
|
|
openacc.target_data.
|
|
|
|
|
* plugin/plugin-host.c (GOMP_OFFLOAD_openacc_open_device)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_close_device)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_get_device_num)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_set_device_num): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_create_thread_data): Change (unused) argument
|
|
|
|
|
to int.
|
|
|
|
|
* plugin/plugin-nvptx.c (ptx_inited): Remove.
|
|
|
|
|
(instantiated_devices, ptx_dev_lock): New.
|
|
|
|
|
(struct ptx_image_data): New.
|
|
|
|
|
(ptx_devices, ptx_images, ptx_image_lock): New.
|
|
|
|
|
(fini_streams_for_device): Reorder cuStreamDestroy call.
|
|
|
|
|
(nvptx_get_num_devices): Remove forward declaration.
|
|
|
|
|
(nvptx_init): Change return type to bool.
|
|
|
|
|
(nvptx_fini): Remove.
|
|
|
|
|
(nvptx_attach_host_thread_to_device): New.
|
|
|
|
|
(nvptx_open_device): Return struct ptx_device* instead of void*.
|
|
|
|
|
(nvptx_close_device): Change argument type to struct ptx_device*,
|
|
|
|
|
return type to void.
|
|
|
|
|
(nvptx_get_num_devices): Use instantiated_devices not ptx_inited.
|
|
|
|
|
(kernel_target_data, kernel_host_table): Remove static globals.
|
|
|
|
|
(GOMP_OFFLOAD_register_image, GOMP_OFFLOAD_get_table): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_init_device): Reimplement.
|
|
|
|
|
(GOMP_OFFLOAD_fini_device): Likewise.
|
|
|
|
|
(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New.
|
|
|
|
|
(GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free, GOMP_OFFLOAD_dev2host)
|
|
|
|
|
(GOMP_OFFLOAD_host2dev): Use ORD argument.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_open_device)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_close_device)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_set_device_num)
|
|
|
|
|
(GOMP_OFFLOAD_openacc_get_device_num): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_openacc_create_thread_data): Change argument to int
|
|
|
|
|
(device number).
|
|
|
|
|
|
|
|
|
|
testsuite/
|
|
|
|
|
* libgomp.oacc-c-c++-common/lib-9.c: Fix devnum check in test.
|
|
|
|
|
|
libgomp: rework initialization of offloading
gcc/
* config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
GOMP_offload_unregister from the destructor.
libgomp/
* libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
* libgomp.h (struct gomp_memory_mapping): Remove.
(struct target_mem_desc): Change type of mem_map from
gomp_memory_mapping * to splay_tree_s *.
(struct gomp_device_descr): Remove register_image_func, get_table_func.
Add load_image_func, unload_image_func.
Change type of mem_map from gomp_memory_mapping to splay_tree_s.
Remove offload_regions_registered.
(gomp_init_tables): Remove.
(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
to splay_tree_s *.
* libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
* oacc-host.c (host_dispatch): Do not initialize register_image_func,
get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
offload_regions_registered.
Initialize load_image_func, unload_image_func, mem_map.root.
(goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
* oacc-init.c (lazy_open): Don't call gomp_init_tables.
(acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
* oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
gomp_memory_mapping *. Use dev's lock and splay_tree.
(lookup_dev): Use dev's lock.
(acc_deviceptr): Pass dev to lookup_host instead of mem_map.
(acc_is_present): Likewise.
(acc_map_data): Likewise.
(acc_unmap_data): Likewise. Use dev's lock.
(present_create_copy): Likewise.
(delete_copyout): Pass dev to lookup_host instead of mem_map.
(update_dev_host): Likewise.
(gomp_acc_remove_pointer): Likewise. Use dev's lock.
* oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
* plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
(GOMP_OFFLOAD_get_table): Remove
(GOMP_OFFLOAD_load_image): New function.
(GOMP_OFFLOAD_unload_image): New function.
* target.c (register_lock): New mutex for offload image registration.
(num_devices): Do not guard with PLUGIN_SUPPORT.
(gomp_realloc_unlock): New static function.
(gomp_map_vars_existing): Add device descriptor argument. Unlock mutex
before gomp_fatal.
(gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
Pass devicep to gomp_map_vars_existing. Unlock mutex before gomp_fatal.
(gomp_copy_from_async): Use dev's lock and splay_tree instead of
mem_map's.
(gomp_unmap_vars): Likewise.
(gomp_update): Remove gomp_memory_mapping argument. Use dev's lock and
splay_tree instead of mm's. Unlock mutex before gomp_fatal.
(gomp_offload_image_to_device): New static function.
(GOMP_offload_register): Add mutex lock.
Call gomp_offload_image_to_device for all initialized devices.
Replace gomp_realloc with gomp_realloc_unlock.
(GOMP_offload_unregister): New function.
(gomp_init_tables): Replace with gomp_init_device. Replace a call to
get_table_func from the plugin with calls to init_device_func and
gomp_offload_image_to_device.
(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
to splay_tree_s *.
(GOMP_target): Do not call gomp_init_tables. Use dev's lock and
splay_tree instead of mem_map's. Unlock mutex before gomp_fatal.
(GOMP_target_data): Do not call gomp_init_tables.
(GOMP_target_update): Likewise. Remove argument from gomp_update.
(gomp_load_plugin_for_device): Replace register_image and get_table
with load_image and unload_image in DLSYM ().
(gomp_register_images_for_device): Remove function.
(gomp_target_init): Do not initialize current_device.mem_map.*,
current_device.offload_regions_registered.
Remove call to gomp_register_images_for_device.
Do not free offload_images and num_offload_images.
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp: Include map.
(AddrVect, DevAddrVect, ImgDevAddrMap): New typedefs.
(num_devices, num_images, address_table): New static vars.
(num_libraries, lib_descrs): Remove static vars.
(set_mic_lib_path): Rename to ...
(init): ... this. Allocate address_table and get num_devices.
(GOMP_OFFLOAD_get_num_devices): return num_devices.
(load_lib_and_get_table): Remove static function.
(offload_image): New static function.
(GOMP_OFFLOAD_get_table): Remove function.
(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New functions.
From-SVN: r221878
2015-04-06 14:40:28 +02:00
|
|
|
|
2015-04-06 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* libgomp-plugin.h (struct mapping_table): Replace with addr_pair.
|
|
|
|
|
* libgomp.h (struct gomp_memory_mapping): Remove.
|
|
|
|
|
(struct target_mem_desc): Change type of mem_map from
|
|
|
|
|
gomp_memory_mapping * to splay_tree_s *.
|
|
|
|
|
(struct gomp_device_descr): Remove register_image_func, get_table_func.
|
|
|
|
|
Add load_image_func, unload_image_func.
|
|
|
|
|
Change type of mem_map from gomp_memory_mapping to splay_tree_s.
|
|
|
|
|
Remove offload_regions_registered.
|
|
|
|
|
(gomp_init_tables): Remove.
|
|
|
|
|
(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
|
|
|
|
|
to splay_tree_s *.
|
|
|
|
|
* libgomp.map (GOMP_4.0.1): Add GOMP_offload_unregister.
|
|
|
|
|
* oacc-host.c (host_dispatch): Do not initialize register_image_func,
|
|
|
|
|
get_table_func, mem_map.is_initialized, mem_map.splay_tree.root,
|
|
|
|
|
offload_regions_registered.
|
|
|
|
|
Initialize load_image_func, unload_image_func, mem_map.root.
|
|
|
|
|
(goacc_host_init): Do not initialize host_dispatch.mem_map.lock.
|
|
|
|
|
* oacc-init.c (lazy_open): Don't call gomp_init_tables.
|
|
|
|
|
(acc_shutdown_1): Use dev's lock and splay_tree instead of mem_map's.
|
|
|
|
|
* oacc-mem.c (lookup_host): Get gomp_device_descr *dev instead of
|
|
|
|
|
gomp_memory_mapping *. Use dev's lock and splay_tree.
|
|
|
|
|
(lookup_dev): Use dev's lock.
|
|
|
|
|
(acc_deviceptr): Pass dev to lookup_host instead of mem_map.
|
|
|
|
|
(acc_is_present): Likewise.
|
|
|
|
|
(acc_map_data): Likewise.
|
|
|
|
|
(acc_unmap_data): Likewise. Use dev's lock.
|
|
|
|
|
(present_create_copy): Likewise.
|
|
|
|
|
(delete_copyout): Pass dev to lookup_host instead of mem_map.
|
|
|
|
|
(update_dev_host): Likewise.
|
|
|
|
|
(gomp_acc_remove_pointer): Likewise. Use dev's lock.
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel): Use dev's lock and splay_tree.
|
|
|
|
|
* plugin/plugin-host.c (GOMP_OFFLOAD_register_image): Remove.
|
|
|
|
|
(GOMP_OFFLOAD_get_table): Remove
|
|
|
|
|
(GOMP_OFFLOAD_load_image): New function.
|
|
|
|
|
(GOMP_OFFLOAD_unload_image): New function.
|
|
|
|
|
* target.c (register_lock): New mutex for offload image registration.
|
|
|
|
|
(num_devices): Do not guard with PLUGIN_SUPPORT.
|
|
|
|
|
(gomp_realloc_unlock): New static function.
|
|
|
|
|
(gomp_map_vars_existing): Add device descriptor argument. Unlock mutex
|
|
|
|
|
before gomp_fatal.
|
|
|
|
|
(gomp_map_vars): Use dev's lock and splay_tree instead of mem_map's.
|
|
|
|
|
Pass devicep to gomp_map_vars_existing. Unlock mutex before gomp_fatal.
|
|
|
|
|
(gomp_copy_from_async): Use dev's lock and splay_tree instead of
|
|
|
|
|
mem_map's.
|
|
|
|
|
(gomp_unmap_vars): Likewise.
|
|
|
|
|
(gomp_update): Remove gomp_memory_mapping argument. Use dev's lock and
|
|
|
|
|
splay_tree instead of mm's. Unlock mutex before gomp_fatal.
|
|
|
|
|
(gomp_offload_image_to_device): New static function.
|
|
|
|
|
(GOMP_offload_register): Add mutex lock.
|
|
|
|
|
Call gomp_offload_image_to_device for all initialized devices.
|
|
|
|
|
Replace gomp_realloc with gomp_realloc_unlock.
|
|
|
|
|
(GOMP_offload_unregister): New function.
|
|
|
|
|
(gomp_init_tables): Replace with gomp_init_device. Replace a call to
|
|
|
|
|
get_table_func from the plugin with calls to init_device_func and
|
|
|
|
|
gomp_offload_image_to_device.
|
|
|
|
|
(gomp_free_memmap): Change type of argument from gomp_memory_mapping *
|
|
|
|
|
to splay_tree_s *.
|
|
|
|
|
(GOMP_target): Do not call gomp_init_tables. Use dev's lock and
|
|
|
|
|
splay_tree instead of mem_map's. Unlock mutex before gomp_fatal.
|
|
|
|
|
(GOMP_target_data): Do not call gomp_init_tables.
|
|
|
|
|
(GOMP_target_update): Likewise. Remove argument from gomp_update.
|
|
|
|
|
(gomp_load_plugin_for_device): Replace register_image and get_table
|
|
|
|
|
with load_image and unload_image in DLSYM ().
|
|
|
|
|
(gomp_register_images_for_device): Remove function.
|
|
|
|
|
(gomp_target_init): Do not initialize current_device.mem_map.*,
|
|
|
|
|
current_device.offload_regions_registered.
|
|
|
|
|
Remove call to gomp_register_images_for_device.
|
|
|
|
|
Do not free offload_images and num_offload_images.
|
|
|
|
|
|
2015-03-30 19:54:05 +02:00
|
|
|
|
2015-03-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/65597
|
|
|
|
|
* testsuite/libgomp.fortran/pr65597.f90: New test.
|
|
|
|
|
|
2015-03-27 13:10:16 +01:00
|
|
|
|
2015-03-27 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/65594
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c (abort): Declare.
|
|
|
|
|
(init, check): New function.
|
|
|
|
|
(foo): Change return type to void.
|
|
|
|
|
(main): Call init and check.
|
|
|
|
|
|
2015-03-27 13:10:07 +01:00
|
|
|
|
2015-03-27 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/65594
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c (M): Define.
|
|
|
|
|
(foo): Use M for non-inner loops to scale down test-case.
|
|
|
|
|
|
2015-03-25 16:05:02 +01:00
|
|
|
|
2015-03-25 Kai Tietz <ktietz@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/64972
|
|
|
|
|
* oacc-parallel.c (GOACC_parallel): Use PRIu64 if available.
|
|
|
|
|
(GOACC_data_start): Likewise.
|
|
|
|
|
* target.c (gomp_map_vars): Likewise.
|
|
|
|
|
|
2015-03-21 17:19:43 +01:00
|
|
|
|
2015-03-21 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Don't run on
|
|
|
|
|
hppa*-*-hpux*.
|
|
|
|
|
|
2015-03-19 20:12:43 +01:00
|
|
|
|
2015-03-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-10.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-4.C: New test.
|
|
|
|
|
|
2015-03-13 14:30:26 +01:00
|
|
|
|
2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/declare-target-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/declare-target-2.f90: New file.
|
|
|
|
|
|
2015-03-13 11:57:07 +01:00
|
|
|
|
2015-03-13 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (*-*-rtems*): Use local-exec TLS model.
|
|
|
|
|
* configure.ac (*-*-rtems*): Assume Pthread is supported.
|
|
|
|
|
(pthread.h): Check for this header file.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2015-02-25 16:38:38 +01:00
|
|
|
|
2015-02-25 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c (DO_PRAGMA)
|
|
|
|
|
(check_reduction_op, check_reduction_macro, max, min):
|
|
|
|
|
Declare.
|
|
|
|
|
(test_reductions_int, test_reductions_minmax, test_reductions_bool): New
|
|
|
|
|
function.
|
|
|
|
|
(main): Use new functions.
|
|
|
|
|
|
2015-02-18 14:33:43 +01:00
|
|
|
|
2015-02-18 Ilya Tocar <ilya.tocar@intel.com>
|
|
|
|
|
|
|
|
|
|
* target.c (gomp_load_plugin_for_device): Use const char * instead of
|
|
|
|
|
char * for variables holding dlerror return values.
|
|
|
|
|
(DLSYM_OPT): Ditto.
|
|
|
|
|
|
2015-02-17 19:24:07 +01:00
|
|
|
|
2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp-plugin.c (GOMP_PLUGIN_debug): Fix typo.
|
|
|
|
|
|
2015-02-17 19:05:24 +01:00
|
|
|
|
2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-ptx.h (GOACC_INTERNAL_PTX): Add GOACC_tid, GOACC_ntid,
|
|
|
|
|
GOACC_ctaid, and GOACC_nctaid routines.
|
|
|
|
|
|
2015-02-11 14:40:31 +01:00
|
|
|
|
2015-02-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/64824
|
|
|
|
|
* testsuite/libgomp.c/atomic-18.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-16.C: New test.
|
|
|
|
|
|
2015-02-04 23:32:36 +01:00
|
|
|
|
2015-02-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/64824
|
|
|
|
|
PR c/64868
|
|
|
|
|
* testsuite/libgomp.c/pr64824.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr64868.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr64824.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr64868.C: New test.
|
|
|
|
|
|
2015-02-02 04:31:31 +01:00
|
|
|
|
2015-02-01 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/64635
|
|
|
|
|
* configure.tgt (*-*-aix*): Use standard posix plugin-suffix.h.
|
|
|
|
|
Link with -lpthread.
|
|
|
|
|
* config/aix/plugin-suffix.h: Delete.
|
|
|
|
|
|
2015-01-28 22:23:14 +01:00
|
|
|
|
2015-01-28 Jack Howarth <howarth.at.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/64635
|
|
|
|
|
* configure.tgt (*-*-aix*): Use config_path "aix posix".
|
|
|
|
|
(*-*-darwin*): Use config_path "bsd darwin posix".
|
|
|
|
|
(*-*-hpux*): Use config_path "hpux posix".
|
|
|
|
|
* target.c: Add include of plugin-suffix.h and use
|
|
|
|
|
SONAME_SUFFIX macro.
|
|
|
|
|
* config/aix/plugin-suffix.h: New file.
|
|
|
|
|
* config/darwin/plugin-suffix.h: New file.
|
|
|
|
|
* config/hpux/plugin-suffix.h: New file.
|
|
|
|
|
* config/posix/plugin-suffix.h: New file.
|
|
|
|
|
|
2015-01-23 19:19:50 +01:00
|
|
|
|
2015-01-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/64734
|
|
|
|
|
* libgomp.c/pr64734.c: New test.
|
|
|
|
|
|
2015-01-23 13:54:16 +01:00
|
|
|
|
2015-01-23 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/64672
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
|
|
|
|
|
|
2015-01-23 13:53:55 +01:00
|
|
|
|
2015-01-23 Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/64707
|
|
|
|
|
* testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
|
|
|
|
|
dg-options.
|
|
|
|
|
|
[PR libgomp/64625] Remove __OFFLOAD_TABLE__ variable/formal parameter.
gcc/
* omp-low.c (offload_symbol_decl): Remove variable.
(get_offload_symbol_decl): Remove function.
(expand_omp_target): For BUILT_IN_GOMP_TARGET,
BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
BUILT_IN_GOACC_UPDATE don't pass it at all.
libgomp/
* libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
(GOACC_parallel, GOACC_update): Remove const_void *offload_table
formal parameter. Update all users.
* target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
Document unused formal parameter.
From-SVN: r219836
2015-01-19 13:03:35 +01:00
|
|
|
|
2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
[PR libgomp/64625] Remove __OFFLOAD_TABLE__ variable/formal parameter.
gcc/
* omp-low.c (offload_symbol_decl): Remove variable.
(get_offload_symbol_decl): Remove function.
(expand_omp_target): For BUILT_IN_GOMP_TARGET,
BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
BUILT_IN_GOACC_UPDATE don't pass it at all.
libgomp/
* libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
(GOACC_parallel, GOACC_update): Remove const_void *offload_table
formal parameter. Update all users.
* target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
Document unused formal parameter.
From-SVN: r219837
2015-01-19 13:05:43 +01:00
|
|
|
|
PR libgomp/64625
|
[PR libgomp/64625] Remove __OFFLOAD_TABLE__ variable/formal parameter.
gcc/
* omp-low.c (offload_symbol_decl): Remove variable.
(get_offload_symbol_decl): Remove function.
(expand_omp_target): For BUILT_IN_GOMP_TARGET,
BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
BUILT_IN_GOACC_UPDATE don't pass it at all.
libgomp/
* libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
(GOACC_parallel, GOACC_update): Remove const_void *offload_table
formal parameter. Update all users.
* target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
Document unused formal parameter.
From-SVN: r219836
2015-01-19 13:03:35 +01:00
|
|
|
|
* libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
|
|
|
|
|
(GOACC_parallel, GOACC_update): Remove const_void *offload_table
|
|
|
|
|
formal parameter. Update all users.
|
|
|
|
|
* target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
|
|
|
|
|
Document unused formal parameter.
|
|
|
|
|
|
2015-01-16 21:05:21 +01:00
|
|
|
|
2015-01-16 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* oacc-parallel.c: Don't include <alloca.h>.
|
|
|
|
|
(GOACC_parallel): Use gomp_alloca instead of alloca.
|
|
|
|
|
|
2015-01-16 15:27:55 +01:00
|
|
|
|
2015-01-16 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* target.c (num_devices): Guard with PLUGIN_SUPPORT.
|
|
|
|
|
|
Merge current set of OpenACC changes from gomp-4_0-branch.
contrib/
* gcc_update (files_and_dependencies): Update rules for new
libgomp/plugin/Makefrag.am and libgomp/plugin/configfrag.ac files.
gcc/
* builtin-types.def (BT_FN_VOID_INT_INT_VAR)
(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
New function types.
* builtins.c: Include "gomp-constants.h".
(expand_builtin_acc_on_device): New function.
(expand_builtin, is_inexpensive_builtin): Handle
BUILT_IN_ACC_ON_DEVICE.
* builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
New macros.
* cgraph.c (cgraph_node::create): Consider flag_openacc next to
flag_openmp.
* config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
<*-intelmic-* | *-intelmicemul-*> (tm_file): Add
i386/intelmic-offload.h.
* gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
to libgomp and its dependencies.
* config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
* config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
* config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
* config/ia64/hpux.h (LIB_SPEC): Likewise.
* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
* config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
* doc/generic.texi: Update for OpenACC changes.
* doc/gimple.texi: Likewise.
* doc/invoke.texi: Likewise.
* doc/sourcebuild.texi: Likewise.
* gimple-pretty-print.c (dump_gimple_omp_for): Handle
GF_OMP_FOR_KIND_OACC_LOOP.
(dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
GF_OMP_TARGET_KIND_OACC_UPDATE,
GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
Dump more data.
* gimple.c: Update comments for OpenACC changes.
* gimple.def: Likewise.
* gimple.h: Likewise.
(enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
(gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
appropriate place.
(is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
* gimplify.c: Include "gomp-constants.h".
Update comments for OpenACC changes.
(is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
OMP_CLAUSE_SEQ.
(gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
OMP_CLAUSE_SET_MAP_KIND.
(gimplify_oacc_cache): New function.
(gimplify_omp_for): Handle OACC_LOOP.
(gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
OACC_DATA.
(gimplify_omp_target_update): Handle OACC_ENTER_DATA,
OACC_EXIT_DATA, OACC_UPDATE.
(gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
(gimplify_body): Consider flag_openacc next to flag_openmp.
* lto-streamer-out.c: Include "gomp-constants.h".
* omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
(BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
(BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
(BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
(BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
(BUILT_IN_ACC_ON_DEVICE): New builtins.
* omp-low.c: Include "gomp-constants.h".
Update comments for OpenACC changes.
(struct omp_context): Add reduction_map, gwv_below, gwv_this
members.
(extract_omp_for_data, use_pointer_for_field, install_var_field)
(new_omp_context, delete_omp_context, scan_sharing_clauses)
(create_omp_child_function, scan_omp_for, scan_omp_target)
(check_omp_nesting_restrictions, lower_reduction_clauses)
(build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
Update for OpenACC changes.
(scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ. Use GOMP_MAP_* instead of
OMP_CLAUSE_MAP_*.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
Handle GF_OMP_FOR_KIND_OACC_LOOP.
(expand_omp_target, lower_omp_target): Handle
GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
GF_OMP_TARGET_KIND_OACC_UPDATE,
GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
GF_OMP_TARGET_KIND_OACC_DATA.
(pass_expand_omp::execute, execute_lower_omp)
(pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
flag_openmp.
(offload_symbol_decl): New variable.
(oacc_get_reduction_array_id, oacc_max_threads)
(get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
(maybe_lookup_oacc_reduction, enclosing_target_ctx)
(oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
(oacc_gimple_assign, oacc_initialize_reduction_data)
(oacc_finalize_reduction_data, oacc_process_reduction_data): New
functions.
(is_targetreg_ctx): Remove function.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
* tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
* tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
(OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
(OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
(OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
(OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
* tree-core.h: Update comments for OpenACC changes.
(enum omp_clause_map_kind): Remove.
(struct tree_omp_clause): Change type of map_kind member from enum
omp_clause_map_kind to unsigned char.
* tree-inline.c: Update comments for OpenACC changes.
* tree-nested.c: Likewise. Include "gomp-constants.h".
(convert_nonlocal_reference_stmt, convert_local_reference_stmt)
(convert_tramp_reference_stmt, convert_gimple_call): Update for
OpenACC changes. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
OMP_CLAUSE_SET_MAP_KIND.
* tree-pretty-print.c: Include "gomp-constants.h".
(dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT. Use GOMP_MAP_*
instead of OMP_CLAUSE_MAP_*.
(dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
* tree-streamer-in.c: Include "gomp-constants.h".
(unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
* tree-streamer-out.c: Include "gomp-constants.h".
(pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
OMP_CLAUSE_MAP_*.
* tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
(OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
(OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
* tree.c (omp_clause_num_ops): Update accordingly.
* tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
Likewise.
(OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
(OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
(OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
(OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
(OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
(OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
* tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
(OMP_CLAUSE_SET_MAP_KIND): New macro.
* varpool.c (varpool_node::get_create): Consider flag_openacc next
to flag_openmp.
* config/i386/intelmic-offload.h: New file.
* config/nvptx/offload.h: Likewise.
gcc/ada/
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8)
(DEF_FUNCTION_TYPE_VAR_12): New macros.
gcc/c-family/
* c.opt (fopenacc): New option.
* c-cppbuiltin.c (c_cpp_builtins): Conditionally define _OPENACC.
* c-common.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
New macros.
* c-common.h (c_finish_oacc_wait): New prototype.
* c-omp.c: Include "omp-low.h" and "gomp-constants.h".
(c_finish_oacc_wait): New function.
* c-pragma.c (oacc_pragmas): New variable.
(c_pp_lookup_pragma, init_pragma): Handle it.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OACC_CACHE,
PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA, PRAGMA_OACC_EXIT_DATA,
PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP, PRAGMA_OACC_PARALLEL,
PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
(enum pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_ASYNC,
PRAGMA_OACC_CLAUSE_AUTO, PRAGMA_OACC_CLAUSE_COLLAPSE,
PRAGMA_OACC_CLAUSE_COPY, PRAGMA_OACC_CLAUSE_COPYIN,
PRAGMA_OACC_CLAUSE_COPYOUT, PRAGMA_OACC_CLAUSE_CREATE,
PRAGMA_OACC_CLAUSE_DELETE, PRAGMA_OACC_CLAUSE_DEVICE,
PRAGMA_OACC_CLAUSE_DEVICEPTR, PRAGMA_OACC_CLAUSE_FIRSTPRIVATE,
PRAGMA_OACC_CLAUSE_GANG, PRAGMA_OACC_CLAUSE_HOST,
PRAGMA_OACC_CLAUSE_IF, PRAGMA_OACC_CLAUSE_NUM_GANGS,
PRAGMA_OACC_CLAUSE_NUM_WORKERS, PRAGMA_OACC_CLAUSE_PRESENT,
PRAGMA_OACC_CLAUSE_PRESENT_OR_COPY,
PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYIN,
PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYOUT,
PRAGMA_OACC_CLAUSE_PRESENT_OR_CREATE, PRAGMA_OACC_CLAUSE_PRIVATE,
PRAGMA_OACC_CLAUSE_REDUCTION, PRAGMA_OACC_CLAUSE_SELF,
PRAGMA_OACC_CLAUSE_SEQ, PRAGMA_OACC_CLAUSE_VECTOR,
PRAGMA_OACC_CLAUSE_VECTOR_LENGTH, PRAGMA_OACC_CLAUSE_WAIT,
PRAGMA_OACC_CLAUSE_WORKER.
gcc/c/
* c-parser.c: Include "gomp-constants.h".
(c_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
Use OMP_CLAUSE_SET_MAP_KIND.
(c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA,
PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_UPDATE.
(c_parser_omp_construct): Handle PRAGMA_OACC_CACHE,
PRAGMA_OACC_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_LOOP,
PRAGMA_OACC_PARALLEL, PRAGMA_OACC_WAIT.
(c_parser_omp_clause_name): Handle "auto", "async", "copy",
"copyout", "create", "delete", "deviceptr", "gang", "host",
"num_gangs", "num_workers", "present", "present_or_copy", "pcopy",
"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
"present_or_create", "pcreate", "seq", "self", "vector",
"vector_length", "wait", "worker".
(OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
(OACC_ENTER_DATA_CLAUSE_MASK, OACC_EXIT_DATA_CLAUSE_MASK)
(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
(OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
(c_parser_omp_variable_list): Handle OMP_CLAUSE__CACHE_.
(c_parser_oacc_wait_list, c_parser_oacc_data_clause)
(c_parser_oacc_data_clause_deviceptr)
(c_parser_omp_clause_num_gangs, c_parser_omp_clause_num_workers)
(c_parser_oacc_clause_async, c_parser_oacc_clause_wait)
(c_parser_omp_clause_vector_length, c_parser_oacc_all_clauses)
(c_parser_oacc_cache, c_parser_oacc_data, c_parser_oacc_kernels)
(c_parser_oacc_enter_exit_data, c_parser_oacc_loop)
(c_parser_oacc_parallel, c_parser_oacc_update)
(c_parser_oacc_wait): New functions.
* c-tree.h (c_finish_oacc_parallel, c_finish_oacc_kernels)
(c_finish_oacc_data): New prototypes.
* c-typeck.c: Include "gomp-constants.h".
(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
OMP_CLAUSE_SET_MAP_KIND.
(c_finish_oacc_parallel, c_finish_oacc_kernels)
(c_finish_oacc_data): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_,
OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_GANG,
OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, and OMP_CLAUSE_MAP's
GOMP_MAP_FORCE_DEVICEPTR.
gcc/cp/
* parser.c: Include "gomp-constants.h".
(cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
Use OMP_CLAUSE_SET_MAP_KIND.
(cp_parser_omp_construct, cp_parser_pragma): Handle
PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
(cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
"create", "delete", "deviceptr", "host", "num_gangs",
"num_workers", "present", "present_or_copy", "pcopy",
"present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
"present_or_create", "pcreate", "vector_length", "wait".
(OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
(OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
(OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
(OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
(cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
(cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
(cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
(cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
(cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
(cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
(cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
(cp_parser_oacc_kernels, cp_parser_oacc_loop)
(cp_parser_oacc_parallel, cp_parser_oacc_update)
(cp_parser_oacc_wait): New functions.
* cp-tree.h (finish_oacc_data, finish_oacc_kernels)
(finish_oacc_parallel): New prototypes.
* semantics.c: Include "gomp-constants.h".
(handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
OMP_CLAUSE_SET_MAP_KIND.
(finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
(finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
functions.
gcc/fortran/
* lang.opt (fopenacc): New option.
* cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
* dump-parse-tree.c (show_omp_node): Split part of it into...
(show_omp_clauses): ... this new function.
(show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
(show_namespace): Update for OpenACC.
* f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
(DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
(DEF_GOACC_BUILTIN_COMPILER): New macros.
* types.def (BT_FN_VOID_INT_INT_VAR)
(BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
(BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
New function types.
* gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
ST_OACC_ROUTINE.
(struct gfc_expr_list): New data type.
(gfc_get_expr_list): New macro.
(gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
(OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
(OMP_LIST_CACHE): New enumerators.
(struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
wait_list, tile_list, async, gang, worker, vector, seq,
independent, wait, par_auto, gang_static, and loc members.
(struct gfc_namespace): Add oacc_declare_clauses member.
(gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
(gfc_free_expr_list, gfc_resolve_oacc_directive)
(gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
(gfc_resolve_oacc_blocks): New prototypes.
* match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
EXEC_OACC_PARALLEL_LOOP.
* match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
(gfc_match_oacc_update, gfc_match_oacc_declare)
(gfc_match_oacc_loop, gfc_match_oacc_host_data)
(gfc_match_oacc_data, gfc_match_oacc_kernels)
(gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
(gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
(gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
prototypes.
* openmp.c: Include "diagnostic.h" and "gomp-constants.h".
(gfc_free_omp_clauses): Update for members added to struct
gfc_omp_clauses.
(gfc_match_omp_clauses): Change mask paramter to uint64_t. Add
openacc parameter.
(resolve_omp_clauses): Add openacc parameter. Update for OpenACC.
(struct fortran_omp_context): Add is_openmp member.
(gfc_resolve_omp_parallel_blocks): Initialize it.
(gfc_resolve_do_iterator): Update for OpenACC.
(gfc_resolve_omp_directive): Call
resolve_omp_directive_inside_oacc_region.
(OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
(OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
(OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
(OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
(OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
(OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
(OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
(OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
(OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
(OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
(OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
(OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
(OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
(OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
(OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
(OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
(OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
(OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
(OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
(OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
(OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
(OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
(gfc_match_omp_clauses): Handle those.
(OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
(OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
(OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
(OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
(OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
(OACC_WAIT_CLAUSES): New macros.
(gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
(gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
(gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
(gfc_match_oacc_kernels, gfc_match_oacc_data)
(gfc_match_oacc_host_data, gfc_match_oacc_loop)
(gfc_match_oacc_declare, gfc_match_oacc_update)
(gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
(gfc_match_oacc_wait, gfc_match_oacc_cache)
(gfc_match_oacc_routine, oacc_is_loop)
(resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
(check_symbol_not_pointer, check_array_not_assumed)
(resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
(oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
(omp_code_to_statement, oacc_code_to_statement)
(resolve_oacc_directive_inside_omp_region)
(resolve_omp_directive_inside_oacc_region)
(resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
(resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
(resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
(gfc_resolve_oacc_directive): New functions.
* parse.c (next_free): Update for OpenACC. Move some code into...
(verify_token_free): ... this new function.
(next_fixed): Update for OpenACC. Move some code into...
(verify_token_fixed): ... this new function.
(case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
(case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
ST_OACC_KERNELS_LOOP.
(case_decl): Add ST_OACC_ROUTINE.
(push_state, parse_critical_block, parse_progunit): Update for
OpenACC.
(gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
ST_OACC_ROUTINE.
(verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
(parse_executable): Handle ST_OACC_PARALLEL_LOOP,
ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
(decode_oacc_directive, parse_oacc_structured_block)
(parse_oacc_loop, is_oacc): New functions.
* parse.h (struct gfc_state_data): Add oacc_declare_clauses
member.
(is_oacc): New prototype.
* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
EXEC_OACC_EXIT_DATA.
(resolve_codes): Call gfc_resolve_oacc_declare.
* scanner.c (openacc_flag, openacc_locus): New variables.
(skip_free_comments): Update for OpenACC. Move some code into...
(skip_omp_attribute): ... this new function.
(skip_oacc_attribute): New function.
(skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
* st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
* trans-decl.c (gfc_generate_function_code): Update for OpenACC.
* trans-openmp.c: Include "gomp-constants.h".
(gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
(gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
independent, wait_list, num_gangs_expr, num_workers_expr,
vector_length_expr, vector, vector_expr, worker, worker_expr,
gang, gang_expr members.
(gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
(gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
(gfc_trans_oacc_executable_directive)
(gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
(gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
* trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
* trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
New prototypes.
* trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
EXEC_OACC_EXIT_DATA.
* gfortran.texi: Update for OpenACC.
* intrinsic.texi: Likewise.
* invoke.texi: Likewise.
gcc/lto/
* lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
New macros.
* lto.c: Include "gomp-constants.h".
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_fopenacc): New
procedure.
* g++.dg/goacc-gomp/goacc-gomp.exp: New file.
* g++.dg/goacc/goacc.exp: Likewise.
* gcc.dg/goacc-gomp/goacc-gomp.exp: Likewise.
* gcc.dg/goacc/goacc.exp: Likewise.
* gfortran.dg/goacc/goacc.exp: Likewise.
* c-c++-common/cpp/openacc-define-1.c: New file.
* c-c++-common/cpp/openacc-define-2.c: Likewise.
* c-c++-common/cpp/openacc-define-3.c: Likewise.
* c-c++-common/goacc-gomp/nesting-1.c: Likewise.
* c-c++-common/goacc-gomp/nesting-fail-1.c: Likewise.
* c-c++-common/goacc/acc_on_device-2-off.c: Likewise.
* c-c++-common/goacc/acc_on_device-2.c: Likewise.
* c-c++-common/goacc/asyncwait-1.c: Likewise.
* c-c++-common/goacc/cache-1.c: Likewise.
* c-c++-common/goacc/clauses-fail.c: Likewise.
* c-c++-common/goacc/collapse-1.c: Likewise.
* c-c++-common/goacc/data-1.c: Likewise.
* c-c++-common/goacc/data-2.c: Likewise.
* c-c++-common/goacc/data-clause-duplicate-1.c: Likewise.
* c-c++-common/goacc/deviceptr-1.c: Likewise.
* c-c++-common/goacc/deviceptr-2.c: Likewise.
* c-c++-common/goacc/deviceptr-3.c: Likewise.
* c-c++-common/goacc/if-clause-1.c: Likewise.
* c-c++-common/goacc/if-clause-2.c: Likewise.
* c-c++-common/goacc/kernels-1.c: Likewise.
* c-c++-common/goacc/loop-1.c: Likewise.
* c-c++-common/goacc/loop-private-1.c: Likewise.
* c-c++-common/goacc/nesting-1.c: Likewise.
* c-c++-common/goacc/nesting-data-1.c: Likewise.
* c-c++-common/goacc/nesting-fail-1.c: Likewise.
* c-c++-common/goacc/parallel-1.c: Likewise.
* c-c++-common/goacc/pcopy.c: Likewise.
* c-c++-common/goacc/pcopyin.c: Likewise.
* c-c++-common/goacc/pcopyout.c: Likewise.
* c-c++-common/goacc/pcreate.c: Likewise.
* c-c++-common/goacc/pragma_context.c: Likewise.
* c-c++-common/goacc/present-1.c: Likewise.
* c-c++-common/goacc/reduction-1.c: Likewise.
* c-c++-common/goacc/reduction-2.c: Likewise.
* c-c++-common/goacc/reduction-3.c: Likewise.
* c-c++-common/goacc/reduction-4.c: Likewise.
* c-c++-common/goacc/sb-1.c: Likewise.
* c-c++-common/goacc/sb-2.c: Likewise.
* c-c++-common/goacc/sb-3.c: Likewise.
* c-c++-common/goacc/update-1.c: Likewise.
* gcc.dg/goacc/acc_on_device-1.c: Likewise.
* gfortran.dg/goacc/acc_on_device-1.f95: Likewise.
* gfortran.dg/goacc/acc_on_device-2-off.f95: Likewise.
* gfortran.dg/goacc/acc_on_device-2.f95: Likewise.
* gfortran.dg/goacc/assumed.f95: Likewise.
* gfortran.dg/goacc/asyncwait-1.f95: Likewise.
* gfortran.dg/goacc/asyncwait-2.f95: Likewise.
* gfortran.dg/goacc/asyncwait-3.f95: Likewise.
* gfortran.dg/goacc/asyncwait-4.f95: Likewise.
* gfortran.dg/goacc/branch.f95: Likewise.
* gfortran.dg/goacc/cache-1.f95: Likewise.
* gfortran.dg/goacc/coarray.f95: Likewise.
* gfortran.dg/goacc/continuation-free-form.f95: Likewise.
* gfortran.dg/goacc/cray.f95: Likewise.
* gfortran.dg/goacc/critical.f95: Likewise.
* gfortran.dg/goacc/data-clauses.f95: Likewise.
* gfortran.dg/goacc/data-tree.f95: Likewise.
* gfortran.dg/goacc/declare-1.f95: Likewise.
* gfortran.dg/goacc/enter-exit-data.f95: Likewise.
* gfortran.dg/goacc/fixed-1.f: Likewise.
* gfortran.dg/goacc/fixed-2.f: Likewise.
* gfortran.dg/goacc/fixed-3.f: Likewise.
* gfortran.dg/goacc/fixed-4.f: Likewise.
* gfortran.dg/goacc/host_data-tree.f95: Likewise.
* gfortran.dg/goacc/if.f95: Likewise.
* gfortran.dg/goacc/kernels-tree.f95: Likewise.
* gfortran.dg/goacc/list.f95: Likewise.
* gfortran.dg/goacc/literal.f95: Likewise.
* gfortran.dg/goacc/loop-1.f95: Likewise.
* gfortran.dg/goacc/loop-2.f95: Likewise.
* gfortran.dg/goacc/loop-3.f95: Likewise.
* gfortran.dg/goacc/loop-tree-1.f90: Likewise.
* gfortran.dg/goacc/omp.f95: Likewise.
* gfortran.dg/goacc/parallel-kernels-clauses.f95: Likewise.
* gfortran.dg/goacc/parallel-kernels-regions.f95: Likewise.
* gfortran.dg/goacc/parallel-tree.f95: Likewise.
* gfortran.dg/goacc/parameter.f95: Likewise.
* gfortran.dg/goacc/private-1.f95: Likewise.
* gfortran.dg/goacc/private-2.f95: Likewise.
* gfortran.dg/goacc/private-3.f95: Likewise.
* gfortran.dg/goacc/pure-elemental-procedures.f95: Likewise.
* gfortran.dg/goacc/reduction-2.f95: Likewise.
* gfortran.dg/goacc/reduction.f95: Likewise.
* gfortran.dg/goacc/routine-1.f90: Likewise.
* gfortran.dg/goacc/routine-2.f90: Likewise.
* gfortran.dg/goacc/sentinel-free-form.f95: Likewise.
* gfortran.dg/goacc/several-directives.f95: Likewise.
* gfortran.dg/goacc/sie.f95: Likewise.
* gfortran.dg/goacc/subarrays.f95: Likewise.
* gfortran.dg/gomp/map-1.f90: Likewise.
* gfortran.dg/openacc-define-1.f90: Likewise.
* gfortran.dg/openacc-define-2.f90: Likewise.
* gfortran.dg/openacc-define-3.f90: Likewise.
* g++.dg/gomp/block-1.C: Update for changed compiler output.
* g++.dg/gomp/block-2.C: Likewise.
* g++.dg/gomp/block-3.C: Likewise.
* g++.dg/gomp/block-5.C: Likewise.
* g++.dg/gomp/target-1.C: Likewise.
* g++.dg/gomp/target-2.C: Likewise.
* g++.dg/gomp/taskgroup-1.C: Likewise.
* g++.dg/gomp/teams-1.C: Likewise.
* gcc.dg/cilk-plus/jump-openmp.c: Likewise.
* gcc.dg/cilk-plus/jump.c: Likewise.
* gcc.dg/gomp/block-1.c: Likewise.
* gcc.dg/gomp/block-10.c: Likewise.
* gcc.dg/gomp/block-2.c: Likewise.
* gcc.dg/gomp/block-3.c: Likewise.
* gcc.dg/gomp/block-4.c: Likewise.
* gcc.dg/gomp/block-5.c: Likewise.
* gcc.dg/gomp/block-6.c: Likewise.
* gcc.dg/gomp/block-7.c: Likewise.
* gcc.dg/gomp/block-8.c: Likewise.
* gcc.dg/gomp/block-9.c: Likewise.
* gcc.dg/gomp/target-1.c: Likewise.
* gcc.dg/gomp/target-2.c: Likewise.
* gcc.dg/gomp/taskgroup-1.c: Likewise.
* gcc.dg/gomp/teams-1.c: Likewise.
include/
* gomp-constants.h: New file.
libgomp/
* Makefile.am (search_path): Add $(top_srcdir)/../include.
(libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
oacc-async.c, oacc-plugin.c, oacc-cuda.c.
[USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
Include $(top_srcdir)/plugin/Makefrag.am.
(nodist_libsubinclude_HEADERS): Add openacc.h.
[USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
openacc.f90, openacc.mod, openacc_kinds.mod.
(omp_lib.mod): Generalize into...
(%.mod): ... this new rule.
(openacc_kinds.mod, openacc.mod): New rules.
* plugin/configfrag.ac: New file.
* configure.ac: Move plugin/offloading support into it. Include
it. Instantiate testsuite/libgomp-test-support.pt.exp.
* plugin/Makefrag.am: New file.
* testsuite/Makefile.am (OFFLOAD_TARGETS)
(OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
export.
(libgomp-test-support.exp): New rule.
(all-local): Depend on it.
* Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
* config.h.in: Likewise.
* configure: Likewise.
* configure.tgt: Harden shell syntax.
* env.c: Include "oacc-int.h".
(parse_acc_device_type): New function.
(gomp_debug_var, goacc_device_type, goacc_device_num): New
variables.
(initialize_env): Initialize those. Call
goacc_runtime_initialize.
* error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
(gomp_fatal): Call gomp_vfatal.
* libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
(gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
(gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
(splay_tree_node, splay_tree, splay_tree_key)
(struct target_mem_desc, struct splay_tree_key_s)
(struct gomp_memory_mapping, struct acc_dispatch_t)
(struct gomp_device_descr, gomp_acc_insert_pointer)
(gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
(gomp_unmap_vars, gomp_init_device, gomp_init_tables)
(gomp_free_memmap, gomp_fini_device): New declarations.
(gomp_vdebug, gomp_debug): New macros.
Include "splay-tree.h".
* libgomp.map (OACC_2.0): New symbol version. Use for
acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
acc_set_device_type_h_, acc_get_device_type,
acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
acc_get_device_num, acc_get_device_num_h_, acc_async_test,
acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
acc_copyin_array_h_, acc_present_or_copyin,
acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
acc_present_or_create_32_h_, acc_present_or_create_64_h_,
acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
acc_update_device, acc_update_device_32_h_,
acc_update_device_64_h_, acc_update_device_array_h_,
acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
acc_update_self_array_h_, acc_map_data, acc_unmap_data,
acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
acc_is_present_64_h_, acc_is_present_array_h_,
acc_memcpy_to_device, acc_memcpy_from_device,
acc_get_current_cuda_device, acc_get_current_cuda_context,
acc_get_cuda_stream, acc_set_cuda_stream.
(GOACC_2.0): New symbol version. Use for GOACC_data_end,
GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
GOACC_update, GOACC_wait, GOACC_get_thread_num,
GOACC_get_num_threads.
(GOMP_PLUGIN_1.0): New symbol version. Use for
GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
GOMP_PLUGIN_acc_thread.
* libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
environment variable.
* libgomp_g.h (GOACC_data_start, GOACC_data_end)
(GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
(GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
* splay-tree.h (splay_tree_lookup, splay_tree_insert)
(splay_tree_remove): New declarations.
(rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
(splay_tree_remove, splay_tree_lookup): Move into...
* splay-tree.c: ... this new file.
* target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
(splay_tree_node, splay_tree, splay_tree_key)
(struct target_mem_desc, struct splay_tree_key_s)
(struct gomp_device_descr): Don't declare.
(num_devices_openmp): New variable.
(gomp_get_num_devices ): Use it.
(gomp_init_targets_once): New function.
(gomp_get_num_devices ): Use it.
(get_kind, gomp_copy_from_async, gomp_free_memmap)
(gomp_fini_device, gomp_register_image_for_device): New functions.
(gomp_map_vars): Add devaddrs parameter.
(gomp_update): Add mm parameter.
(gomp_init_device): Move most of it into...
(gomp_init_tables): ... this new function.
(gomp_register_images_for_device): Remove function.
(splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
Make them hidden instead of static.
(gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
(gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
(GOMP_target_end_data, GOMP_target_update)
(gomp_load_plugin_for_device, gomp_target_init): Update for
OpenACC changes.
* oacc-async.c: New file.
* oacc-cuda.c: Likewise.
* oacc-host.c: Likewise.
* oacc-init.c: Likewise.
* oacc-int.h: Likewise.
* oacc-mem.c: Likewise.
* oacc-parallel.c: Likewise.
* oacc-plugin.c: Likewise.
* oacc-plugin.h: Likewise.
* oacc-ptx.h: Likewise.
* openacc.f90: Likewise.
* openacc.h: Likewise.
* openacc_lib.h: Likewise.
* plugin/plugin-host.c: Likewise.
* plugin/plugin-nvptx.c: Likewise.
* libgomp-plugin.c: Likewise.
* libgomp-plugin.h: Likewise.
* libgomp_target.h: Remove file after merging content into the
former file. Update all users.
* testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
(offload_targets_s, offload_targets_s_openacc): New variables.
(check_effective_target_openacc_nvidia_accel_present)
(check_effective_target_openacc_nvidia_accel_selected): New
procedures.
(libgomp_init): Update for OpenACC changes.
* testsuite/libgomp-test-support.exp.in: New file.
* testsuite/libgomp.oacc-c++/c++.exp: Likewise.
* testsuite/libgomp.oacc-c/c.exp: Likewise.
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
* testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
* testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
* testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
* testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
* testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_name)
(GOMP_OFFLOAD_get_caps, GOMP_OFFLOAD_fini_device): New functions.
Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: Dmitry Bocharnikov <dmitry.b@samsung.com>
Co-Authored-By: Evgeny Gavrin <e.gavrin@samsung.com>
Co-Authored-By: Ilmir Usmanov <i.usmanov@samsung.com>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
Co-Authored-By: James Norris <jnorris@codesourcery.com>
Co-Authored-By: Julian Brown <julian@codesourcery.com>
Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r219682
2015-01-15 21:11:12 +01:00
|
|
|
|
2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
James Norris <jnorris@codesourcery.com>
|
|
|
|
|
Tom de Vries <tom@codesourcery.com>
|
|
|
|
|
Julian Brown <julian@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (search_path): Add $(top_srcdir)/../include.
|
|
|
|
|
(libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
|
|
|
|
|
oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
|
|
|
|
|
oacc-async.c, oacc-plugin.c, oacc-cuda.c.
|
|
|
|
|
[USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
|
|
|
|
|
Include $(top_srcdir)/plugin/Makefrag.am.
|
|
|
|
|
(nodist_libsubinclude_HEADERS): Add openacc.h.
|
|
|
|
|
[USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
|
|
|
|
|
openacc.f90, openacc.mod, openacc_kinds.mod.
|
|
|
|
|
(omp_lib.mod): Generalize into...
|
|
|
|
|
(%.mod): ... this new rule.
|
|
|
|
|
(openacc_kinds.mod, openacc.mod): New rules.
|
|
|
|
|
* plugin/configfrag.ac: New file.
|
|
|
|
|
* configure.ac: Move plugin/offloading support into it. Include
|
|
|
|
|
it. Instantiate testsuite/libgomp-test-support.pt.exp.
|
|
|
|
|
* plugin/Makefrag.am: New file.
|
|
|
|
|
* testsuite/Makefile.am (OFFLOAD_TARGETS)
|
|
|
|
|
(OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
|
|
|
|
|
export.
|
|
|
|
|
(libgomp-test-support.exp): New rule.
|
|
|
|
|
(all-local): Depend on it.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* configure.tgt: Harden shell syntax.
|
|
|
|
|
* env.c: Include "oacc-int.h".
|
|
|
|
|
(parse_acc_device_type): New function.
|
|
|
|
|
(gomp_debug_var, goacc_device_type, goacc_device_num): New
|
|
|
|
|
variables.
|
|
|
|
|
(initialize_env): Initialize those. Call
|
|
|
|
|
goacc_runtime_initialize.
|
|
|
|
|
* error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
|
|
|
|
|
(gomp_fatal): Call gomp_vfatal.
|
|
|
|
|
* libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
|
|
|
|
|
(gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
|
|
|
|
|
(gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
|
|
|
|
|
(splay_tree_node, splay_tree, splay_tree_key)
|
|
|
|
|
(struct target_mem_desc, struct splay_tree_key_s)
|
|
|
|
|
(struct gomp_memory_mapping, struct acc_dispatch_t)
|
|
|
|
|
(struct gomp_device_descr, gomp_acc_insert_pointer)
|
|
|
|
|
(gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
|
|
|
|
|
(gomp_unmap_vars, gomp_init_device, gomp_init_tables)
|
|
|
|
|
(gomp_free_memmap, gomp_fini_device): New declarations.
|
|
|
|
|
(gomp_vdebug, gomp_debug): New macros.
|
|
|
|
|
Include "splay-tree.h".
|
|
|
|
|
* libgomp.map (OACC_2.0): New symbol version. Use for
|
|
|
|
|
acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
|
|
|
|
|
acc_set_device_type_h_, acc_get_device_type,
|
|
|
|
|
acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
|
|
|
|
|
acc_get_device_num, acc_get_device_num_h_, acc_async_test,
|
|
|
|
|
acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
|
|
|
|
|
acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
|
|
|
|
|
acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
|
|
|
|
|
acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
|
|
|
|
|
acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
|
|
|
|
|
acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
|
|
|
|
|
acc_copyin_array_h_, acc_present_or_copyin,
|
|
|
|
|
acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
|
|
|
|
|
acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
|
|
|
|
|
acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
|
|
|
|
|
acc_present_or_create_32_h_, acc_present_or_create_64_h_,
|
|
|
|
|
acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
|
|
|
|
|
acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
|
|
|
|
|
acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
|
|
|
|
|
acc_update_device, acc_update_device_32_h_,
|
|
|
|
|
acc_update_device_64_h_, acc_update_device_array_h_,
|
|
|
|
|
acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
|
|
|
|
|
acc_update_self_array_h_, acc_map_data, acc_unmap_data,
|
|
|
|
|
acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
|
|
|
|
|
acc_is_present_64_h_, acc_is_present_array_h_,
|
|
|
|
|
acc_memcpy_to_device, acc_memcpy_from_device,
|
|
|
|
|
acc_get_current_cuda_device, acc_get_current_cuda_context,
|
|
|
|
|
acc_get_cuda_stream, acc_set_cuda_stream.
|
|
|
|
|
(GOACC_2.0): New symbol version. Use for GOACC_data_end,
|
|
|
|
|
GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
|
|
|
|
|
GOACC_update, GOACC_wait, GOACC_get_thread_num,
|
|
|
|
|
GOACC_get_num_threads.
|
|
|
|
|
(GOMP_PLUGIN_1.0): New symbol version. Use for
|
|
|
|
|
GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
|
|
|
|
|
GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
|
|
|
|
|
GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
|
|
|
|
|
GOMP_PLUGIN_acc_thread.
|
|
|
|
|
* libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
|
|
|
|
|
environment variable.
|
|
|
|
|
* libgomp_g.h (GOACC_data_start, GOACC_data_end)
|
|
|
|
|
(GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
|
|
|
|
|
(GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
|
|
|
|
|
* splay-tree.h (splay_tree_lookup, splay_tree_insert)
|
|
|
|
|
(splay_tree_remove): New declarations.
|
|
|
|
|
(rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
|
|
|
|
|
(splay_tree_remove, splay_tree_lookup): Move into...
|
|
|
|
|
* splay-tree.c: ... this new file.
|
|
|
|
|
* target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
|
|
|
|
|
(splay_tree_node, splay_tree, splay_tree_key)
|
|
|
|
|
(struct target_mem_desc, struct splay_tree_key_s)
|
|
|
|
|
(struct gomp_device_descr): Don't declare.
|
|
|
|
|
(num_devices_openmp): New variable.
|
|
|
|
|
(gomp_get_num_devices ): Use it.
|
|
|
|
|
(gomp_init_targets_once): New function.
|
|
|
|
|
(gomp_get_num_devices ): Use it.
|
|
|
|
|
(get_kind, gomp_copy_from_async, gomp_free_memmap)
|
|
|
|
|
(gomp_fini_device, gomp_register_image_for_device): New functions.
|
|
|
|
|
(gomp_map_vars): Add devaddrs parameter.
|
|
|
|
|
(gomp_update): Add mm parameter.
|
|
|
|
|
(gomp_init_device): Move most of it into...
|
|
|
|
|
(gomp_init_tables): ... this new function.
|
|
|
|
|
(gomp_register_images_for_device): Remove function.
|
|
|
|
|
(splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
|
|
|
|
|
Make them hidden instead of static.
|
|
|
|
|
(gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
|
|
|
|
|
(gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
|
|
|
|
|
(GOMP_target_end_data, GOMP_target_update)
|
|
|
|
|
(gomp_load_plugin_for_device, gomp_target_init): Update for
|
|
|
|
|
OpenACC changes.
|
|
|
|
|
* oacc-async.c: New file.
|
|
|
|
|
* oacc-cuda.c: Likewise.
|
|
|
|
|
* oacc-host.c: Likewise.
|
|
|
|
|
* oacc-init.c: Likewise.
|
|
|
|
|
* oacc-int.h: Likewise.
|
|
|
|
|
* oacc-mem.c: Likewise.
|
|
|
|
|
* oacc-parallel.c: Likewise.
|
|
|
|
|
* oacc-plugin.c: Likewise.
|
|
|
|
|
* oacc-plugin.h: Likewise.
|
|
|
|
|
* oacc-ptx.h: Likewise.
|
|
|
|
|
* openacc.f90: Likewise.
|
|
|
|
|
* openacc.h: Likewise.
|
|
|
|
|
* openacc_lib.h: Likewise.
|
|
|
|
|
* plugin/plugin-host.c: Likewise.
|
|
|
|
|
* plugin/plugin-nvptx.c: Likewise.
|
|
|
|
|
* libgomp-plugin.c: Likewise.
|
|
|
|
|
* libgomp-plugin.h: Likewise.
|
|
|
|
|
* libgomp_target.h: Remove file after merging content into the
|
|
|
|
|
former file. Update all users.
|
|
|
|
|
* testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
|
|
|
|
|
(offload_targets_s, offload_targets_s_openacc): New variables.
|
|
|
|
|
(check_effective_target_openacc_nvidia_accel_present)
|
|
|
|
|
(check_effective_target_openacc_nvidia_accel_selected): New
|
|
|
|
|
procedures.
|
|
|
|
|
(libgomp_init): Update for OpenACC changes.
|
|
|
|
|
* testsuite/libgomp-test-support.exp.in: New file.
|
|
|
|
|
* testsuite/libgomp.oacc-c++/c++.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c/c.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
|
|
|
|
|
Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
|
|
|
|
|
|
2015-01-10 20:10:37 +01:00
|
|
|
|
2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Julian Brown <julian@codesourcery.com>
|
|
|
|
|
David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
|
|
|
|
|
to "GNU Offloading and Multi Processing Runtime Library". Change
|
|
|
|
|
all users.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* libgomp.texi: Update.
|
|
|
|
|
|
2015-01-08 17:01:24 +01:00
|
|
|
|
2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2015-01-08 17:01:37 +01:00
|
|
|
|
* configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
|
|
|
|
|
"$tgt_dir/lib32".
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2015-01-08 17:01:24 +01:00
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Correctly match
|
|
|
|
|
"intelmic" in $offload_targets.
|
|
|
|
|
|
2015-01-05 13:05:46 +01:00
|
|
|
|
2015-01-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2015-01-05 13:33:28 +01:00
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2015-01-05 13:05:46 +01:00
|
|
|
|
* libgomp.texi: Bump @copying's copyright year.
|
|
|
|
|
|
2014-12-12 11:31:44 +01:00
|
|
|
|
2014-12-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Load target-utils.exp.
|
|
|
|
|
Move load of target-supportes.exp earlier.
|
|
|
|
|
|
2014-12-10 21:52:10 +01:00
|
|
|
|
2014-12-10 Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-9.c: New test.
|
|
|
|
|
|
2014-12-10 14:42:20 +01:00
|
|
|
|
2014-12-09 Varvara Rainchik <varvara.rainchik@intel.com>
|
|
|
|
|
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Add GCC_CHECK_EMUTLS.
|
|
|
|
|
* libgomp.h: Add check for USE_EMUTLS: this case
|
|
|
|
|
is equal to HAVE_TLS.
|
|
|
|
|
* team.c: Likewise.
|
|
|
|
|
|
2014-12-03 14:58:07 +01:00
|
|
|
|
2014-12-03 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
|
|
|
|
|
|
2014-11-28 14:59:49 +01:00
|
|
|
|
2014-11-28 Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/target-critical-1.c: New test.
|
|
|
|
|
|
2014-11-26 20:36:36 +01:00
|
|
|
|
2014-11-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
|
2014-12-03 14:58:07 +01:00
|
|
|
|
to dg-options unless expensive testing is on.
|
2014-11-26 20:36:36 +01:00
|
|
|
|
(TESTITERS): Define to N if not defined.
|
|
|
|
|
(main): Use TESTITERS instead of N.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
|
|
|
|
|
dg-additional-options depending on whether expensive testing is on.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
|
|
|
|
|
Decrease N to 100000 and CHUNKSZ to 10000.
|
|
|
|
|
|
2014-11-25 00:08:26 +01:00
|
|
|
|
2014-11-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/63938
|
2014-11-26 20:36:36 +01:00
|
|
|
|
* testsuite/libgomp.fortran/pr63938-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr63938-2.f90: New test.
|
2014-11-25 00:08:26 +01:00
|
|
|
|
|
2014-11-22 00:25:51 +01:00
|
|
|
|
2014-11-21 Steve Ellcey <sellcey@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/mips/futex.h (SYS_futex): Define if not already done.
|
|
|
|
|
|
2014-11-21 17:49:17 +01:00
|
|
|
|
2014-11-21 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/63784
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2014-11-19 11:30:29 +01:00
|
|
|
|
2014-11-19 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.5.c: Require
|
|
|
|
|
vect_simd_clones effective target.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
|
|
|
|
|
|
2014-11-14 18:19:55 +01:00
|
|
|
|
2014-11-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
|
|
|
|
|
of 32 as block_size.
|
|
|
|
|
* libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
|
|
|
|
|
instead of 32 as block_size.
|
|
|
|
|
|
2014-11-13 15:07:09 +01:00
|
|
|
|
2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Set up offload_additional_options,
|
|
|
|
|
offload_additional_lib_paths and offload_targets.
|
|
|
|
|
* testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
|
|
|
|
|
OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Append
|
|
|
|
|
offload_additional_lib_paths to LD_LIBRARY_PATH. Append
|
|
|
|
|
offload_additional_options to ALWAYS_CFLAGS. Append liboffloadmic
|
|
|
|
|
build directory to LD_LIBRARY_PATH for intelmic offload targets.
|
|
|
|
|
|
2014-11-13 14:56:22 +01:00
|
|
|
|
2014-11-13 Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
Kirill Yukhin <kirill.yukhin@intel.com>
|
|
|
|
|
Ilya Tocar <ilya.tocar@intel.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp
|
|
|
|
|
(check_effective_target_offload_device): New.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
|
|
|
|
|
* testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/target-7.c: Fix test.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
|
|
|
|
|
* testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
|
|
|
|
|
|
[PATCH 5/7] OpenMP 4.0 offloading infrastructure: libgomp.
libgomp/
* libgomp.map (GOMP_4.0.1): New symbol version.
Add GOMP_offload_register.
* libgomp_target.h: New file.
* splay-tree.h: New file.
* target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
(gomp_target_init): New forward declaration.
(gomp_is_initialized): New static variable.
(splay_tree_node, splay_tree, splay_tree_key): New typedefs.
(struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
New structures.
(offload_images, num_offload_images, devices, num_devices): New static
variables.
(splay_compare): New static function.
(struct gomp_device_descr): New structure.
(gomp_get_num_devices): Call gomp_target_init.
(resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
(gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
(GOMP_offload_register): New function.
(GOMP_target): Arrange for host callback to be performed in a separate
initial thread and contention group, inheriting ICVs from
gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars.
Add device initialization and lookup for target function in splay tree.
(GOMP_target_data): Add device initialization and call gomp_map_vars.
(GOMP_target_end_data): Call gomp_unmap_vars.
(GOMP_target_update): Add device initialization and call gomp_update.
(gomp_load_plugin_for_device, gomp_register_images_for_device)
(gomp_target_init): New static functions.
Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
From-SVN: r217492
2014-11-13 14:49:47 +01:00
|
|
|
|
2014-11-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.map (GOMP_4.0.1): New symbol version.
|
|
|
|
|
Add GOMP_offload_register.
|
|
|
|
|
* libgomp_target.h: New file.
|
|
|
|
|
* splay-tree.h: New file.
|
|
|
|
|
* target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
|
|
|
|
|
(gomp_target_init): New forward declaration.
|
|
|
|
|
(gomp_is_initialized): New static variable.
|
|
|
|
|
(splay_tree_node, splay_tree, splay_tree_key): New typedefs.
|
|
|
|
|
(struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
|
|
|
|
|
New structures.
|
|
|
|
|
(offload_images, num_offload_images, devices, num_devices): New static
|
|
|
|
|
variables.
|
|
|
|
|
(splay_compare): New static function.
|
|
|
|
|
(struct gomp_device_descr): New structure.
|
|
|
|
|
(gomp_get_num_devices): Call gomp_target_init.
|
|
|
|
|
(resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
|
|
|
|
|
(gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
|
|
|
|
|
(GOMP_offload_register): New function.
|
|
|
|
|
(GOMP_target): Arrange for host callback to be performed in a separate
|
|
|
|
|
initial thread and contention group, inheriting ICVs from
|
|
|
|
|
gomp_global_icv etc. Call gomp_map_vars and gomp_unmap_vars.
|
|
|
|
|
Add device initialization and lookup for target function in splay tree.
|
|
|
|
|
(GOMP_target_data): Add device initialization and call gomp_map_vars.
|
|
|
|
|
(GOMP_target_end_data): Call gomp_unmap_vars.
|
|
|
|
|
(GOMP_target_update): Add device initialization and call gomp_update.
|
|
|
|
|
(gomp_load_plugin_for_device, gomp_register_images_for_device)
|
|
|
|
|
(gomp_target_init): New static functions.
|
|
|
|
|
|
[PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make
* configure: Regenerate.
* configure.ac (--enable-as-accelerator-for)
(--enable-offload-targets): New configure options.
gcc/
* Makefile.in (real_target_noncanonical, accel_dir_suffix)
(enable_as_accelerator): New variables substituted by configure.
(libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
being configured as an offload compiler.
(DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
ACCEL_DIR_SUFFIX.
(install-cpp, install-common, install_driver, install-gcc-ar): Do not
install for the offload compiler.
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac (real_target_noncanonical, accel_dir_suffix)
(enable_as_accelerator): Compute new variables.
(ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
(OFFLOAD_TARGETS): List of target names suitable for offloading.
(ENABLE_OFFLOADING): Define if list of offload targets is not empty.
gcc/cp/
* Make-lang.in (c++.install-common): Do not install for the offload
compiler.
gcc/doc/
* install.texi (Options specification): Document
--enable-as-accelerator-for and --enable-offload-targets.
gcc/fortran/
* Make-lang.in (fortran.install-common): Do not install for the offload
compiler.
libgcc/
* Makefile.in (crtoffloadbegin$(objext)): New rule.
(crtoffloadend$(objext)): Likewise.
* configure: Regenerate.
* configure.ac (accel_dir_suffix): Compute new variable.
(extra_parts): Add crtoffloadbegin.o and crtoffloadend.o
if enable_offload_targets is not empty.
* offloadstuff.c: New file.
libgomp/
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for libdl, required for plugin support.
(PLUGIN_SUPPORT): Define if plugins are supported.
(enable_offload_targets): Support Intel MIC targets.
(OFFLOAD_TARGETS): List of target names suitable for offloading.
lto-plugin/
* Makefile.am (libexecsubdir): Tweak for the possibility of being
configured for offload compiler.
(accel_dir_suffix, real_target_noncanonical): New variables substituted
by configure.
* Makefile.in: Regenerate.
* configure: Regenerate.
* configure.ac (accel_dir_suffix, real_target_noncanonical): Compute new
variables.
Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
From-SVN: r217485
2014-11-13 14:28:56 +01:00
|
|
|
|
2014-11-13 Bernd Schmidt <bernds@codesourcery.com>
|
|
|
|
|
Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Ilya Verbin <ilya.verbin@intel.com>
|
|
|
|
|
Andrey Turetskiy <andrey.turetskiy@intel.com>
|
|
|
|
|
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* configure.ac: Check for libdl, required for plugin support.
|
|
|
|
|
(PLUGIN_SUPPORT): Define if plugins are supported.
|
|
|
|
|
(enable_offload_targets): Support Intel MIC targets.
|
|
|
|
|
(OFFLOAD_TARGETS): List of target names suitable for offloading.
|
|
|
|
|
|
2014-11-11 21:25:18 +01:00
|
|
|
|
2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/63610
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2014-11-05 10:52:42 +01:00
|
|
|
|
2014-11-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
|
|
|
|
|
|
2014-10-06 13:54:24 +02:00
|
|
|
|
2014-10-06 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
|
|
|
|
|
* testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
|
|
|
|
|
* testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
|
|
|
|
|
* testsuite/libgomp.c/thread-limit-2.c: Likewise.
|
|
|
|
|
|
2014-10-06 12:20:45 +02:00
|
|
|
|
2014-10-06 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
|
|
|
|
|
* testsuite/libgomp.c/nqueens-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr36802-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr36802-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/thread-limit-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/thread-limit-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
|
|
|
|
|
* testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
|
|
|
|
|
* testsuite/libgomp.c/omp-parallel-for.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/omp-parallel-if.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/omp-single-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/omp-single-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/omp_matvec.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/omp_workshare3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/omp_workshare4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/shared-1.c: Fix defaulting to int. Fix implicit
|
|
|
|
|
declarations.
|
|
|
|
|
|
2014-10-03 09:29:42 +02:00
|
|
|
|
2014-10-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/61200
|
|
|
|
|
* testsuite/libgomp.c/pr61200.c: New test.
|
|
|
|
|
|
2014-09-18 18:43:28 +02:00
|
|
|
|
2014-09-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/63248
|
|
|
|
|
* testsuite/libgomp.c++/pr63248.C: New test.
|
|
|
|
|
|
2014-08-04 17:45:50 +02:00
|
|
|
|
2014-08-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* task.c (GOMP_taskgroup_end): If taskgroup->num_children
|
|
|
|
|
is not zero, but taskgroup->children is NULL and there are
|
|
|
|
|
any task->children, schedule those instead of waiting.
|
|
|
|
|
* testsuite/libgomp.c/depend-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/depend-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/depend-8.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/depend-9.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/depend-10.c: New test.
|
|
|
|
|
|
2014-08-01 10:05:13 +02:00
|
|
|
|
2014-08-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
|
|
|
|
|
(struct gomp_taskwait): New type.
|
|
|
|
|
(struct gomp_task): Add taskwait and parent_depends_on, remove
|
|
|
|
|
in_taskwait and taskwait_sem fields.
|
|
|
|
|
(gomp_finish_task): Don't destroy taskwait_sem.
|
|
|
|
|
* task.c (gomp_init_task): Don't init in_taskwait, instead init
|
|
|
|
|
taskwait and parent_depends_on.
|
|
|
|
|
(GOMP_task): For if (0) tasks with depend clause that depend on
|
|
|
|
|
earlier tasks don't defer them, instead call
|
|
|
|
|
gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
|
|
|
|
|
Initialize redundant_out field, for redundant out entries just
|
|
|
|
|
move them at the end of linked list instead of removing them
|
|
|
|
|
completely, and set redundant_out flag instead of redundant.
|
|
|
|
|
(gomp_task_run_pre): Update last_parent_depends_on if scheduling
|
|
|
|
|
that task.
|
|
|
|
|
(gomp_task_run_post_handle_dependers): If parent is in
|
|
|
|
|
gomp_task_maybe_wait_for_dependencies and newly runnable task
|
|
|
|
|
is not parent_depends_on, queue it in parent->children linked
|
|
|
|
|
list after all runnable tasks with parent_depends_on set.
|
|
|
|
|
Adjust for addition of taskwait indirection.
|
|
|
|
|
(gomp_task_run_post_remove_parent): If parent is in
|
|
|
|
|
gomp_task_maybe_wait_for_dependencies and task to be removed
|
|
|
|
|
is parent_depends_on, decrement n_depend and if needed awake
|
|
|
|
|
parent. Adjust for addition of taskwait indirection.
|
|
|
|
|
(GOMP_taskwait): Adjust for addition of taskwait indirection.
|
|
|
|
|
(gomp_task_maybe_wait_for_dependencies): New function.
|
|
|
|
|
* testsuite/libgomp.c/depend-5.c: New test.
|
|
|
|
|
|
2014-07-13 08:40:16 +02:00
|
|
|
|
2014-07-13 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/pr34020.f90: Make compile
|
2014-08-01 10:05:13 +02:00
|
|
|
|
with TS 18508/Fortran 2015.
|
2014-07-13 08:40:16 +02:00
|
|
|
|
|
2014-07-06 21:00:10 +02:00
|
|
|
|
2014-07-06 Marek Polacek <polacek@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/6940
|
|
|
|
|
* testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
|
|
|
|
|
|
2014-07-03 20:45:35 +02:00
|
|
|
|
2014-07-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
|
|
|
|
|
matches regex $lang_source_re, add $lang_include_flags to options.
|
|
|
|
|
* testsuite/libgomp.c/c.exp: Unset lang_include_flags.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Likewise. Set lang_source_re
|
|
|
|
|
and lang_include_flags instead of adding -fintrinsic-modules-path= to
|
|
|
|
|
ALWAYS_CFLAGS.
|
|
|
|
|
* testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
|
|
|
|
|
|
2014-07-03 17:23:43 +02:00
|
|
|
|
2014-07-03 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Explain
|
|
|
|
|
gfortran-dg-runtest usage.
|
|
|
|
|
|
2014-06-25 11:16:12 +02:00
|
|
|
|
2014-06-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/simd5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/simd6.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/simd7.f90: New test.
|
|
|
|
|
|
gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP, [...]): Make sure OMP_CLAUSE_SIZE is non-NULL.
* gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
non-NULL.
<case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
(gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
non-NULL.
(gimplify_adjust_omp_clauses): Likewise.
* omp-low.c (lower_rec_simd_input_clauses,
lower_rec_input_clauses, expand_omp_simd): Handle non-constant
safelen the same as safelen(1).
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
(convert_nonlocal_reference_stmt, convert_local_reference_stmt):
Fixup handling of GIMPLE_OMP_TARGET.
(convert_tramp_reference_stmt, convert_gimple_call): Handle
GIMPLE_OMP_TARGET.
gcc/fortran/
* dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
of n->udr.
* f95-lang.c (gfc_init_builtin_functions): Initialize
BUILT_IN_ASSUME_ALIGNED.
* gfortran.h (gfc_omp_namelist): Change udr field type to
struct gfc_omp_namelist_udr.
(gfc_omp_namelist_udr): New type.
(gfc_get_omp_namelist_udr): Define.
(gfc_resolve_code): New prototype.
* match.c (gfc_free_omp_namelist): Free name->udr.
* module.c (intrinsics): Add INTRINSIC_USER.
(fix_mio_expr): Likewise.
(mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
* openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
(gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
(struct resolve_omp_udr_callback_data): New type.
(resolve_omp_udr_callback, resolve_omp_udr_callback2,
resolve_omp_udr_clause): New functions.
(resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
here.
(omp_udr_callback): Don't check for implicitly declared functions
here.
(gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
implicitly declared subroutines here.
* resolve.c (resolve_function): If value.function.isym is non-NULL,
consider it already resolved.
(resolve_code): Renamed to ...
(gfc_resolve_code): ... this. No longer static.
(gfc_resolve_blocks, generate_component_assignments, resolve_codes):
Adjust callers.
* trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
by reference type (C_PTR) variables.
(gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
(gfc_trans_omp_udr_expr): Remove.
(gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
expand it as assignment or subroutine call. Don't initialize
value.function.isym.
gcc/testsuite/
* gfortran.dg/gomp/udr2.f90 (f7, f9): Add !$omp parallel with
reduction clause.
* gfortran.dg/gomp/udr4.f90 (f4): Likewise.
Remove Label is never defined expected error.
* gfortran.dg/gomp/udr8.f90: New test.
libgomp/
* testsuite/libgomp.fortran/aligned1.f03: New test.
* testsuite/libgomp.fortran/nestedfn5.f90: New test.
* testsuite/libgomp.fortran/target7.f90: Surround loop spawning
tasks with !$omp parallel !$omp single.
* testsuite/libgomp.fortran/target8.f90: New test.
* testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
not to use trim in the combiner, instead call elemental function.
(fn): New elemental function.
* testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
Make elemental.
* testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
omp_in): Likewise.
* testsuite/libgomp.fortran/udr12.f90: New test.
* testsuite/libgomp.fortran/udr13.f90: New test.
* testsuite/libgomp.fortran/udr14.f90: New test.
* testsuite/libgomp.fortran/udr15.f90: New test.
From-SVN: r211929
2014-06-24 09:45:22 +02:00
|
|
|
|
2014-06-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2014-06-24 09:53:52 +02:00
|
|
|
|
* testsuite/libgomp.c/for-2.c: Define SC to static for
|
|
|
|
|
#pragma omp for simd testing.
|
|
|
|
|
* testsuite/libgomp.c/for-2.h (SC): Define if not defined.
|
|
|
|
|
(N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
|
|
|
|
|
SC macro.
|
|
|
|
|
* testsuite/libgomp.c/simd-14.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-15.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-16.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-17.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-10.C: Define SC to static for
|
|
|
|
|
#pragma omp for simd testing.
|
|
|
|
|
* testsuite/libgomp.c++/simd10.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd12.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd13.C: New test.
|
|
|
|
|
|
gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP, [...]): Make sure OMP_CLAUSE_SIZE is non-NULL.
* gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
non-NULL.
<case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
(gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
non-NULL.
(gimplify_adjust_omp_clauses): Likewise.
* omp-low.c (lower_rec_simd_input_clauses,
lower_rec_input_clauses, expand_omp_simd): Handle non-constant
safelen the same as safelen(1).
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
(convert_nonlocal_reference_stmt, convert_local_reference_stmt):
Fixup handling of GIMPLE_OMP_TARGET.
(convert_tramp_reference_stmt, convert_gimple_call): Handle
GIMPLE_OMP_TARGET.
gcc/fortran/
* dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
of n->udr.
* f95-lang.c (gfc_init_builtin_functions): Initialize
BUILT_IN_ASSUME_ALIGNED.
* gfortran.h (gfc_omp_namelist): Change udr field type to
struct gfc_omp_namelist_udr.
(gfc_omp_namelist_udr): New type.
(gfc_get_omp_namelist_udr): Define.
(gfc_resolve_code): New prototype.
* match.c (gfc_free_omp_namelist): Free name->udr.
* module.c (intrinsics): Add INTRINSIC_USER.
(fix_mio_expr): Likewise.
(mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
* openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
(gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
(struct resolve_omp_udr_callback_data): New type.
(resolve_omp_udr_callback, resolve_omp_udr_callback2,
resolve_omp_udr_clause): New functions.
(resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
here.
(omp_udr_callback): Don't check for implicitly declared functions
here.
(gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
implicitly declared subroutines here.
* resolve.c (resolve_function): If value.function.isym is non-NULL,
consider it already resolved.
(resolve_code): Renamed to ...
(gfc_resolve_code): ... this. No longer static.
(gfc_resolve_blocks, generate_component_assignments, resolve_codes):
Adjust callers.
* trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
by reference type (C_PTR) variables.
(gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
(gfc_trans_omp_udr_expr): Remove.
(gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
expand it as assignment or subroutine call. Don't initialize
value.function.isym.
gcc/testsuite/
* gfortran.dg/gomp/udr2.f90 (f7, f9): Add !$omp parallel with
reduction clause.
* gfortran.dg/gomp/udr4.f90 (f4): Likewise.
Remove Label is never defined expected error.
* gfortran.dg/gomp/udr8.f90: New test.
libgomp/
* testsuite/libgomp.fortran/aligned1.f03: New test.
* testsuite/libgomp.fortran/nestedfn5.f90: New test.
* testsuite/libgomp.fortran/target7.f90: Surround loop spawning
tasks with !$omp parallel !$omp single.
* testsuite/libgomp.fortran/target8.f90: New test.
* testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
not to use trim in the combiner, instead call elemental function.
(fn): New elemental function.
* testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
Make elemental.
* testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
omp_in): Likewise.
* testsuite/libgomp.fortran/udr12.f90: New test.
* testsuite/libgomp.fortran/udr13.f90: New test.
* testsuite/libgomp.fortran/udr14.f90: New test.
* testsuite/libgomp.fortran/udr15.f90: New test.
From-SVN: r211929
2014-06-24 09:45:22 +02:00
|
|
|
|
* testsuite/libgomp.fortran/aligned1.f03: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/target7.f90: Surround loop spawning
|
|
|
|
|
tasks with !$omp parallel !$omp single.
|
|
|
|
|
* testsuite/libgomp.fortran/target8.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
|
|
|
|
|
not to use trim in the combiner, instead call elemental function.
|
|
|
|
|
(fn): New elemental function.
|
|
|
|
|
* testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
|
|
|
|
|
Make elemental.
|
|
|
|
|
* testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
|
|
|
|
|
omp_in): Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/udr12.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr13.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr14.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr15.f90: New test.
|
|
|
|
|
|
gimplify.c (omp_notice_variable): If n is non-NULL and no flags change in ORT_TARGET region, don't jump to do_outer.
* gimplify.c (omp_notice_variable): If n is non-NULL
and no flags change in ORT_TARGET region, don't jump to
do_outer.
(struct gimplify_adjust_omp_clauses_data): New type.
(gimplify_adjust_omp_clauses_1): Adjust for data being
a struct gimplify_adjust_omp_clauses_data pointer instead
of tree *. Pass pre_p as a new argument to
lang_hooks.decls.omp_finish_clause hook.
(gimplify_adjust_omp_clauses): Add pre_p argument, adjust
splay_tree_foreach to pass both list_p and pre_p.
(gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
gimplify_omp_workshare, gimplify_omp_target_update): Adjust
gimplify_adjust_omp_clauses callers.
* langhooks.c (lhd_omp_finish_clause): New function.
* langhooks-def.h (lhd_omp_finish_clause): New prototype.
(LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
* langhooks.h (struct lang_hooks_for_decls): Add a new
gimple_seq * argument to omp_finish_clause hook.
* omp-low.c (scan_sharing_clauses): Call scan_omp_op on
non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
(scan_omp_parallel, lower_omp_for): When adding
_LOOPTEMP_ clause var, add it to outer ctx's decl_map
as identity.
* tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_MAP_TO_PSET.
gcc/cp/
* cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
argument.
* cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
gcc/fortran/
* cpp.c (cpp_define_builtins): Change _OPENMP macro to
201307.
* dump-parse-tree.c (show_omp_namelist): Add list_type
argument. Adjust for rop being u.reduction_op now,
handle depend_op or map_op.
(show_omp_node): Adjust callers. Print some new
OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
becoming a single OMP_LIST_DEPEND.
* f95-lang.c (gfc_handle_omp_declare_target_attribute): New
function.
(gfc_attribute_table): New variable.
(LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
* frontend-passes.c (gfc_code_walker): Handle new OpenMP target
EXEC_OMP_* codes and new clauses.
* gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
(symbol_attribute): Add omp_declare_target field.
(gfc_omp_depend_op, gfc_omp_map_op): New enums.
(gfc_omp_namelist): Replace rop field with union
containing reduction_op, depend_op and map_op.
(OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
(OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
(gfc_omp_clauses): Add num_teams, device, thread_limit,
dist_sched_kind, dist_chunk_size fields.
(gfc_common_head): Add omp_declare_target field.
(gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
EXEC_OMP_TARGET_UPDATE.
(gfc_add_omp_declare_target): New prototype.
* match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
gfc_match_omp_distribute_parallel_do,
gfc_match_omp_distribute_parallel_do_simd,
gfc_match_omp_distribute_simd, gfc_match_omp_target,
gfc_match_omp_target_data, gfc_match_omp_target_teams,
gfc_match_omp_target_teams_distribute,
gfc_match_omp_target_teams_distribute_parallel_do,
gfc_match_omp_target_teams_distribute_parallel_do_simd,
gfc_match_omp_target_teams_distribute_simd,
gfc_match_omp_target_update, gfc_match_omp_teams,
gfc_match_omp_teams_distribute,
gfc_match_omp_teams_distribute_parallel_do,
gfc_match_omp_teams_distribute_parallel_do_simd,
gfc_match_omp_teams_distribute_simd): New prototypes.
* module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
(attr_bits): Likewise.
(mio_symbol_attribute): Handle omp_declare_target attribute.
(gfc_free_omp_clauses): Free num_teams, device, thread_limit
and dist_chunk_size expressions.
(OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
(OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
OMP_CLAUSE_DIST_SCHEDULE): Define.
(gfc_match_omp_clauses): Change mask parameter to unsigned int.
Adjust for rop becoming u.reduction_op. Disallow inbranch with
notinbranch. For depend clause, always create OMP_LIST_DEPEND
and fill in u.depend_op. Handle num_teams, device, map,
to, from, thread_limit and dist_schedule clauses.
(OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
OMP_CLAUSE_NOTINBRANCH.
(OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
OMP_DISTRIBUTE_CLAUSES): Define.
(match_omp): New function.
(gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
gfc_match_omp_task): Rewritten using match_omp.
(gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
Diagnose if the directives are followed by unexpected junk.
(gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
gfc_match_omp_distribute_parallel_do_simd,
gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
gfc_match_omp_target, gfc_match_omp_target_data,
gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
gfc_match_omp_target_teams_distribute_parallel_do,
gfc_match_omp_target_teams_distribute_parallel_do_simd,
gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
gfc_match_omp_teams, gfc_match_omp_teams_distribute,
gfc_match_omp_teams_distribute_parallel_do,
gfc_match_omp_teams_distribute_parallel_do_simd,
gfc_match_omp_teams_distrbute_simd): New functions.
* openmp.c (resolve_omp_clauses): Adjust for
OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
dist_chunk_size and thread_limit.
(gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
new EXEC_OMP_* codes.
(resolve_omp_do): Handle various new EXEC_OMP_* codes.
(gfc_resolve_omp_directive): Likewise.
(gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
* parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
offloading related directives.
(case_executable): Add ST_OMP_TARGET_UPDATE.
(case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
ST_OMP_DISTRIBUTE*.
(case_decl): Add ST_OMP_DECLARE_TARGET.
(gfc_ascii_statement): Handle new ST_OMP_* codes.
(parse_omp_do): Handle various new ST_OMP_* codes.
(parse_executable): Likewise.
* resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
codes.
(resolve_code): Likewise.
(resolve_symbol): Change that !$OMP DECLARE TARGET variables
are saved.
* st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
* symbol.c (check_conflict): Check omp_declare_target conflicts.
(gfc_add_omp_declare_target): New function.
(gfc_copy_attr): Copy omp_declare_target.
* trans.c (trans_code): Handle various new EXEC_OMP_* codes.
* trans-common.c (build_common_decl): Add "omp declare target"
attribute if needed.
* trans-decl.c (add_attributes_to_decl): Likewise.
* trans.h (gfc_omp_finish_clause): New prototype.
* trans-openmp.c (gfc_omp_finish_clause): New function.
(gfc_trans_omp_reduction_list): Adjust for rop being renamed
to u.reduction_op.
(gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
change to OMP_LIST_DEPEND and fix up depend handling.
Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
thread_limit, device, dist_chunk_size and dist_sched_kind.
(gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
(GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
(gfc_split_omp_clauses): Handle splitting of clauses for new
EXEC_OMP_* codes.
(gfc_trans_omp_do_simd): Add pblock argument, adjust for being
callable for combined constructs.
(gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
(gfc_trans_omp_distribute, gfc_trans_omp_teams,
gfc_trans_omp_target, gfc_trans_omp_target_data,
gfc_trans_omp_target_update): New functions.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
new EXEC_OMP_* codes.
gcc/testsuite/
* gfortran.dg/gomp/declare-simd-1.f90: New test.
* gfortran.dg/gomp/depend-1.f90: New test.
* gfortran.dg/gomp/target1.f90: New test.
* gfortran.dg/gomp/target2.f90: New test.
* gfortran.dg/gomp/target3.f90: New test.
* gfortran.dg/gomp/udr4.f90: Adjust expected diagnostics.
* gfortran.dg/openmp-define-3.f90: Expect _OPENMP 201307 instead of
201107.
libgomp/
* omp_lib.f90.in (openmp_version): Set to 201307.
* omp_lib.h.in (openmp_version): Likewise.
* testsuite/libgomp.c/target-8.c: New test.
* testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
and inbranch clauses.
* testsuite/libgomp.fortran/depend-3.f90: New test.
* testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
openmp_version.
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
* testsuite/libgomp.fortran/target1.f90: New test.
* testsuite/libgomp.fortran/target2.f90: New test.
* testsuite/libgomp.fortran/target3.f90: New test.
* testsuite/libgomp.fortran/target4.f90: New test.
* testsuite/libgomp.fortran/target5.f90: New test.
* testsuite/libgomp.fortran/target6.f90: New test.
* testsuite/libgomp.fortran/target7.f90: New test.
From-SVN: r211768
2014-06-18 09:16:12 +02:00
|
|
|
|
2014-06-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* omp_lib.f90.in (openmp_version): Set to 201307.
|
|
|
|
|
* omp_lib.h.in (openmp_version): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/target-8.c: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
|
|
|
|
|
and inbranch clauses.
|
|
|
|
|
* testsuite/libgomp.fortran/depend-3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
|
|
|
|
|
openmp_version.
|
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/target1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/target2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/target3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/target4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/target5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/target6.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/target7.f90: New test.
|
|
|
|
|
|
re PR fortran/60928 (gfortran issue with allocatable components and OpenMP)
PR fortran/60928
* omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
Set lastprivate_firstprivate even if omp_private_outer_ref
langhook returns true.
<case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
langhook, call unshare_expr on new_var and call
build_outer_var_ref to get the last argument.
gcc/c-family/
* c-pragma.c (omp_pragmas_simd): Move PRAGMA_OMP_TASK...
(omp_pragmas): ... back here.
gcc/fortran/
* f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
like -fopenmp.
* openmp.c (resolve_omp_clauses): Remove allocatable components
diagnostics. Add associate-name and intent(in) pointer
diagnostics for various clauses, diagnose procedure pointers in
reduction clause.
* parse.c (match_word_omp_simd): New function.
(matchs, matcho): New macros.
(decode_omp_directive): Change match macros to either matchs
or matcho. Handle -fopenmp-simd.
(next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
* scanner.c (skip_free_comments, skip_fixed_comments, include_line):
Likewise.
* trans-array.c (get_full_array_size): Rename to...
(gfc_full_array_size): ... this. No longer static.
(duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
and handle it.
(gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
duplicate_allocatable callers.
(gfc_duplicate_allocatable_nocopy): New function.
(structure_alloc_comps): Adjust g*_full_array_size and
duplicate_allocatable caller.
* trans-array.h (gfc_full_array_size,
gfc_duplicate_allocatable_nocopy): New prototypes.
* trans-common.c (create_common): Call gfc_finish_decl_attrs.
* trans-decl.c (gfc_finish_decl_attrs): New function.
(gfc_finish_var_decl, create_function_arglist,
gfc_get_fake_result_decl): Call it.
(gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
don't allocate it again.
(gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
associate-names.
* trans.h (gfc_finish_decl_attrs): New prototype.
(struct lang_decl): Add scalar_allocatable and scalar_pointer
bitfields.
(GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
GFC_DECL_ASSOCIATE_VAR_P): Define.
(GFC_POINTER_TYPE_P): Remove.
* trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
(gfc_omp_predetermined_sharing): Associate-names are predetermined.
(enum walk_alloc_comps): New.
(gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
gfc_walk_alloc_comps): New functions.
(gfc_omp_private_outer_ref): Return true for scalar allocatables or
decls with allocatable components.
(gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
allocatables and decls with allocatable components.
(gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
arrays here.
(gfc_trans_omp_reduction_list): Call
gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
(gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
(gfc_trans_omp_parallel_do_simd): Likewise.
* trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
(gfc_get_derived_type): Call gfc_finish_decl_attrs.
gcc/testsuite/
* gfortran.dg/gomp/allocatable_components_1.f90: Remove dg-error
directives.
* gfortran.dg/gomp/associate1.f90: New test.
* gfortran.dg/gomp/intentin1.f90: New test.
* gfortran.dg/gomp/openmp-simd-1.f90: New test.
* gfortran.dg/gomp/openmp-simd-2.f90: New test.
* gfortran.dg/gomp/openmp-simd-3.f90: New test.
* gfortran.dg/gomp/proc_ptr_2.f90: New test.
libgomp/
* testsuite/libgomp.fortran/allocatable9.f90: New test.
* testsuite/libgomp.fortran/allocatable10.f90: New test.
* testsuite/libgomp.fortran/allocatable11.f90: New test.
* testsuite/libgomp.fortran/allocatable12.f90: New test.
* testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
* testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
* testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
* testsuite/libgomp.fortran/associate1.f90: New test.
* testsuite/libgomp.fortran/associate2.f90: New test.
* testsuite/libgomp.fortran/procptr1.f90: New test.
From-SVN: r211397
2014-06-10 08:05:22 +02:00
|
|
|
|
2014-06-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/60928
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable9.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable10.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable11.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable12.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/associate1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/associate2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/procptr1.f90: New test.
|
|
|
|
|
|
dump-parse-tree.c (show_omp_namelist): Dump reduction id in each list item.
gcc/fortran/
* dump-parse-tree.c (show_omp_namelist): Dump reduction
id in each list item.
(show_omp_node): Only handle OMP_LIST_REDUCTION, not
OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't
dump reduction id here.
* frontend-passes.c (dummy_code_callback): Renamed to...
(gfc_dummy_code_callback): ... this. No longer static.
(optimize_reduction): Use gfc_dummy_code_callback instead of
dummy_code_callback.
* gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
(symbol_attribute): Add omp_udr_artificial_var bitfield.
(gfc_omp_reduction_op): New enum.
(gfc_omp_namelist): Add rop and udr fields.
(OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
(OMP_LIST_REDUCTION): New.
(gfc_omp_udr): New type.
(gfc_get_omp_udr): Define.
(gfc_symtree): Add n.omp_udr field.
(gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
(gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
gfc_dummy_code_callback): New prototypes.
* match.h (gfc_match_omp_declare_reduction): New prototype.
* module.c (MOD_VERSION): Increase to 13.
(omp_declare_reduction_stmt): New array.
(mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
New functions.
(read_module): Read OpenMP user defined reductions.
(write_module): Write OpenMP user defined reductions.
* openmp.c: Include arith.h.
(gfc_free_omp_udr, gfc_find_omp_udr): New functions.
(gfc_match_omp_clauses): Handle user defined reductions.
Store reduction kind into gfc_omp_namelist instead of using
several OMP_LIST_* entries.
(match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
gfc_match_omp_declare_reduction): New functions.
(resolve_omp_clauses): Adjust for reduction clauses being only
in OMP_LIST_REDUCTION list. Diagnose missing UDRs.
(struct omp_udr_callback_data): New type.
(omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
functions.
* parse.c (decode_omp_directive): Handle !$omp declare reduction.
(case_decl): Add ST_OMP_DECLARE_REDUCTION.
(gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
* resolve.c (resolve_fl_variable): Allow len=: or len=* on
sym->attr.omp_udr_artificial_var symbols.
(resolve_types): Call gfc_resolve_omp_udrs.
* symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
use parent ns instead of gfc_current_ns.
(gfc_get_sym_tree): Don't insert symbols into
namespaces with omp_udr_ns set.
(free_omp_udr_tree): New function.
(gfc_free_namespace): Call it.
* trans-openmp.c (struct omp_udr_find_orig_data): New type.
(omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
(gfc_trans_omp_array_reduction): Renamed to...
(gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM
argument, instead pass gfc_omp_namelist pointer N. Handle
user defined reductions.
(gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
Handle user defined reductions and reduction ops in gfc_omp_namelist.
(gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
list.
(gfc_split_omp_clauses): Likewise.
gcc/testsuite/
* gfortran.dg/gomp/allocatable_components_1.f90: Adjust for
reduction clause diagnostic changes.
* gfortran.dg/gomp/appendix-a/a.31.3.f90: Likewise.
* gfortran.dg/gomp/reduction1.f90: Likewise.
* gfortran.dg/gomp/reduction3.f90: Likewise.
* gfortran.dg/gomp/udr1.f90: New test.
* gfortran.dg/gomp/udr2.f90: New test.
* gfortran.dg/gomp/udr3.f90: New test.
* gfortran.dg/gomp/udr4.f90: New test.
* gfortran.dg/gomp/udr5.f90: New test.
* gfortran.dg/gomp/udr6.f90: New test.
* gfortran.dg/gomp/udr7.f90: New test.
libgomp/
* testsuite/libgomp.fortran/simd1.f90: New test.
* testsuite/libgomp.fortran/udr1.f90: New test.
* testsuite/libgomp.fortran/udr2.f90: New test.
* testsuite/libgomp.fortran/udr3.f90: New test.
* testsuite/libgomp.fortran/udr4.f90: New test.
* testsuite/libgomp.fortran/udr5.f90: New test.
* testsuite/libgomp.fortran/udr6.f90: New test.
* testsuite/libgomp.fortran/udr7.f90: New test.
* testsuite/libgomp.fortran/udr8.f90: New test.
* testsuite/libgomp.fortran/udr9.f90: New test.
* testsuite/libgomp.fortran/udr10.f90: New test.
* testsuite/libgomp.fortran/udr11.f90: New test.
From-SVN: r211303
2014-06-06 09:24:38 +02:00
|
|
|
|
2014-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/simd1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr6.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr7.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr8.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr9.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr10.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/udr11.f90: New test.
|
|
|
|
|
|
2014-05-27 11:14:53 +02:00
|
|
|
|
2014-05-27 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-1.f90: Require
|
|
|
|
|
vect_simd_clones effective target.
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
|
|
|
|
|
|
2014-05-21 10:04:03 +02:00
|
|
|
|
2014-05-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/61252
|
|
|
|
|
* testsuite/libgomp.c++/simd-9.C: New test.
|
|
|
|
|
|
2014-05-18 12:29:30 +02:00
|
|
|
|
2014-05-18 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi (Runitme Library Routines): Remove multiple @menu.
|
|
|
|
|
(Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
|
|
|
|
|
texts according to their @menu entry positions.
|
|
|
|
|
|
tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
* tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
* tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
number of operands to 3.
(walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
* gimplify.c (gimplify_scan_omp_clauses): Handle
OMP_CLAUSE_LINEAR_STMT.
* omp-low.c (lower_rec_input_clauses): Fix typo.
(maybe_add_implicit_barrier_cancel, lower_omp_1): Add
cast between Fortran boolean_type_node and C _Bool if
needed.
gcc/fortran/
* gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
ST_OMP_DECLARE_SIMD.
(gfc_omp_namelist): New typedef.
(gfc_get_omp_namelist): Define.
(OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
(gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
(gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
simdlen_expr fields.
(gfc_omp_declare_simd): New typedef.
(gfc_get_omp_declare_simd): Define.
(gfc_namespace): Add omp_declare_simd field.
(gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
EXEC_OMP_PARALLEL_DO_SIMD.
(gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
and GFC_OMP_ATOMIC_SWAP.
(gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
(gfc_free_omp_namelist, gfc_free_omp_declare_simd,
gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
prototypes.
* trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
* symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
* openmp.c (gfc_free_omp_clauses): Free safelen_expr and
simdlen_expr. Use gfc_free_omp_namelist instead of
gfc_free_namelist.
(gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
functions.
(gfc_match_omp_variable_list): Add end_colon, headp and
allow_sections arguments. Handle parsing of array sections.
Use *omp_namelist* instead of *namelist* data structure and
functions/macros. Allow termination at : character.
(OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
(gfc_match_omp_clauses): Change first and needs_space variables
into arguments with default values. Parse inbranch, notinbranch,
proc_bind, safelen, simdlen, uniform, linear, aligned and
depend clauses.
(OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
(OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
(OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
(gfc_match_omp_do_simd): New function.
(gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
data structure and functions/macros.
(gfc_match_omp_simd, gfc_match_omp_declare_simd,
gfc_match_omp_parallel_do_simd): New functions.
(gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
(gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
functions.
(resolve_omp_clauses): Add where, omp_clauses and ns arguments.
Use *omp_namelist* instead of *namelist* data structure and
functions/macros. Resolve uniform, aligned, linear, depend,
safelen and simdlen clauses.
(resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
addition, recognize atomic swap.
(gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
EXEC_OMP_PARALLEL_DO.
(gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
data structure and functions/macros.
(resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD.
(gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
resolve_omp_clauses caller.
(gfc_resolve_omp_declare_simd): New function.
* parse.c (decode_omp_directive): Parse cancellation point, cancel,
declare simd, end do simd, end simd, end parallel do simd,
end taskgroup, parallel do simd, simd and taskgroup directives.
(case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
(case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
(case_decl): Add ST_OMP_DECLARE_SIMD.
(gfc_ascii_statement): Handle ST_OMP_CANCEL,
ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
ST_OMP_DECLARE_SIMD.
(parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
ST_OMP_PARALLEL_DO_SIMD.
(parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
(parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
ST_OMP_PARALLEL_DO_SIMD.
(parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
* trans-decl.c (gfc_get_extern_function_decl,
gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
needed.
* frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
of depend, aligned and linear clauses.
* match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
and EXEC_OMP_PARALLEL_DO_SIMD.
(gfc_free_omp_namelist): New function.
* dump-parse-tree.c (show_namelist): Removed.
(show_omp_namelist): New function.
(show_omp_node): Handle OpenMP 4.0 additions.
(show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
EXEC_OMP_TASKGROUP.
* match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
gfc_match_omp_taskgroup): New prototypes.
* trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
argument, handle it. Allow current_function_decl to be NULL.
(gfc_trans_omp_variable_list): Add declare_simd argument, pass
it through to gfc_trans_omp_variable and disregard whether
sym is referenced if declare_simd is true. Work on gfc_omp_namelist
instead of gfc_namelist.
(gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
gfc_namelist. Adjust gfc_trans_omp_variable caller.
(gfc_trans_omp_clauses): Add declare_simd argument, pass it through
to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
simdlen, depend, uniform, linear, proc_bind and aligned clauses.
Handle cancel kind.
(gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
adjust for GFC_OMP_ATOMIC_* changes.
(gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
functions.
(gfc_trans_omp_do): Add op argument, handle simd translation into
generic.
(GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
GFC_OMP_MASK_PARALLEL): New.
(gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
(gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
(gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
Adjust gfc_trans_omp_do caller.
(gfc_trans_omp_declare_simd): New function.
* st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
gfc_free_namelist.
* module.c (omp_declare_simd_clauses): New variable.
(mio_omp_declare_simd): New function.
(mio_symbol): Call it.
* trans.c (trans_code): Handle EXEC_OMP_CANCEL,
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
* resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
(resolve_code): Handle EXEC_OMP_CANCEL,
EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
(resolve_types): Call gfc_resolve_omp_declare_simd.
gcc/testsuite/
* gfortran.dg/gomp/affinity-1.f90: New test.
libgomp/
* testsuite/libgomp.fortran/cancel-do-1.f90: New test.
* testsuite/libgomp.fortran/cancel-do-2.f90: New test.
* testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
* testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
* testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
* testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
* testsuite/libgomp.fortran/declare-simd-1.f90: New test.
* testsuite/libgomp.fortran/declare-simd-2.f90: New test.
* testsuite/libgomp.fortran/declare-simd-3.f90: New test.
* testsuite/libgomp.fortran/depend-1.f90: New test.
* testsuite/libgomp.fortran/depend-2.f90: New test.
* testsuite/libgomp.fortran/omp_atomic5.f90: New test.
* testsuite/libgomp.fortran/simd1.f90: New test.
* testsuite/libgomp.fortran/simd2.f90: New test.
* testsuite/libgomp.fortran/simd3.f90: New test.
* testsuite/libgomp.fortran/simd4.f90: New test.
* testsuite/libgomp.fortran/taskgroup1.f90: New test.
From-SVN: r210313
2014-05-11 22:26:36 +02:00
|
|
|
|
2014-05-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-do-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-do-2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/declare-simd-3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/depend-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/depend-2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/simd1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/simd2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/simd3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/simd4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/taskgroup1.f90: New test.
|
|
|
|
|
|
2014-05-02 19:43:40 +02:00
|
|
|
|
2014-05-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/simd-10.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-11.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-12.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-13.c: New test.
|
|
|
|
|
|
2014-04-24 23:17:32 +02:00
|
|
|
|
2014-04-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2014-04-24 23:20:28 +02:00
|
|
|
|
* testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
|
|
|
|
|
atomic type clauses in any order and optional comma in between.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-15.C: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/atomic-17.c: Likewise.
|
|
|
|
|
|
2014-04-24 23:17:32 +02:00
|
|
|
|
* testsuite/libgomp.c/simd-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-8.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-9.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-16.c: New test.
|
|
|
|
|
|
2014-04-02 22:27:29 +02:00
|
|
|
|
2014-04-02 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/futex.h (futex_wait): Get error value from errno.
|
|
|
|
|
(futex_wake): Likewise.
|
|
|
|
|
|
2014-03-25 10:30:10 +01:00
|
|
|
|
2014-03-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/60331
|
|
|
|
|
* testsuite/libgomp.c++/udr-11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-12.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-13.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-14.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-15.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-16.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-17.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-18.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-19.C: New test.
|
|
|
|
|
|
2014-01-02 23:25:54 +01:00
|
|
|
|
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
|
|
Update copyright years
|
|
|
|
|
|
arc-common.c, [...]: Use the standard form for the copyright notice.
gcc/
* common/config/arc/arc-common.c, config/arc/arc-modes.def,
config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
config/arc/arc.md, config/arc/arc.opt, config/arm/arm_neon_builtins.def,
config/arm/crypto.def, config/i386/avx512cdintrin.h,
config/i386/avx512erintrin.h, config/i386/avx512fintrin.h,
config/i386/avx512pfintrin.h, config/i386/btver2.md,
config/i386/shaintrin.h, config/i386/slm.md, config/linux-protos.h,
config/linux.c, config/winnt-c.c, diagnostic-color.c,
diagnostic-color.h, gimple-ssa-isolate-paths.c, vtable-verify.c,
vtable-verify.h: Use the standard form for the copyright notice.
gcc/c-family/
* array-notation-common.c, c-cilkplus.c: Use the standard form for
the copyright notice.
gcc/c/
* c-array-notation.c: Use the standard form for the copyright notice.
gcc/cp/
* cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
the standard form for the copyright notice.
gcc/testsuite/
* gcc.target/arc/arc.exp: Use the standard form for the copyright
notice.
libgcc/
* config/arc/asm.h, config/arc/crtg.S, config/arc/crtgend.S,
config/arc/crti.S, config/arc/crtn.S, config/arc/divtab-arc700.c,
config/arc/dp-hack.h, config/arc/fp-hack.h,
config/arc/ieee-754/adddf3.S, config/arc/ieee-754/addsf3.S,
config/arc/ieee-754/arc600-dsp/divdf3.S,
config/arc/ieee-754/arc600-dsp/divsf3.S,
config/arc/ieee-754/arc600-dsp/muldf3.S,
config/arc/ieee-754/arc600-dsp/mulsf3.S,
config/arc/ieee-754/arc600-mul64/divdf3.S,
config/arc/ieee-754/arc600-mul64/divsf3.S,
config/arc/ieee-754/arc600-mul64/muldf3.S,
config/arc/ieee-754/arc600-mul64/mulsf3.S,
config/arc/ieee-754/arc600/divsf3.S,
config/arc/ieee-754/arc600/mulsf3.S,
config/arc/ieee-754/divdf3.S, config/arc/ieee-754/divsf3-stdmul.S,
config/arc/ieee-754/divsf3.S, config/arc/ieee-754/divtab-arc-df.c,
config/arc/ieee-754/divtab-arc-sf.c, config/arc/ieee-754/eqdf2.S,
config/arc/ieee-754/eqsf2.S, config/arc/ieee-754/extendsfdf2.S,
config/arc/ieee-754/fixdfsi.S, config/arc/ieee-754/fixsfsi.S,
config/arc/ieee-754/fixunsdfsi.S, config/arc/ieee-754/floatsidf.S,
config/arc/ieee-754/floatsisf.S, config/arc/ieee-754/floatunsidf.S,
config/arc/ieee-754/gedf2.S, config/arc/ieee-754/gesf2.S,
config/arc/ieee-754/gtdf2.S, config/arc/ieee-754/gtsf2.S,
config/arc/ieee-754/muldf3.S, config/arc/ieee-754/mulsf3.S,
config/arc/ieee-754/orddf2.S, config/arc/ieee-754/ordsf2.S,
config/arc/ieee-754/truncdfsf2.S, config/arc/ieee-754/uneqdf2.S,
config/arc/ieee-754/uneqsf2.S, config/arc/initfini.c,
config/arc/lib1funcs.S, config/arc/t-arc, config/arc/t-arc-newlib,
config/cris/umulsidi3.S, config/msp430/cmpsi2.S,
config/msp430/epilogue.S, config/msp430/lib2bitcountHI.c,
config/msp430/lib2divHI.c, config/msp430/lib2divQI.c,
config/msp430/lib2divSI.c, config/msp430/lib2mul.c,
config/msp430/msp430-divmod.h, config/msp430/msp430-mul.h,
config/msp430/slli.S, config/msp430/srai.S, config/msp430/srli.S,
config/rl78/divmodhi.S, config/rl78/divmodqi.S, config/rl78/divmodsi.S,
config/rl78/signbit.S, vtv_end.c, vtv_end_preinit.c, vtv_start.c,
vtv_start_preinit.c: Use the standard form for the copyright notice.
libgomp/
* hashtab.h: Use the standard form for the copyright notice.
libstdc++-v3/
* testsuite/18_support/new_handler.cc,
testsuite/18_support/terminate_handler.cc,
testsuite/18_support/unexpected_handler.cc: Use the standard form for
the copyright notice.
From-SVN: r206288
2014-01-02 23:09:02 +01:00
|
|
|
|
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
|
|
* hashtab.h: Use the standard form for the copyright notice.
|
|
|
|
|
|
2014-01-02 22:25:41 +01:00
|
|
|
|
2014-01-02 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Bump @copying's copyright year.
|
|
|
|
|
|
2013-12-17 19:05:32 +01:00
|
|
|
|
2013-12-17 Andreas Tobler <andreast@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
|
|
|
|
|
alloca () with __builtin_alloca ().
|
|
|
|
|
* testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
|
|
|
|
|
* testsuite/libgomp.c/lock-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr48591.c: Likewise.
|
|
|
|
|
|
2013-12-17 16:17:00 +01:00
|
|
|
|
2013-12-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/59534
|
|
|
|
|
* testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
|
|
|
|
|
comparisons.
|
|
|
|
|
|
2013-12-16 11:34:28 +01:00
|
|
|
|
2013-12-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/58756
|
|
|
|
|
* testsuite/libgomp.c/pr58756.c: New test.
|
|
|
|
|
|
2013-12-12 09:52:06 +01:00
|
|
|
|
2013-12-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/59467
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
|
|
|
|
|
!$omp parallel.
|
|
|
|
|
|
2013-11-07 16:07:34 +01:00
|
|
|
|
2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2013-11-07 16:07:58 +01:00
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
|
|
|
|
|
ALWAYS_CFLAGS.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
|
|
|
|
|
* testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2013-11-07 16:07:46 +01:00
|
|
|
|
* libgomp_g.h: Include <stddef.h> for size_t.
|
|
|
|
|
|
2013-11-07 16:07:34 +01:00
|
|
|
|
* libgomp.spec.in: Update comment about libgomp's dependencies.
|
|
|
|
|
* configure.ac: Likewise.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2013-10-16 00:08:46 +02:00
|
|
|
|
2013-10-16 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: (Runtime Library Routines): Update references for
|
|
|
|
|
OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
|
|
|
|
|
omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
|
|
|
|
|
omp_get_team_num, omp_is_initial_device, omp_set_default_device.
|
|
|
|
|
(Environment Variables): Update references for OpenMP 4.0. Add
|
|
|
|
|
OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
|
|
|
|
|
Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
|
|
|
|
|
order.
|
|
|
|
|
|
2013-10-14 10:26:18 +02:00
|
|
|
|
2013-10-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* env.c (parse_bind_var): Initialize value to avoid
|
|
|
|
|
(false positive) warning.
|
|
|
|
|
|
2013-10-12 09:52:15 +02:00
|
|
|
|
2013-10-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/58691
|
|
|
|
|
* config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
|
|
|
|
|
to check variable.
|
|
|
|
|
(gomp_init_num_threads): Move i variable declaration into
|
|
|
|
|
#ifdef CPU_ALLOC_SIZE block.
|
|
|
|
|
* config/linux/affinity.c (gomp_affinity_init_level): Test
|
|
|
|
|
gomp_places_list_len == 0 rather than gomp_places_list == 0
|
|
|
|
|
when checking for topology reading error.
|
|
|
|
|
* team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
|
|
|
|
|
* env.c (parse_affinity): Add ignore argument, if true, don't populate
|
|
|
|
|
gomp_places_list, only parse env var and always return false.
|
|
|
|
|
(parse_places_var): Likewise. Don't check gomp_global_icv.bind_var.
|
|
|
|
|
(initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
|
|
|
|
|
vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
|
|
|
|
|
and either of these variables were parsed correctly into a places
|
|
|
|
|
list.
|
|
|
|
|
|
2013-10-11 12:43:59 +02:00
|
|
|
|
2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
|
|
|
|
|
of 5 loopfn matches.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
|
|
|
|
|
|
2013-10-11 12:41:34 +02:00
|
|
|
|
2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2013-10-11 12:43:48 +02:00
|
|
|
|
* Makefile.am (omp_lib.mod): Streamline rule.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2013-10-11 12:43:26 +02:00
|
|
|
|
* libgomp.texi (Runtime Library Routines): C linkage, don't throw
|
|
|
|
|
exceptions.
|
|
|
|
|
|
2013-10-11 12:43:15 +02:00
|
|
|
|
* testsuite/libgomp.c/lib-1.c (main): Add missing error check.
|
|
|
|
|
* testsuite/libgomp.fortran/lib1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lib2.f: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/lib3.f: Likewise.
|
|
|
|
|
|
2013-10-11 12:42:53 +02:00
|
|
|
|
* configure.ac: Typo fix.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2013-10-11 12:42:42 +02:00
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-1.f: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
|
|
|
|
|
|
2013-10-11 12:41:34 +02:00
|
|
|
|
* omp.h.in: Don't touch the user's namespace.
|
|
|
|
|
|
target.c: New file.
libgomp/
* target.c: New file.
* Makefile.am (libgomp_la_SOURCES): Add target.c.
* Makefile.in: Regenerated.
* libgomp_g.h (GOMP_task): Add depend argument.
(GOMP_barrier_cancel, GOMP_loop_end_cancel,
GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
GOMP_target_end_data, GOMP_target_update, GOMP_teams,
GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
GOMP_taskgroup_start, GOMP_taskgroup_end,
GOMP_parallel_sections): New prototypes.
* fortran.c (omp_is_initial_device): Add ialias_redirect.
(omp_is_initial_device_): New function.
(ULP, STR1, STR2, ialias_redirect): Removed.
(omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
omp_set_default_device_8_, omp_get_default_device_,
omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
functions.
* libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
@@GOMP_4.0.
(omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
omp_set_default_device, omp_set_default_device_,
omp_set_default_device_8_, omp_get_default_device,
omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
omp_get_team_num_): Export @@OMP_4.0.
* team.c (struct gomp_thread_start_data): Add place field.
(gomp_thread_start): Clear thr->thread_pool and
thr->task before returning. Use gomp_team_barrier_wait_final
instead of gomp_team_barrier_wait. Initialize thr->place.
(gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
team_cancelled and task_queued_count fields.
(gomp_free_pool_helper): Clear thr->thread_pool and thr->task
before calling pthread_exit.
(gomp_free_thread): No longer static. Use
gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
(gomp_team_start): Add flags argument. Set
thr->thread_pool->threads_busy to nthreads immediately after creating
new pool. Use gomp_managed_threads_lock instead of
gomp_remaining_threads_lock. Handle OpenMP 4.0 affinity.
(gomp_team_end): Use gomp_managed_threads_lock instead of
gomp_remaining_threads_lock. Use gomp_team_barrier_wait_final instead
of gomp_team_barrier_wait. If team->team_cancelled, call
gomp_fini_worshare on ws chain starting at team->work_shares_to_free
rather than thr->ts.work_share.
(initialize_team): Don't call gomp_sem_init here.
* sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
caller.
(GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
* env.c (gomp_global_icv): Add default_device_var, target_data and
bind_var initializers.
(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
gomp_places_list_len): New variables.
(parse_bind_var, parse_one_place, parse_places_var): New functions.
(parse_affinity): Rewritten to construct OMP_PLACES list with unit
sized places.
(gomp_cancel_var): New global variable.
(parse_int): New function.
(handle_omp_display_env): New function.
(initialize_env): Use it. Initialize default_device_var.
Parse OMP_CANCELLATION env var. Use parse_bind_var to parse
OMP_PROC_BIND instead of parse_boolean. Use parse_places_var for
OMP_PLACES parsing. Don't call parse_affinity if OMP_PLACES has
been successfully parsed (and call gomp_init_affinity in that case).
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
omp_get_team_num, omp_is_initial_device): New functions.
* libgomp.h: Include stdlib.h.
(ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
Define.
(struct target_mem_desc): Forward declare.
(struct gomp_task_icv): Add default_device_var, target_data, bind_var
and thread_limit_var fields.
(gomp_get_num_devices): New prototype.
(gomp_cancel_var): New extern decl.
(struct gomp_team): Add work_shares_to_free, work_share_cancelled,
team_cancelled and task_queued_count fields. Add comments about
task_{,queued_,running_}count.
(gomp_cancel_kind): New enum.
(gomp_work_share_end_cancel): New prototype.
(struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
and depend fields.
(struct gomp_taskgroup): New type.
(struct gomp_task_depend_entry,
struct gomp_dependers_vec): New types.
(gomp_finish_task): Free depend_hash if non-NULL.
(struct gomp_team_state): Add place_partition_off
and place_partition_len fields.
(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
gomp_places_list_len): New extern decls.
(struct gomp_thread): Add place field.
(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
(gomp_init_thread_affinity): Add place argument.
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
gomp_affinity_init_level, gomp_affinity_print_place): New
prototypes.
(gomp_team_start): Add flags argument.
(gomp_thread_limit_var, gomp_remaining_threads_count,
gomp_remaining_threads_lock): Remove.
(gomp_managed_threads_lock): New variable.
(struct gomp_thread_pool): Add threads_busy field.
(gomp_free_thread): New prototype.
* task.c: Include hashtab.h.
(hash_entry_type): New typedef.
(htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
(gomp_init_task): Clear dependers, depend_hash, depend_count,
copy_ctors_done and taskgroup fields.
(GOMP_task): Add depend argument, handle depend clauses. If
gomp_team_barrier_cancelled or if it's taskgroup has been
cancelled, don't queue or start new tasks. Set copy_ctors_done
field if needed. Initialize taskgroup field. If copy_ctors_done
and already cancelled, don't discard the task. If taskgroup is
non-NULL, enqueue the task into taskgroup queue. Increment
num_children field in taskgroup. Increment task_queued_count.
(gomp_task_run_pre, gomp_task_run_post_remove_parent,
gomp_task_run_post_remove_taskgroup): New inline functions.
(gomp_task_run_post_handle_depend_hash,
gomp_task_run_post_handle_dependers,
gomp_task_run_post_handle_depend): New functions.
(GOMP_taskwait): Use them. If more than one new tasks
have been queued, wake other threads if needed.
(gomp_barrier_handle_tasks): Likewise. If
gomp_team_barrier_cancelled, don't start any new tasks, just free
all tasks.
(GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
* omp_lib.f90.in
(omp_proc_bind_kind, omp_proc_bind_false,
omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
omp_proc_bind_spread): New params.
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
omp_get_team_num, omp_is_initial_device): New interfaces.
(omp_get_dynamic, omp_get_nested, omp_in_parallel,
omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
omp_get_team_size, omp_get_active_level, omp_in_final): Remove
useless use omp_lib_kinds.
* omp.h.in (omp_proc_bind_t): New typedef.
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
omp_get_team_num, omp_is_initial_device): New prototypes.
* loop.c (gomp_parallel_loop_start): Add flags argument, pass it
through to gomp_team_start.
(GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
Adjust gomp_parallel_loop_start callers.
(GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
GOMP_loop_end_cancel): New functions.
(GOMP_parallel_end): Add ialias_redirect.
* hashtab.h: New file.
* libgomp.texi (Environment Variables): Minor cleanup,
update section refs to OpenMP 4.0rc2.
(OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
environment variables.
* work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
team->work_shares_to_free to thr->ts.work_share before calling
free_work_share.
(gomp_work_share_end_cancel): New function.
* config/linux/proc.c: Include errno.h.
(gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
(gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
sizeof (cpu_set_t) to determine number of iterations. Fix up check
extern decl. Use CPU_COUNT_S if available, or CPU_COUNT if
gomp_cpuset_size is sizeof (cpu_set_t).
(gomp_init_num_threads): Initialize gomp_cpuset_size,
gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
to pthread_getaffinity_np. Free and clear gomp_cpusetp if it didn't
contain any logical CPUs.
(get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
is NULL. Use gomp_cpusetp instead of &cpuset and pass
gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
pthread_getaffinity_np. Check gomp_places_list instead of
gomp_cpu_affinity. Adjust gomp_cpuset_popcount caller.
* config/linux/bar.c (gomp_barrier_wait_end,
gomp_barrier_wait_last): Use BAR_* defines.
(gomp_team_barrier_wait_end): Likewise. Clear BAR_CANCELLED
from state where needed. Set work_share_cancelled to 0 on last
thread.
(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
functions.
* config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
Add cpusetsize argument.
(gomp_cpuset_size, gomp_cpusetp): Declare.
* config/linux/affinity.c: Include errno.h, stdio.h and string.h.
(affinity_counter): Remove.
(CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
if CPU_ALLOC_SIZE isn't defined.
(gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
silently create OMP_PLACES=threads, if it is non-NULL afterwards,
bind current thread to the first place.
(gomp_init_thread_affinity): Rewritten. Add place argument, just
pthread_setaffinity_np to gomp_places_list[place].
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
gomp_affinity_init_level, gomp_affinity_print_place): New functions.
* config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
(gomp_barrier_t): Add awaited_final field.
(gomp_barrier_init): Initialize awaited_final field.
(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
prototypes.
(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. Use BAR_*
defines.
(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
gomp_team_barrier_cancelled): New inline functions.
(gomp_barrier_last_thread,
gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): Use BAR_* defines.
* config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
(gomp_barrier_wait_end): Use BAR_* defines.
(gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
Use BAR_* defines.
(gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
gomp_team_barrier_cancel): New functions.
* config/posix/affinity.c (gomp_init_thread_affinity): Add place
argument.
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
* config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
(gomp_barrier_t): Add cancellable field.
(gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
gomp_team_barrier_cancel): New prototypes.
(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
gomp_team_barrier_cancelled): New inline functions.
(gomp_barrier_wait_start, gomp_barrier_last_thread,
gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): Use BAR_* defines.
* barrier.c (GOMP_barrier_cancel): New function.
* omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
omp_proc_bind_spread): New params.
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
omp_get_team_num, omp_is_initial_device): New externals.
* parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
New functions.
(gomp_resolve_num_threads): Adjust for thread_limit now being in
icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
infinity. If not nested, just return minimum of max_num_threads
and icv->thread_limit_var and if thr->thread_pool, set threads_busy
to the returned value. Otherwise, don't update atomically
gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
(GOMP_parallel_end): Adjust for thread_limit now being in
icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
infinity. Adjust threads_busy in the pool rather than
gomp_remaining_threads_count. Remember team->nthreads and call
gomp_team_end before adjusting threads_busy, if not nested
afterwards, just set it to 1 non-atomically. Add ialias.
(GOMP_parallel_start): Adjust gomp_team_start caller.
* testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
* testsuite/libgomp.c/affinity-1.c: New test.
* testsuite/libgomp.c/atomic-15.c: New test.
* testsuite/libgomp.c/atomic-16.c: New test.
* testsuite/libgomp.c/atomic-17.c: New test.
* testsuite/libgomp.c/cancel-for-1.c: New test.
* testsuite/libgomp.c/cancel-for-2.c: New test.
* testsuite/libgomp.c/cancel-parallel-1.c: New test.
* testsuite/libgomp.c/cancel-parallel-2.c: New test.
* testsuite/libgomp.c/cancel-parallel-3.c: New test.
* testsuite/libgomp.c/cancel-sections-1.c: New test.
* testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
* testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
* testsuite/libgomp.c/depend-1.c: New test.
* testsuite/libgomp.c/depend-2.c: New test.
* testsuite/libgomp.c/depend-3.c: New test.
* testsuite/libgomp.c/depend-4.c: New test.
* testsuite/libgomp.c/for-1.c: New test.
* testsuite/libgomp.c/for-1.h: New file.
* testsuite/libgomp.c/for-2.c: New test.
* testsuite/libgomp.c/for-2.h: New file.
* testsuite/libgomp.c/for-3.c: New test.
* testsuite/libgomp.c/pr58392.c: New test.
* testsuite/libgomp.c/simd-1.c: New test.
* testsuite/libgomp.c/simd-2.c: New test.
* testsuite/libgomp.c/simd-3.c: New test.
* testsuite/libgomp.c/simd-4.c: New test.
* testsuite/libgomp.c/simd-5.c: New test.
* testsuite/libgomp.c/simd-6.c: New test.
* testsuite/libgomp.c/target-1.c: New test.
* testsuite/libgomp.c/target-2.c: New test.
* testsuite/libgomp.c/target-3.c: New test.
* testsuite/libgomp.c/target-4.c: New test.
* testsuite/libgomp.c/target-5.c: New test.
* testsuite/libgomp.c/target-6.c: New test.
* testsuite/libgomp.c/target-7.c: New test.
* testsuite/libgomp.c/taskgroup-1.c: New test.
* testsuite/libgomp.c/thread-limit-1.c: New test.
* testsuite/libgomp.c/thread-limit-2.c: New test.
* testsuite/libgomp.c/thread-limit-3.c: New test.
* testsuite/libgomp.c/udr-1.c: New test.
* testsuite/libgomp.c/udr-2.c: New test.
* testsuite/libgomp.c/udr-3.c: New test.
* testsuite/libgomp.c++/affinity-1.C: New test.
* testsuite/libgomp.c++/atomic-10.C: New test.
* testsuite/libgomp.c++/atomic-11.C: New test.
* testsuite/libgomp.c++/atomic-12.C: New test.
* testsuite/libgomp.c++/atomic-13.C: New test.
* testsuite/libgomp.c++/atomic-14.C: New test.
* testsuite/libgomp.c++/atomic-15.C: New test.
* testsuite/libgomp.c++/cancel-for-1.C: New test.
* testsuite/libgomp.c++/cancel-for-2.C: New test.
* testsuite/libgomp.c++/cancel-parallel-1.C: New test.
* testsuite/libgomp.c++/cancel-parallel-2.C: New test.
* testsuite/libgomp.c++/cancel-parallel-3.C: New test.
* testsuite/libgomp.c++/cancel-sections-1.C: New test.
* testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
* testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
* testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
* testsuite/libgomp.c++/cancel-test.h: New file.
* testsuite/libgomp.c++/for-9.C: New test.
* testsuite/libgomp.c++/for-10.C: New test.
* testsuite/libgomp.c++/for-11.C: New test.
* testsuite/libgomp.c++/simd-1.C: New test.
* testsuite/libgomp.c++/simd-2.C: New test.
* testsuite/libgomp.c++/simd-3.C: New test.
* testsuite/libgomp.c++/simd-4.C: New test.
* testsuite/libgomp.c++/simd-5.C: New test.
* testsuite/libgomp.c++/simd-6.C: New test.
* testsuite/libgomp.c++/simd-7.C: New test.
* testsuite/libgomp.c++/simd-8.C: New test.
* testsuite/libgomp.c++/target-1.C: New test.
* testsuite/libgomp.c++/target-2.C: New test.
* testsuite/libgomp.c++/target-2-aux.cc: New file.
* testsuite/libgomp.c++/target-3.C: New test.
* testsuite/libgomp.c++/taskgroup-1.C: New test.
* testsuite/libgomp.c++/udr-1.C: New test.
* testsuite/libgomp.c++/udr-2.C: New test.
* testsuite/libgomp.c++/udr-3.C: New test.
* testsuite/libgomp.c++/udr-4.C: New test.
* testsuite/libgomp.c++/udr-5.C: New test.
* testsuite/libgomp.c++/udr-6.C: New test.
* testsuite/libgomp.c++/udr-7.C: New test.
* testsuite/libgomp.c++/udr-8.C: New test.
* testsuite/libgomp.c++/udr-9.C: New test.
gcc/
* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
formatting fixes, use pp_colon instead of pp_character (..., ':'),
similarly pp_right_paren.
(dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
* tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
clauses.
(omp_declare_simd_clauses_equal,
omp_remove_redundant_declare_simd_attrs): New functions.
(attribute_value_equal): Use omp_declare_simd_clauses_equal.
(walk_tree_1): Handle new OpenMP 4.0 clauses.
* tree.h (OMP_LOOP_CHECK): Define.
(OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
(OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
OMP_CLAUSE_SIMDLEN_EXPR): Define.
(OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
(omp_remove_redundant_declare_simd_attrs): New prototype.
* gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
GIMPLE_OMP_TEAMS): New codes.
(GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
* omp-low.c (struct omp_context): Add cancel_label and cancellable
fields.
(target_nesting_level): New variable.
(extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
for collapse > 1 static schedule unless ordered.
(get_ws_args_for): Add par_stmt argument. Handle combined loops.
(determine_parallel_type): Adjust get_ws_args_for caller.
(install_var_field): Handle mask & 4 for double indirection.
(scan_sharing_clauses): Ignore shared clause on teams construct.
Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
(create_omp_child_function): If inside target or declare target
constructs, set "omp declare target" attribute on the child
function.
(find_combined_for): New function.
(scan_omp_parallel): Handle combined loops.
(scan_omp_target, scan_omp_teams): New functions.
(check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
restrictions and set ctx->cancellable for cancellable constructs.
(scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
(build_omp_barrier): Add lhs argument, return gimple rather than
tree.
(omp_clause_aligned_alignment): New function.
(lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR
on decls.
(lower_rec_input_clauses): Add FD argument. Ignore shared clauses
on teams constructs. Handle user defined reductions and new
OpenMP 4.0 clauses.
(lower_reduction_clauses): Don't set placeholder to address of ref
if it has already the right type.
(lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
(expand_parallel_call): Use the new non-_start suffixed builtins,
handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
and GOMP_parallel_end after the call.
(expand_task_call): Handle OMP_CLAUSE_DEPEND.
(expand_omp_for_init_counts): Handle combined loops.
(expand_omp_for_init_vars): Add inner_stmt argument, handle combined
loops.
(expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
end of cancellable loops.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
Likewise. Handle collapse > 1 loops.
(expand_omp_simd): Handle combined loops.
(expand_omp_for): Add inner_stmt argument, adjust callers of
expand_omp_for* functions, use expand_omp_for_static*chunk even
for collapse > 1 unless ordered.
(expand_omp_sections): Use GOMP_sections_end_cancel at the end
of cancellable sections.
(expand_omp_single): Remove need_barrier variable, just rely on
gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
(expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
(expand_omp_atomic_load, expand_omp_atomic_store,
expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
(expand_omp_target): New function.
(expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
(build_omp_regions_1): Immediately close region for
GF_OMP_TARGET_KIND_UPDATE.
(maybe_add_implicit_barrier_cancel): New function.
(lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
cancellation.
(lower_omp_single): Likewise. Add clobber after the barrier.
(lower_omp_taskgroup): New function.
(lower_omp_for): Handle combined loops. Adjust
lower_rec_input_clauses caller. Handle cancellation.
(lower_depend_clauses): New function.
(lower_omp_taskreg): Lower depend clauses. Adjust
lower_rec_input_clauses caller. Add clobber after the call. Handle
cancellation.
(lower_omp_target, lower_omp_teams): New functions.
(lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
and GOMP_cancellation_point calls.
(lower_omp): Fold stmts inside of target region.
(diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
* builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
(BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
(BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
BUILT_IN_GOMP_PARALLEL_END.
* gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
* gimple-pretty-print.c (dump_gimple_omp_for): Handle
GF_OMP_FOR_KIND_DISTRIBUTE.
(dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
(dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
(dump_gimple_omp_return): Print lhs if it has any.
(dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
gimple_omp_atomic_seq_cst_p.
(pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
and GIMPLE_OMP_TEAMS.
* langhooks.c (lhd_omp_mappable_type): New function.
* tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
* langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
hook.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
(enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and
ORT_TARGET.
(struct gimplify_omp_ctx): Add combined_loop field.
(gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
on stmts inside of target region.
(is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
(omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
ORT_TARGET and ORT_TARGET_DATA.
(omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
Handle GOVD_MAP.
(omp_notice_threadprivate_variable): Complain about threadprivate
variables in target region.
(omp_notice_variable): Complain about vars with non-mappable type
in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
(omp_check_private): Ignore ORT_TARGET* regions.
(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
(find_combined_omp_for): New function.
(gimplify_omp_for): Handle gimplification of combined loops.
(gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
OMP_TEAMS.
(gimplify_omp_target_update): New function.
(gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
(gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
(gimplify_body): If fndecl has "omp declare target" attribute, add
implicit ORT_TARGET context around it.
* tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
* tree-nested.c (convert_nonlocal_reference_stmt,
convert_local_reference_stmt, convert_gimple_call): Handle
GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
* omp-builtins.def (BUILT_IN_GOMP_TASK): Use
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
(BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
BUILT_IN_GOMP_LOOP_END_CANCEL,
BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
(BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
* tree-inline.c (remap_gimple_stmt, estimate_num_insns):
Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
* gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
gimple_build_omp_teams): New functions.
(walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
(walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
* gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
GF_OMP_ATOMIC_SEQ_CST): New.
(gimple_build_omp_taskgroup, gimple_build_omp_target,
gimple_build_omp_teams): New prototypes.
(gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
(gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
GIMPLE_OMP_SINGLE as end of range.
(gimple_omp_return_set_lhs, gimple_omp_return_lhs,
gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
gimple_omp_target_kind, gimple_omp_target_set_kind,
gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
gimple_omp_teams_set_clauses): New inlines.
(CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
and GIMPLE_OMP_TASKGROUP.
* tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause
codes.
(enum omp_clause_depend_kind, enum omp_clause_map_kind,
enum omp_clause_proc_bind_kind): New.
(union omp_clause_subcode): Add depend_kind, map_kind and
proc_bind_kind fields.
* tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
* langhooks-def.h (lhd_omp_mappable_type): New prototype.
(LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
gcc/c-family/
* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP to
201307 instead of 201107.
* c-common.c (DEF_FUNCTION_TYPE_8): Define.
(c_common_attribute_table): Add "omp declare target" and
"omp declare simd" attributes.
(handle_omp_declare_target_attribute,
handle_omp_declare_simd_attribute): New functions.
* c-omp.c: Include c-pragma.h.
(c_finish_omp_taskgroup): New function.
(c_finish_omp_atomic): Add swapped argument, if true,
build the operation first with rhs, lhs arguments and use NOP_EXPR
build_modify_expr.
(c_finish_omp_for): Add code argument, pass it down to make_code.
(c_omp_split_clauses): New function.
(c_split_parallel_clauses): Removed.
(c_omp_declare_simd_clause_cmp, c_omp_declare_simd_clauses_to_numbers,
c_omp_declare_simd_clauses_to_decls): New functions.
* c-common.h (omp_clause_mask): New type.
(OMP_CLAUSE_MASK_1): Define.
(omp_clause_mask::omp_clause_mask, omp_clause_mask::operator &=,
omp_clause_mask::operator |=, omp_clause_mask::operator ~,
omp_clause_mask::operator |, omp_clause_mask::operator &,
omp_clause_mask::operator <<, omp_clause_mask::operator >>,
omp_clause_mask::operator ==): New methods.
(enum c_omp_clause_split): New.
(c_finish_omp_taskgroup): New prototype.
(c_finish_omp_atomic): Add swapped argument.
(c_finish_omp_for): Add code argument.
(c_omp_split_clauses): New prototype.
(c_split_parallel_clauses): Removed.
(c_omp_declare_simd_clauses_to_numbers,
c_omp_declare_simd_clauses_to_decls): New prototypes.
* c-pragma.c (omp_pragmas): Add new OpenMP 4.0 constructs.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_CANCEL,
PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_SIMD,
PRAGMA_OMP_TARGET, PRAGMA_OMP_TASKGROUP and PRAGMA_OMP_TEAMS.
Remove PRAGMA_OMP_PARALLEL_FOR and PRAGMA_OMP_PARALLEL_SECTIONS.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALIGNED,
PRAGMA_OMP_CLAUSE_DEPEND, PRAGMA_OMP_CLAUSE_DEVICE,
PRAGMA_OMP_CLAUSE_DIST_SCHEDULE, PRAGMA_OMP_CLAUSE_FOR,
PRAGMA_OMP_CLAUSE_FROM, PRAGMA_OMP_CLAUSE_INBRANCH,
PRAGMA_OMP_CLAUSE_LINEAR, PRAGMA_OMP_CLAUSE_MAP,
PRAGMA_OMP_CLAUSE_NOTINBRANCH, PRAGMA_OMP_CLAUSE_NUM_TEAMS,
PRAGMA_OMP_CLAUSE_PARALLEL, PRAGMA_OMP_CLAUSE_PROC_BIND,
PRAGMA_OMP_CLAUSE_SAFELEN, PRAGMA_OMP_CLAUSE_SECTIONS,
PRAGMA_OMP_CLAUSE_SIMDLEN, PRAGMA_OMP_CLAUSE_TASKGROUP,
PRAGMA_OMP_CLAUSE_THREAD_LIMIT, PRAGMA_OMP_CLAUSE_TO and
PRAGMA_OMP_CLAUSE_UNIFORM.
gcc/ada/
* gcc-interface/utils.c (DEF_FUNCTION_TYPE_8): Define.
gcc/fortran/
* trans-openmp.c (gfc_omp_clause_default_ctor,
gfc_omp_clause_dtor): Return NULL for OMP_CLAUSE_REDUCTION.
* f95-lang.c (ATTR_NULL, DEF_FUNCTION_TYPE_8): Define.
* types.def (DEF_FUNCTION_TYPE_8): Document.
(BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
(BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
gcc/lto/
* lto-lang.c (DEF_FUNCTION_TYPE_8): Define.
gcc/c/
* c-lang.h (current_omp_declare_target_attribute): New extern
decl.
* c-parser.c: Include c-lang.h.
(struct c_parser): Change tokens to c_token *.
Add tokens_buf field. Change tokens_avail type to unsigned int.
(c_parser_consume_token): If parser->tokens isn't
&parser->tokens_buf[0], increment parser->tokens.
(c_parser_consume_pragma): Likewise.
(enum pragma_context): Add pragma_struct and pragma_param.
(c_parser_external_declaration): Adjust
c_parser_declaration_or_fndef caller.
(c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
Adjust recursive call.
(c_parser_struct_or_union_specifier): Use pragma_struct instead
of pragma_external.
(c_parser_parameter_declaration): Use pragma_param instead of
pragma_external.
(c_parser_compound_statement_nostart, c_parser_label,
c_parser_for_statement): Adjust
c_parser_declaration_or_fndef callers.
(c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
it through to c_parser_conditional_expression.
(c_parser_conditional_expression): Add omp_atomic_lhs argument,
pass it through to c_parser_binary_expression. Adjust recursive
call.
(c_parser_binary_expression): Remove prec argument, add
omp_atomic_lhs argument instead. Always start from PREC_NONE, if
omp_atomic_lhs is non-NULL and one of the arguments of toplevel
binop matches it, use build2 instead of parser_build_binary_op.
(c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
Handle pragma_struct and pragma_param the same as pragma_external.
(c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
(c_parser_omp_variable_list): Parse array sections for
OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
(c_parser_omp_clause_collapse): Fully fold collapse expression.
(c_parser_omp_clause_reduction): Handle user defined reductions.
(c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
c_parser_omp_clause_depend, c_parser_omp_clause_map,
c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
(c_parser_omp_all_clauses): Add finish_p argument. Don't call
c_finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
(c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
present to c_finish_omp_atomic. Handle OpenMP 4.0 atomic forms.
(c_parser_omp_for_loop): Add CODE argument, pass it through
to c_finish_omp_for. Change last argument to cclauses,
and adjust uses to grab parallel clauses from the array of all
the split clauses. Adjust c_parser_binary_expression,
c_parser_declaration_or_fndef and c_finish_omp_for callers.
(omp_split_clauses): New function.
(c_parser_omp_simd): New function.
(c_parser_omp_for): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs,
and call c_parser_omp_simd when parsing for simd.
(c_parser_omp_sections_scope): If section-sequence doesn't start with
#pragma omp section, require exactly one structured-block instead of
sequence of statements.
(c_parser_omp_sections): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs.
(c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined
constructs.
(c_parser_omp_taskgroup, c_parser_omp_cancel,
c_parser_omp_cancellation_point, c_parser_omp_distribute,
c_parser_omp_teams, c_parser_omp_target_data,
c_parser_omp_target_update, c_parser_omp_target,
c_parser_omp_declare_simd, c_finish_omp_declare_simd,
c_parser_omp_declare_target, c_parser_omp_end_declare_target,
c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
(c_parser_omp_construct): Add p_name and mask vars. Handle
PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
PRAGMA_OMP_TEAMS. Adjust c_parser_omp_for, c_parser_omp_parallel
and c_parser_omp_sections callers.
(c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
(OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
(OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
OMP_CLAUSE_DEPEND.
(OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
* c-typeck.c: Include tree-inline.h.
(c_finish_omp_cancel, c_finish_omp_cancellation_point,
handle_omp_array_sections_1, handle_omp_array_sections,
c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
(c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
user defined reductions.
(c_tree_equal): New function.
* c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
c_check_omp_declare_reduction_r): New prototypes.
* c-decl.c (current_omp_declare_target_attribute): New variable.
(c_decl_attributes): New function.
(start_decl, start_function): Use it instead of decl_attributes.
(temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
c_omp_reduction_decl, c_omp_reduction_lookup,
c_check_omp_declare_reduction_r): New functions.
gcc/cp/
* decl.c (duplicate_decls): Error out for redeclaration of UDRs.
(declare_simd_adjust_this): New function.
(grokfndecl): If "omp declare simd" attribute is present,
call declare_simd_adjust_this if needed and
c_omp_declare_simd_clauses_to_numbers.
* cp-array-notation.c (expand_array_notation_exprs): Handle
OMP_TASKGROUP.
* cp-gimplify.c (cp_gimplify_expr): Handle OMP_SIMD and
OMP_DISTRIBUTE. Handle is_invisiref_parm decls in
OMP_CLAUSE_REDUCTION.
(cp_genericize_r): Handle OMP_SIMD and OMP_DISTRIBUTE like
OMP_FOR.
(cxx_omp_privatize_by_reference): Return true for
is_invisiref_parm decls.
(cxx_omp_finish_clause): Adjust cxx_omp_create_clause_info
caller.
* pt.c (apply_late_template_attributes): For "omp declare simd"
attribute call tsubst_omp_clauses,
c_omp_declare_simd_clauses_to_decls, finish_omp_clauses
and c_omp_declare_simd_clauses_to_numbers.
(instantiate_class_template_1): Call cp_check_omp_declare_reduction
for UDRs.
(tsubst_decl): Handle UDRs.
(tsubst_omp_clauses): Add declare_simd argument, if true don't
call finish_omp_clauses. Handle new OpenMP 4.0 clauses.
Handle non-NULL OMP_CLAUSE_REDUCTION_PLACEHOLDER on
OMP_CLAUSE_REDUCTION.
(tsubst_expr): For UDRs call pushdecl and
cp_check_omp_declare_reduction. Adjust tsubst_omp_clauses
callers. Handle OMP_SIMD, OMP_DISTRIBUTE, OMP_TEAMS,
OMP_TARGET_DATA, OMP_TARGET_UPDATE, OMP_TARGET, OMP_TASKGROUP.
Adjust finish_omp_atomic caller.
(tsubst_omp_udr): New function.
(instantiate_decl): For UDRs at block scope, don't call
start_preparsed_function/finish_function. Call tsubst_omp_udr.
* semantics.c (cxx_omp_create_clause_info): Add need_dtor argument,
use it instead of need_default_ctor || need_copy_ctor.
(struct cp_check_omp_declare_reduction_data): New type.
(handle_omp_array_sections_1, handle_omp_array_sections,
omp_reduction_id, omp_reduction_lookup,
cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction_r,
cp_check_omp_declare_reduction, clone_omp_udr,
find_omp_placeholder_r, finish_omp_reduction_clause): New functions.
(finish_omp_clauses): Handle new OpenMP 4.0 clauses and user defined
reductions.
(finish_omp_for): Add CODE argument, use it instead of hardcoded
OMP_FOR. Adjust c_finish_omp_for caller.
(finish_omp_atomic): Add seq_cst argument, adjust
c_finish_omp_atomic callers, handle seq_cst and new OpenMP 4.0
atomic variants.
(finish_omp_cancel, finish_omp_cancellation_point): New functions.
* decl2.c (mark_used): Force immediate instantiation of
DECL_OMP_DECLARE_REDUCTION_P decls.
(is_late_template_attribute): Return true for "omp declare simd"
attribute.
(cp_omp_mappable_type): New function.
(cplus_decl_attributes): Add implicit "omp declare target" attribute
if requested.
* parser.c (cp_debug_parser): Print
parser->colon_doesnt_start_class_def_p.
(cp_ensure_no_omp_declare_simd, cp_finalize_omp_declare_simd): New
functions.
(enum pragma_context): Add pragma_member and pragma_objc_icode.
(cp_parser_binary_expression): Handle no_toplevel_fold_p
even for binary operations other than comparison.
(cp_parser_linkage_specification): Call
cp_ensure_no_omp_declare_simd if needed.
(cp_parser_namespace_definition): Likewise.
(cp_parser_init_declarator): Call cp_finalize_omp_declare_simd.
(cp_parser_direct_declarator): Pass declarator to
cp_parser_late_return_type_opt.
(cp_parser_late_return_type_opt): Add declarator argument,
call cp_parser_late_parsing_omp_declare_simd for declare simd.
(cp_parser_class_specifier_1): Call cp_ensure_no_omp_declare_simd.
Parse UDRs before all other methods.
(cp_parser_member_specification_opt): Use pragma_member instead of
pragma_external.
(cp_parser_member_declaration): Call cp_finalize_omp_declare_simd.
(cp_parser_function_definition_from_specifiers_and_declarator,
cp_parser_save_member_function_body): Likewise.
(cp_parser_late_parsing_for_member): Handle UDRs specially.
(cp_parser_next_token_starts_class_definition_p): Don't allow
CPP_COLON if colon_doesnt_start_class_def_p flag is true.
(cp_parser_objc_interstitial_code): Use pragma_objc_icode
instead of pragma_external.
(cp_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
(cp_parser_omp_var_list_no_open): Parse array sections for
OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses. Add COLON argument,
if non-NULL, allow parsing to end with a colon rather than close
paren.
(cp_parser_omp_var_list): Adjust cp_parser_omp_var_list_no_open
caller.
(cp_parser_omp_clause_reduction): Handle user defined reductions.
(cp_parser_omp_clause_branch, cp_parser_omp_clause_cancelkind,
cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
cp_parser_omp_clause_aligned, cp_parser_omp_clause_linear,
cp_parser_omp_clause_safelen, cp_parser_omp_clause_simdlen,
cp_parser_omp_clause_depend, cp_parser_omp_clause_map,
cp_parser_omp_clause_device, cp_parser_omp_clause_dist_schedule,
cp_parser_omp_clause_proc_bind, cp_parser_omp_clause_to,
cp_parser_omp_clause_from, cp_parser_omp_clause_uniform): New
functions.
(cp_parser_omp_all_clauses): Add finish_p argument. Don't call
finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses.
(cp_parser_omp_atomic): Parse seq_cst clause, pass
true if it is present to finish_omp_atomic. Handle new OpenMP 4.0
atomic forms.
(cp_parser_omp_for_loop): Add CODE argument, pass it through
to finish_omp_for. Change last argument to cclauses,
and adjust uses to grab parallel clauses from the array of all
the split clauses.
(cp_omp_split_clauses): New function.
(cp_parser_omp_simd): New function.
(cp_parser_omp_for): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs,
and call c_parser_omp_simd when parsing for simd.
(cp_parser_omp_sections_scope): If section-sequence doesn't start with
#pragma omp section, require exactly one structured-block instead of
sequence of statements.
(cp_parser_omp_sections): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined constructs.
(cp_parser_omp_parallel): Add p_name, mask and cclauses arguments.
Allow the function to be called also when parsing combined
constructs.
(cp_parser_omp_taskgroup, cp_parser_omp_cancel,
cp_parser_omp_cancellation_point, cp_parser_omp_distribute,
cp_parser_omp_teams, cp_parser_omp_target_data,
cp_parser_omp_target_update, cp_parser_omp_target,
cp_parser_omp_declare_simd, cp_parser_late_parsing_omp_declare_simd,
cp_parser_omp_declare_target, cp_parser_omp_end_declare_target,
cp_parser_omp_declare_reduction_exprs, cp_parser_omp_declare_reduction,
cp_parser_omp_declare): New functions.
(cp_parser_omp_construct): Add p_name and mask vars. Handle
PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
PRAGMA_OMP_TEAMS. Adjust cp_parser_omp_for, cp_parser_omp_parallel
and cp_parser_omp_sections callers.
(cp_parser_pragma): Handle PRAGMA_OMP_CANCEL,
PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
PRAGMA_OMP_TEAMS, PRAGMA_OMP_TARGET, PRAGMA_OMP_END_DECLARE_TARGET.
Handle pragma_member and pragma_objc_icode like pragma_external.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
(OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND.
(OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add
OMP_CLAUSE_DEPEND.
(OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
* parser.h (struct cp_omp_declare_simd_data): New type.
(struct cp_parser): Add colon_doesnt_start_class_def_p and
omp_declare_simd fields.
* cp-objcp-common.h (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
* cp-tree.h (struct lang_decl_fn): Add omp_declare_reduction_p
bit.
(DECL_OMP_DECLARE_REDUCTION_P): Define.
(OMP_FOR_GIMPLIFYING_P): Use OMP_LOOP_CHECK macro.
(struct saved_scope): Add omp_declare_target_attribute field.
(cp_omp_mappable_type, omp_reduction_id,
cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction,
finish_omp_cancel, finish_omp_cancellation_point): New prototypes.
(finish_omp_for): Add CODE argument.
(finish_omp_atomic): Add seq_cst argument.
(cxx_omp_create_clause_info): Add need_dtor argument.
gcc/testsuite/
* c-c++-common/gomp/atomic-15.c: Adjust for C diagnostics.
Remove error test that is now valid in OpenMP 4.0.
* c-c++-common/gomp/atomic-16.c: New test.
* c-c++-common/gomp/cancel-1.c: New test.
* c-c++-common/gomp/depend-1.c: New test.
* c-c++-common/gomp/depend-2.c: New test.
* c-c++-common/gomp/map-1.c: New test.
* c-c++-common/gomp/pr58472.c: New test.
* c-c++-common/gomp/sections1.c: New test.
* c-c++-common/gomp/simd1.c: New test.
* c-c++-common/gomp/simd2.c: New test.
* c-c++-common/gomp/simd3.c: New test.
* c-c++-common/gomp/simd4.c: New test.
* c-c++-common/gomp/simd5.c: New test.
* c-c++-common/gomp/single1.c: New test.
* g++.dg/gomp/block-0.C: Adjust for stricter #pragma omp sections
parser.
* g++.dg/gomp/block-3.C: Likewise.
* g++.dg/gomp/clause-3.C: Adjust error messages.
* g++.dg/gomp/declare-simd-1.C: New test.
* g++.dg/gomp/declare-simd-2.C: New test.
* g++.dg/gomp/depend-1.C: New test.
* g++.dg/gomp/depend-2.C: New test.
* g++.dg/gomp/target-1.C: New test.
* g++.dg/gomp/target-2.C: New test.
* g++.dg/gomp/taskgroup-1.C: New test.
* g++.dg/gomp/teams-1.C: New test.
* g++.dg/gomp/udr-1.C: New test.
* g++.dg/gomp/udr-2.C: New test.
* g++.dg/gomp/udr-3.C: New test.
* g++.dg/gomp/udr-4.C: New test.
* g++.dg/gomp/udr-5.C: New test.
* g++.dg/gomp/udr-6.C: New test.
* gcc.dg/autopar/outer-1.c: Expect 4 instead of 5 loopfn matches.
* gcc.dg/autopar/outer-2.c: Likewise.
* gcc.dg/autopar/outer-3.c: Likewise.
* gcc.dg/autopar/outer-4.c: Likewise.
* gcc.dg/autopar/outer-5.c: Likewise.
* gcc.dg/autopar/outer-6.c: Likewise.
* gcc.dg/autopar/parallelization-1.c: Likewise.
* gcc.dg/gomp/block-3.c: Adjust for stricter #pragma omp sections
parser.
* gcc.dg/gomp/clause-1.c: Adjust error messages.
* gcc.dg/gomp/combined-1.c: Look for GOMP_parallel_loop_runtime
instead of GOMP_parallel_loop_runtime_start.
* gcc.dg/gomp/declare-simd-1.c: New test.
* gcc.dg/gomp/declare-simd-2.c: New test.
* gcc.dg/gomp/nesting-1.c: Adjust for stricter #pragma omp sections
parser. Add further #pragma omp sections nesting tests.
* gcc.dg/gomp/target-1.c: New test.
* gcc.dg/gomp/target-2.c: New test.
* gcc.dg/gomp/taskgroup-1.c: New test.
* gcc.dg/gomp/teams-1.c: New test.
* gcc.dg/gomp/udr-1.c: New test.
* gcc.dg/gomp/udr-2.c: New test.
* gcc.dg/gomp/udr-3.c: New test.
* gcc.dg/gomp/udr-4.c: New test.
* gfortran.dg/gomp/appendix-a/a.35.5.f90: Add dg-error.
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r203408
2013-10-11 11:26:50 +02:00
|
|
|
|
2013-10-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* target.c: New file.
|
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add target.c.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* libgomp_g.h (GOMP_task): Add depend argument.
|
|
|
|
|
(GOMP_barrier_cancel, GOMP_loop_end_cancel,
|
|
|
|
|
GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
|
|
|
|
|
GOMP_target_end_data, GOMP_target_update, GOMP_teams,
|
|
|
|
|
GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
|
|
|
|
|
GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
|
|
|
|
|
GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
|
|
|
|
|
GOMP_taskgroup_start, GOMP_taskgroup_end,
|
|
|
|
|
GOMP_parallel_sections): New prototypes.
|
|
|
|
|
* fortran.c (omp_is_initial_device): Add ialias_redirect.
|
|
|
|
|
(omp_is_initial_device_): New function.
|
|
|
|
|
(ULP, STR1, STR2, ialias_redirect): Removed.
|
|
|
|
|
(omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
|
|
|
|
|
omp_set_default_device_8_, omp_get_default_device_,
|
|
|
|
|
omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
|
|
|
|
|
functions.
|
|
|
|
|
* libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
|
|
|
|
|
GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
|
|
|
|
|
GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
|
|
|
|
|
@@GOMP_4.0.
|
|
|
|
|
(omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
|
|
|
|
|
omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
|
|
|
|
|
omp_set_default_device, omp_set_default_device_,
|
|
|
|
|
omp_set_default_device_8_, omp_get_default_device,
|
|
|
|
|
omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
|
|
|
|
|
omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
|
|
|
|
|
omp_get_team_num_): Export @@OMP_4.0.
|
|
|
|
|
* team.c (struct gomp_thread_start_data): Add place field.
|
|
|
|
|
(gomp_thread_start): Clear thr->thread_pool and
|
|
|
|
|
thr->task before returning. Use gomp_team_barrier_wait_final
|
|
|
|
|
instead of gomp_team_barrier_wait. Initialize thr->place.
|
|
|
|
|
(gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
|
|
|
|
|
team_cancelled and task_queued_count fields.
|
|
|
|
|
(gomp_free_pool_helper): Clear thr->thread_pool and thr->task
|
|
|
|
|
before calling pthread_exit.
|
|
|
|
|
(gomp_free_thread): No longer static. Use
|
|
|
|
|
gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
|
|
|
|
|
(gomp_team_start): Add flags argument. Set
|
|
|
|
|
thr->thread_pool->threads_busy to nthreads immediately after creating
|
|
|
|
|
new pool. Use gomp_managed_threads_lock instead of
|
|
|
|
|
gomp_remaining_threads_lock. Handle OpenMP 4.0 affinity.
|
|
|
|
|
(gomp_team_end): Use gomp_managed_threads_lock instead of
|
|
|
|
|
gomp_remaining_threads_lock. Use gomp_team_barrier_wait_final instead
|
|
|
|
|
of gomp_team_barrier_wait. If team->team_cancelled, call
|
|
|
|
|
gomp_fini_worshare on ws chain starting at team->work_shares_to_free
|
|
|
|
|
rather than thr->ts.work_share.
|
|
|
|
|
(initialize_team): Don't call gomp_sem_init here.
|
|
|
|
|
* sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
|
|
|
|
|
caller.
|
|
|
|
|
(GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
|
|
|
|
|
* env.c (gomp_global_icv): Add default_device_var, target_data and
|
|
|
|
|
bind_var initializers.
|
|
|
|
|
(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
|
|
|
|
|
(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
|
|
|
|
|
gomp_places_list_len): New variables.
|
|
|
|
|
(parse_bind_var, parse_one_place, parse_places_var): New functions.
|
|
|
|
|
(parse_affinity): Rewritten to construct OMP_PLACES list with unit
|
|
|
|
|
sized places.
|
|
|
|
|
(gomp_cancel_var): New global variable.
|
|
|
|
|
(parse_int): New function.
|
|
|
|
|
(handle_omp_display_env): New function.
|
|
|
|
|
(initialize_env): Use it. Initialize default_device_var.
|
|
|
|
|
Parse OMP_CANCELLATION env var. Use parse_bind_var to parse
|
|
|
|
|
OMP_PROC_BIND instead of parse_boolean. Use parse_places_var for
|
|
|
|
|
OMP_PLACES parsing. Don't call parse_affinity if OMP_PLACES has
|
|
|
|
|
been successfully parsed (and call gomp_init_affinity in that case).
|
|
|
|
|
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
|
|
|
|
|
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
|
|
|
|
|
omp_get_team_num, omp_is_initial_device): New functions.
|
|
|
|
|
* libgomp.h: Include stdlib.h.
|
|
|
|
|
(ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
|
|
|
|
|
Define.
|
|
|
|
|
(struct target_mem_desc): Forward declare.
|
|
|
|
|
(struct gomp_task_icv): Add default_device_var, target_data, bind_var
|
|
|
|
|
and thread_limit_var fields.
|
|
|
|
|
(gomp_get_num_devices): New prototype.
|
|
|
|
|
(gomp_cancel_var): New extern decl.
|
|
|
|
|
(struct gomp_team): Add work_shares_to_free, work_share_cancelled,
|
|
|
|
|
team_cancelled and task_queued_count fields. Add comments about
|
|
|
|
|
task_{,queued_,running_}count.
|
|
|
|
|
(gomp_cancel_kind): New enum.
|
|
|
|
|
(gomp_work_share_end_cancel): New prototype.
|
|
|
|
|
(struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
|
|
|
|
|
copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
|
|
|
|
|
and depend fields.
|
|
|
|
|
(struct gomp_taskgroup): New type.
|
|
|
|
|
(struct gomp_task_depend_entry,
|
|
|
|
|
struct gomp_dependers_vec): New types.
|
|
|
|
|
(gomp_finish_task): Free depend_hash if non-NULL.
|
|
|
|
|
(struct gomp_team_state): Add place_partition_off
|
|
|
|
|
and place_partition_len fields.
|
|
|
|
|
(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
|
|
|
|
|
gomp_places_list_len): New extern decls.
|
|
|
|
|
(struct gomp_thread): Add place field.
|
|
|
|
|
(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
|
|
|
|
|
(gomp_init_thread_affinity): Add place argument.
|
|
|
|
|
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
|
|
|
|
|
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
|
|
|
|
|
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
|
|
|
|
|
gomp_affinity_init_level, gomp_affinity_print_place): New
|
|
|
|
|
prototypes.
|
|
|
|
|
(gomp_team_start): Add flags argument.
|
|
|
|
|
(gomp_thread_limit_var, gomp_remaining_threads_count,
|
|
|
|
|
gomp_remaining_threads_lock): Remove.
|
|
|
|
|
(gomp_managed_threads_lock): New variable.
|
|
|
|
|
(struct gomp_thread_pool): Add threads_busy field.
|
|
|
|
|
(gomp_free_thread): New prototype.
|
|
|
|
|
* task.c: Include hashtab.h.
|
|
|
|
|
(hash_entry_type): New typedef.
|
|
|
|
|
(htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
|
|
|
|
|
(gomp_init_task): Clear dependers, depend_hash, depend_count,
|
|
|
|
|
copy_ctors_done and taskgroup fields.
|
|
|
|
|
(GOMP_task): Add depend argument, handle depend clauses. If
|
|
|
|
|
gomp_team_barrier_cancelled or if it's taskgroup has been
|
|
|
|
|
cancelled, don't queue or start new tasks. Set copy_ctors_done
|
|
|
|
|
field if needed. Initialize taskgroup field. If copy_ctors_done
|
|
|
|
|
and already cancelled, don't discard the task. If taskgroup is
|
|
|
|
|
non-NULL, enqueue the task into taskgroup queue. Increment
|
|
|
|
|
num_children field in taskgroup. Increment task_queued_count.
|
|
|
|
|
(gomp_task_run_pre, gomp_task_run_post_remove_parent,
|
|
|
|
|
gomp_task_run_post_remove_taskgroup): New inline functions.
|
|
|
|
|
(gomp_task_run_post_handle_depend_hash,
|
|
|
|
|
gomp_task_run_post_handle_dependers,
|
|
|
|
|
gomp_task_run_post_handle_depend): New functions.
|
|
|
|
|
(GOMP_taskwait): Use them. If more than one new tasks
|
|
|
|
|
have been queued, wake other threads if needed.
|
|
|
|
|
(gomp_barrier_handle_tasks): Likewise. If
|
|
|
|
|
gomp_team_barrier_cancelled, don't start any new tasks, just free
|
|
|
|
|
all tasks.
|
|
|
|
|
(GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
|
|
|
|
|
* omp_lib.f90.in
|
|
|
|
|
(omp_proc_bind_kind, omp_proc_bind_false,
|
|
|
|
|
omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
|
|
|
|
|
omp_proc_bind_spread): New params.
|
|
|
|
|
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
|
|
|
|
|
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
|
|
|
|
|
omp_get_team_num, omp_is_initial_device): New interfaces.
|
|
|
|
|
(omp_get_dynamic, omp_get_nested, omp_in_parallel,
|
|
|
|
|
omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
|
|
|
|
|
omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
|
|
|
|
|
omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
|
|
|
|
|
omp_get_team_size, omp_get_active_level, omp_in_final): Remove
|
|
|
|
|
useless use omp_lib_kinds.
|
|
|
|
|
* omp.h.in (omp_proc_bind_t): New typedef.
|
|
|
|
|
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
|
|
|
|
|
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
|
|
|
|
|
omp_get_team_num, omp_is_initial_device): New prototypes.
|
|
|
|
|
* loop.c (gomp_parallel_loop_start): Add flags argument, pass it
|
|
|
|
|
through to gomp_team_start.
|
|
|
|
|
(GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
|
|
|
|
|
GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
|
|
|
|
|
Adjust gomp_parallel_loop_start callers.
|
|
|
|
|
(GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
|
|
|
|
|
GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
|
|
|
|
|
GOMP_loop_end_cancel): New functions.
|
|
|
|
|
(GOMP_parallel_end): Add ialias_redirect.
|
|
|
|
|
* hashtab.h: New file.
|
|
|
|
|
* libgomp.texi (Environment Variables): Minor cleanup,
|
|
|
|
|
update section refs to OpenMP 4.0rc2.
|
|
|
|
|
(OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
|
|
|
|
|
environment variables.
|
|
|
|
|
* work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
|
|
|
|
|
team->work_shares_to_free to thr->ts.work_share before calling
|
|
|
|
|
free_work_share.
|
|
|
|
|
(gomp_work_share_end_cancel): New function.
|
|
|
|
|
* config/linux/proc.c: Include errno.h.
|
|
|
|
|
(gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
|
|
|
|
|
(gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
|
|
|
|
|
sizeof (cpu_set_t) to determine number of iterations. Fix up check
|
|
|
|
|
extern decl. Use CPU_COUNT_S if available, or CPU_COUNT if
|
|
|
|
|
gomp_cpuset_size is sizeof (cpu_set_t).
|
|
|
|
|
(gomp_init_num_threads): Initialize gomp_cpuset_size,
|
|
|
|
|
gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
|
|
|
|
|
of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
|
|
|
|
|
to pthread_getaffinity_np. Free and clear gomp_cpusetp if it didn't
|
|
|
|
|
contain any logical CPUs.
|
|
|
|
|
(get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
|
|
|
|
|
is NULL. Use gomp_cpusetp instead of &cpuset and pass
|
|
|
|
|
gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
|
|
|
|
|
pthread_getaffinity_np. Check gomp_places_list instead of
|
|
|
|
|
gomp_cpu_affinity. Adjust gomp_cpuset_popcount caller.
|
|
|
|
|
* config/linux/bar.c (gomp_barrier_wait_end,
|
|
|
|
|
gomp_barrier_wait_last): Use BAR_* defines.
|
|
|
|
|
(gomp_team_barrier_wait_end): Likewise. Clear BAR_CANCELLED
|
|
|
|
|
from state where needed. Set work_share_cancelled to 0 on last
|
|
|
|
|
thread.
|
|
|
|
|
(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
|
|
|
|
|
gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
|
|
|
|
|
functions.
|
|
|
|
|
* config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
|
|
|
|
|
Add cpusetsize argument.
|
|
|
|
|
(gomp_cpuset_size, gomp_cpusetp): Declare.
|
|
|
|
|
* config/linux/affinity.c: Include errno.h, stdio.h and string.h.
|
|
|
|
|
(affinity_counter): Remove.
|
|
|
|
|
(CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
|
|
|
|
|
if CPU_ALLOC_SIZE isn't defined.
|
|
|
|
|
(gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
|
|
|
|
|
silently create OMP_PLACES=threads, if it is non-NULL afterwards,
|
|
|
|
|
bind current thread to the first place.
|
|
|
|
|
(gomp_init_thread_affinity): Rewritten. Add place argument, just
|
|
|
|
|
pthread_setaffinity_np to gomp_places_list[place].
|
|
|
|
|
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
|
|
|
|
|
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
|
|
|
|
|
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
|
|
|
|
|
gomp_affinity_init_level, gomp_affinity_print_place): New functions.
|
|
|
|
|
* config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
|
|
|
|
|
BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
|
|
|
|
|
(gomp_barrier_t): Add awaited_final field.
|
|
|
|
|
(gomp_barrier_init): Initialize awaited_final field.
|
|
|
|
|
(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
|
|
|
|
|
gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
|
|
|
|
|
prototypes.
|
|
|
|
|
(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit. Use BAR_*
|
|
|
|
|
defines.
|
|
|
|
|
(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
|
|
|
|
|
gomp_team_barrier_cancelled): New inline functions.
|
|
|
|
|
(gomp_barrier_last_thread,
|
|
|
|
|
gomp_team_barrier_set_task_pending,
|
|
|
|
|
gomp_team_barrier_clear_task_pending,
|
|
|
|
|
gomp_team_barrier_set_waiting_for_tasks,
|
|
|
|
|
gomp_team_barrier_waiting_for_tasks,
|
|
|
|
|
gomp_team_barrier_done): Use BAR_* defines.
|
|
|
|
|
* config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
|
|
|
|
|
(gomp_barrier_wait_end): Use BAR_* defines.
|
|
|
|
|
(gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
|
|
|
|
|
Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
|
|
|
|
|
Use BAR_* defines.
|
|
|
|
|
(gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
|
|
|
|
|
gomp_team_barrier_cancel): New functions.
|
|
|
|
|
* config/posix/affinity.c (gomp_init_thread_affinity): Add place
|
|
|
|
|
argument.
|
|
|
|
|
(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
|
|
|
|
|
gomp_affinity_remove_cpu, gomp_affinity_copy_place,
|
|
|
|
|
gomp_affinity_same_place, gomp_affinity_finalize_place_list,
|
|
|
|
|
gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
|
|
|
|
|
* config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
|
|
|
|
|
BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
|
|
|
|
|
(gomp_barrier_t): Add cancellable field.
|
|
|
|
|
(gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
|
|
|
|
|
gomp_team_barrier_cancel): New prototypes.
|
|
|
|
|
(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
|
|
|
|
|
(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
|
|
|
|
|
gomp_team_barrier_cancelled): New inline functions.
|
|
|
|
|
(gomp_barrier_wait_start, gomp_barrier_last_thread,
|
|
|
|
|
gomp_team_barrier_set_task_pending,
|
|
|
|
|
gomp_team_barrier_clear_task_pending,
|
|
|
|
|
gomp_team_barrier_set_waiting_for_tasks,
|
|
|
|
|
gomp_team_barrier_waiting_for_tasks,
|
|
|
|
|
gomp_team_barrier_done): Use BAR_* defines.
|
|
|
|
|
* barrier.c (GOMP_barrier_cancel): New function.
|
|
|
|
|
* omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
|
|
|
|
|
omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
|
|
|
|
|
omp_proc_bind_spread): New params.
|
|
|
|
|
(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
|
|
|
|
|
omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
|
|
|
|
|
omp_get_team_num, omp_is_initial_device): New externals.
|
|
|
|
|
* parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
|
|
|
|
|
New functions.
|
|
|
|
|
(gomp_resolve_num_threads): Adjust for thread_limit now being in
|
|
|
|
|
icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
|
|
|
|
|
infinity. If not nested, just return minimum of max_num_threads
|
|
|
|
|
and icv->thread_limit_var and if thr->thread_pool, set threads_busy
|
|
|
|
|
to the returned value. Otherwise, don't update atomically
|
|
|
|
|
gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
|
|
|
|
|
(GOMP_parallel_end): Adjust for thread_limit now being in
|
|
|
|
|
icv->thread_limit_var. Use UINT_MAX instead of ULONG_MAX as
|
|
|
|
|
infinity. Adjust threads_busy in the pool rather than
|
|
|
|
|
gomp_remaining_threads_count. Remember team->nthreads and call
|
|
|
|
|
gomp_team_end before adjusting threads_busy, if not nested
|
|
|
|
|
afterwards, just set it to 1 non-atomically. Add ialias.
|
|
|
|
|
(GOMP_parallel_start): Adjust gomp_team_start caller.
|
|
|
|
|
* testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
|
|
|
|
|
* testsuite/libgomp.c/affinity-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/atomic-15.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/atomic-16.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/atomic-17.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/cancel-for-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/cancel-for-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/cancel-parallel-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/cancel-parallel-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/cancel-parallel-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/cancel-sections-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/depend-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/depend-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/depend-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/depend-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/for-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/for-1.h: New file.
|
|
|
|
|
* testsuite/libgomp.c/for-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/for-2.h: New file.
|
|
|
|
|
* testsuite/libgomp.c/for-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr58392.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/simd-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/target-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/taskgroup-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/thread-limit-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/thread-limit-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/thread-limit-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/udr-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/udr-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/udr-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/affinity-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-10.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-12.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-13.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-14.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-15.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-for-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-for-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-parallel-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-parallel-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-parallel-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-sections-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/cancel-test.h: New file.
|
|
|
|
|
* testsuite/libgomp.c++/for-9.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-10.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/simd-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/target-2-aux.cc: New file.
|
|
|
|
|
* testsuite/libgomp.c++/target-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/taskgroup-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/udr-9.C: New test.
|
|
|
|
|
|
2013-09-20 19:52:29 +02:00
|
|
|
|
2013-09-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/57605
|
|
|
|
|
* testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
|
|
|
|
|
ALWAYS_CFLAGS.
|
|
|
|
|
|
2013-09-20 11:47:52 +02:00
|
|
|
|
2013-09-20 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2013-09-19 13:52:52 +02:00
|
|
|
|
2013-09-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/sections-2.c: New test.
|
|
|
|
|
|
2013-06-28 14:45:57 +02:00
|
|
|
|
2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/strassen.f90:
|
|
|
|
|
Add dg-skip-if aarch64_tiny.
|
|
|
|
|
|
2013-06-20 18:48:26 +02:00
|
|
|
|
2013-06-20 Iain Sandoe <iain@codesourcery.com>
|
|
|
|
|
Cesar Philippidis <cesar@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
|
|
|
|
|
Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
|
|
|
|
|
* testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/graphite.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
|
|
|
|
|
Use dg-runtest rather than gfortran-dg-runtest.
|
|
|
|
|
|
2013-06-10 09:21:29 +02:00
|
|
|
|
2013-06-10 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/icv-2.c: Extend current handling of
|
|
|
|
|
Linux-based x86 systems to cover all GNU systems.
|
|
|
|
|
* testsuite/libgomp.c/lock-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr48591.c: Likewise.
|
|
|
|
|
|
2013-06-06 12:04:34 +02:00
|
|
|
|
2013-06-06 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2013-06-06 12:04:49 +02:00
|
|
|
|
* configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
|
|
|
|
|
GNU/Hurd, as done for Linux-based systems.
|
|
|
|
|
|
2013-06-06 12:04:34 +02:00
|
|
|
|
* config/posix/ptrlock.h: Fix comment.
|
|
|
|
|
|
re PR fortran/57423 (Incorrect keyword argument names in Fortran OpenMP procedure interfaces in omp_lib)
2013-05-27 Tobias Burnus <burnus@net-b.de>
PR fortran/57423
* libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
omp_destroy_nest_lock): Correct arguments to match the one in
the OpenMP spec.
* omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
From-SVN: r199351
2013-05-27 11:28:48 +02:00
|
|
|
|
2013-05-27 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/57423
|
|
|
|
|
* libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
|
|
|
|
|
omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
|
|
|
|
|
omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
|
|
|
|
|
omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
|
|
|
|
|
omp_destroy_nest_lock): Correct arguments to match the one in
|
|
|
|
|
the OpenMP spec.
|
|
|
|
|
* omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
|
|
|
|
|
omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
|
|
|
|
|
omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
|
|
|
|
|
omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
|
|
|
|
|
|
2013-05-16 12:43:33 +02:00
|
|
|
|
2013-05-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/loop-13.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-14.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-15.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-13.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-14.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-15.C: New test.
|
|
|
|
|
|
2013-02-06 11:34:53 +01:00
|
|
|
|
2013-02-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/56217
|
|
|
|
|
* testsuite/libgomp.c++/pr56217.C: New test.
|
|
|
|
|
|
2013-02-01 13:52:41 +01:00
|
|
|
|
2013-02-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* task.c (GOMP_task, GOMP_taskwait): Comment.
|
|
|
|
|
|
2013-01-31 17:57:09 +01:00
|
|
|
|
2013-01-31 Dmitry Vyukov <dvyukov@gcc.gnu.org>
|
|
|
|
|
Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
|
|
|
|
|
|
|
|
|
|
PR libgomp/55561
|
|
|
|
|
* config/linux/wait.h (do_spin): Use atomic load for addr.
|
|
|
|
|
* config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
|
|
|
|
|
for intptr and ptrlock.
|
|
|
|
|
* config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
|
|
|
|
|
for ptrlock.
|
|
|
|
|
|
2013-01-22 12:41:53 +01:00
|
|
|
|
2013-01-22 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/51376
|
|
|
|
|
PR libgomp/56073
|
|
|
|
|
* task.c (GOMP_task): Revert 2011-12-09 change.
|
|
|
|
|
(GOMP_taskwait): Likewise. Instead use atomic load with acquire
|
|
|
|
|
barrier to read task->children..
|
|
|
|
|
(gomp_barrier_handle_tasks): ..and matching atomic store with
|
|
|
|
|
release barrier here when setting parent->children to NULL.
|
|
|
|
|
|
2013-01-16 17:19:32 +01:00
|
|
|
|
2013-01-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR driver/55884
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Use
|
|
|
|
|
-fintrinsic-modules-path= instead of
|
|
|
|
|
-fintrinsic-modules-path.
|
|
|
|
|
|
2013-01-14 19:18:49 +01:00
|
|
|
|
2013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2012-12-19 16:53:01 +01:00
|
|
|
|
2012-12-19 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Set
|
|
|
|
|
-fintrinsic-modules-path.
|
|
|
|
|
|
2012-12-19 16:02:50 +01:00
|
|
|
|
2012-12-19 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
|
|
|
|
|
from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
|
|
|
|
|
|
2012-11-21 21:29:14 +01:00
|
|
|
|
2012-11-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/55411
|
|
|
|
|
* team.c (gomp_free_thread): Decrease gomp_managed_threads
|
|
|
|
|
if pool had any threads_used.
|
|
|
|
|
|
2012-11-08 00:12:27 +01:00
|
|
|
|
2012-11-07 Jack Howarth <howarth@bromo.med.uc.edu>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/pr24455.C: Use
|
|
|
|
|
-Wl,-undefined,dynamic_lookup on darwin.
|
|
|
|
|
|
2012-11-07 15:16:04 +01:00
|
|
|
|
2012-11-07 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
|
|
|
|
|
|
2012-10-24 11:46:06 +02:00
|
|
|
|
2012-10-24 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
|
|
|
|
|
|
2012-10-23 19:29:35 +02:00
|
|
|
|
2012-10-23 Ian Bolton <ian.bolton@arm.com>
|
|
|
|
|
Jim MacArthur <jim.macarthur@arm.com>
|
|
|
|
|
Marcus Shawcroft <marcus.shawcroft@arm.com>
|
|
|
|
|
Nigel Stephens <nigel.stephens@arm.com>
|
|
|
|
|
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
|
|
|
|
Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
Sofiane Naci <sofiane.naci@arm.com>
|
|
|
|
|
Stephen Thomas <stephen.thomas@arm.com>
|
|
|
|
|
Tejas Belagod <tejas.belagod@arm.com>
|
|
|
|
|
Yufeng Zhang <yufeng.zhang@arm.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt: Add AArch64.
|
|
|
|
|
|
2012-10-08 16:45:37 +02:00
|
|
|
|
2012-10-04 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/tls-init1.C: New.
|
|
|
|
|
|
2012-09-15 01:33:57 +02:00
|
|
|
|
2012-09-14 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2012-08-29 11:29:55 +02:00
|
|
|
|
2012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/mips/futex.h (sys_futex0): Change to static
|
|
|
|
|
function with noinline, nomips16 attributes under MIPS16. Adjust
|
|
|
|
|
asm statement to place 'li v0,SYS_futex' immediately before
|
|
|
|
|
syscall insn.
|
|
|
|
|
|
2012-07-05 04:53:03 +02:00
|
|
|
|
2012-07-04 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi (Library Index): Renamed from "Index" to prevent
|
|
|
|
|
conflict with index.html on case-insensitive file systems.
|
|
|
|
|
|
2012-07-03 09:24:10 +02:00
|
|
|
|
2012-07-03 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
|
|
|
|
|
* testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
|
|
|
|
|
|
2012-07-02 13:43:46 +02:00
|
|
|
|
2012-07-02 Richard Guenther <rguenther@suse.de>
|
2012-07-03 09:24:10 +02:00
|
|
|
|
Michael Matz <matz@suse.de>
|
|
|
|
|
Tobias Grosser <tobias@grosser.es>
|
|
|
|
|
Sebastian Pop <sebpop@gmail.com>
|
2012-07-02 13:43:46 +02:00
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
|
|
|
|
|
|
2012-06-28 11:01:38 +02:00
|
|
|
|
2012-06-28 Andreas Schwab <schwab@linux-m68k.org>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
|
|
|
|
|
|
2012-06-22 14:29:33 +02:00
|
|
|
|
2012-06-22 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Merge from graphite branch
|
|
|
|
|
2012-01-13 Tobias Grosser <tobias@grosser.es>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
|
|
|
|
|
|
re PR c/53580 (Internal Segmentation fault in nested "omp parallel", "omp parallel for" and "omp parallel for reduction" Directives)
PR middle-end/53580
* omp-low.c (scan_omp): Change first argument to
gimple_seq *, call walk_gimple_seq_mod instead of
walk_gimple_seq.
(scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
scan_omp_for, scan_omp_sections, scan_omp_single,
execute_lower_omp): Adjust callers.
(scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions
returns false, replace stmt with GIMPLE_NOP.
(check_omp_nesting_restrictions): Instead of issuing warnings,
issue errors and return false if any errors were reported.
* gcc.dg/gomp/nesting-1.c: Expect errors rather than warnings.
* gcc.dg/gomp/critical-4.c: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.1.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.3.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
* c-c++-common/gomp/pr53580.c: New test.
* testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
use GOMP_barrier () call instead.
* testsuite/libgomp.c/pr26943-3.c: Likewise.
* testsuite/libgomp.c/pr26943-4.c: Likewise.
* testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
call GOMP_barrier instead.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
From-SVN: r188298
2012-06-07 08:36:55 +02:00
|
|
|
|
2012-06-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/53580
|
|
|
|
|
* testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
|
|
|
|
|
use GOMP_barrier () call instead.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-4.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
|
|
|
|
|
call GOMP_barrier instead.
|
|
|
|
|
* testsuite/libgomp.fortran/vla5.f90: Likewise.
|
|
|
|
|
|
2012-06-06 20:31:06 +02:00
|
|
|
|
2012-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/52993
|
|
|
|
|
* config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
|
|
|
|
|
argument to memset call.
|
|
|
|
|
|
2012-05-17 00:11:18 +02:00
|
|
|
|
2012-05-16 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2012-04-11 22:15:35 +02:00
|
|
|
|
2012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
|
|
|
|
|
|
2012-03-31 23:08:22 +02:00
|
|
|
|
2012-03-31 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/52812
|
|
|
|
|
* configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
|
|
|
|
|
|
2012-03-22 20:25:36 +01:00
|
|
|
|
2012-03-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/52547
|
|
|
|
|
* testsuite/libgomp.c/pr52547.c: New test.
|
|
|
|
|
|
2012-03-16 10:51:06 +01:00
|
|
|
|
2012-03-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: load fortran-modules.exp
|
|
|
|
|
|
Remove obsolete IRIX 6.5 support
libstdc++-v3:
* configure.host (irix6.5*): Remove.
* config/os/irix: Remove.
* config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc())
[_GLIBCXX_FIONREAD_TAKES_OFF_T]: Remove.
* doc/xml/faq.xml: Remove IRIX reference.
* doc/xml/manual/using.xml (Finding Dynamic or Shared Libraries):
Remove IRIX example.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
Remove mips-sgi-irix6* handling.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/23_containers/list/pthread1.cc: Likewise.
* testsuite/23_containers/list/pthread5.cc: Likewise.
* testsuite/23_containers/map/pthread6.cc: Likewise.
* testsuite/23_containers/vector/debug/multithreaded_swap.cc: Likewise.
* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
* testsuite/30_threads/async/42819.cc: Likewise.
* testsuite/30_threads/async/49668.cc: Likewise.
* testsuite/30_threads/async/any.cc: Likewise.
* testsuite/30_threads/async/async.cc: Likewise.
* testsuite/30_threads/async/launch.cc: Likewise.
* testsuite/30_threads/async/sync.cc: Likewise.
* testsuite/30_threads/call_once/39909.cc: Likewise.
* testsuite/30_threads/call_once/49668.cc: Likewise.
* testsuite/30_threads/call_once/call_once1.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
* testsuite/30_threads/future/cons/move.cc: Likewise.
* testsuite/30_threads/future/members/45133.cc: Likewise.
* testsuite/30_threads/future/members/get.cc: Likewise.
* testsuite/30_threads/future/members/get2.cc: Likewise.
* testsuite/30_threads/future/members/share.cc: Likewise.
* testsuite/30_threads/future/members/valid.cc: Likewise.
* testsuite/30_threads/future/members/wait.cc: Likewise.
* testsuite/30_threads/future/members/wait_for.cc: Likewise.
* testsuite/30_threads/future/members/wait_until.cc: Likewise.
* testsuite/30_threads/lock/1.cc: Likewise.
* testsuite/30_threads/lock/2.cc: Likewise.
* testsuite/30_threads/lock/3.cc: Likewise.
* testsuite/30_threads/lock/4.cc: Likewise.
* testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/mutex/lock/1.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/packaged_task/49668.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
* testsuite/30_threads/promise/cons/1.cc: Likewise.
* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
* testsuite/30_threads/promise/cons/move.cc: Likewise.
* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
* testsuite/30_threads/promise/members/get_future.cc: Likewise.
* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value.cc: Likewise.
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
* testsuite/30_threads/promise/members/swap.cc: Likewise.
* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
* testsuite/30_threads/shared_future/members/get.cc: Likewise.
* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
* testsuite/30_threads/this_thread/1.cc: Likewise.
* testsuite/30_threads/this_thread/2.cc: Likewise.
* testsuite/30_threads/this_thread/3.cc: Likewise.
* testsuite/30_threads/this_thread/4.cc: Likewise.
* testsuite/30_threads/thread/cons/1.cc: Likewise.
* testsuite/30_threads/thread/cons/2.cc: Likewise.
* testsuite/30_threads/thread/cons/3.cc: Likewise.
* testsuite/30_threads/thread/cons/4.cc: Likewise.
* testsuite/30_threads/thread/cons/49668.cc: Likewise.
* testsuite/30_threads/thread/cons/5.cc: Likewise.
* testsuite/30_threads/thread/cons/6.cc: Likewise.
* testsuite/30_threads/thread/cons/7.cc: Likewise.
* testsuite/30_threads/thread/cons/8.cc: Likewise.
* testsuite/30_threads/thread/cons/9.cc: Likewise.
* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
* testsuite/30_threads/thread/members/1.cc: Likewise.
* testsuite/30_threads/thread/members/2.cc: Likewise.
* testsuite/30_threads/thread/members/3.cc: Likewise.
* testsuite/30_threads/thread/members/4.cc: Likewise.
* testsuite/30_threads/thread/members/5.cc: Likewise.
* testsuite/30_threads/thread/members/hardware_concurrency.cc: Likewise.
* testsuite/30_threads/thread/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/thread/swap/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/try_lock/1.cc: Likewise.
* testsuite/30_threads/try_lock/2.cc: Likewise.
* testsuite/30_threads/try_lock/3.cc: Likewise.
* testsuite/30_threads/try_lock/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
* testsuite/ext/rope/pthread7-rope.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc:
Likewise.
* testsuite/23_containers/vector/capacity/resize/1.cc: Remove
dg-options for mips*-*-irix6*.
* testsuite/27_io/ios_base/storage/1.cc: Likewise.
* testsuite/27_io/ios_base/storage/2.cc: Likewise.
* testsuite/27_io/ios_base/storage/3.cc: Likewise.
* testsuite/lib/libstdc++.exp (v3-build_support): Remove IRIX 6
workaround.
libjava:
* configure.ac (libgcj_cv_exidx): Remove IRIX 6 ld workaround.
(mips-sgi-irix6*): Remove.
(mips-sgi-irix*): Remove.
(AC_CHECK_HEADERS): Remove bstring.h.
* configure: Regenerate.
* include/config.h.in: Regenerate.
* configure.host (mips-sgi-irix6*): Remove.
* include/posix-signal.h [__sgi__]: Remove.
* gnu/java/net/natPlainDatagramSocketImplPosix.cc
[HAVE_BSTRING_H]: Remove.
* gnu/java/net/natPlainDatagramSocketImplWin32.cc: Likewise.
* gnu/java/net/natPlainSocketImplPosix.cc: Likewise.
libitm:
* configure.tgt (*-*-irix6*): Remove.
libgomp:
* configure.tgt (mips-sgi-irix6*): Remove.
libgfortran:
* intrinsics/c99_functions.c [__sgi__ && !HAVE_COMPLEX_H]: Remove.
libgcc:
* config.host (mips-sgi-irix6.5*): Remove.
* config/mips/irix-crti.S: Remove.
* config/mips/irix-crtn.S: Remove.
* config/mips/irix6-unwind.h: Remove.
* config/mips/t-irix6: Remove.
* config/mips/t-slibgcc-irix: Remove.
gnattools:
* configure.ac (mips-sgi-irix*): Remove.
* configure: Regenerate.
gcc/testsuite:
* g++.dg/other/anon5.C: Don't skip on mips-sgi-irix*.
* g++.dg/tree-prof/partition1.C: Likewise.
* g++.dg/tree-prof/partition2.C: Likewise.
* g++.old-deja/g++.other/init19.C: Remove mips-sgi-irix*
handling.
* gcc.c-torture/compile/labels-3.c: Remove dg-options.
* gcc.c-torture/execute/20010724-1.c: Remove.
* gcc.c-torture/execute/20010724-1.x: Remove.
* gcc.c-torture/execute/20040208-2.c: Remove.
* gcc.c-torture/execute/20040208-2.x: Remove.
* gcc.c-torture/execute/ieee/20000320-1.c [__mips__ && __sgi__]:
Remove.
(main) [__mips__ && __sgi__]: Remove.
* gcc.c-torture/execute/ieee/copysign1.c: Remove IRIX reference.
* gcc.c-torture/execute/ieee/copysign2.c: Likewise.
* gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: Remove
mips-sgi-irix6* handling.
* gcc.dg/cpp/assert4.c [__mips__]: Remove __sgi__, sgi.
* gcc.dg/torture/20090618-1.c: Don't skip on mips-sgi-irix*.
* gcc.dg/torture/builtin-frexp-1.c: Remove mips*-*-irix6*
handling.
* gcc.dg/torture/builtin-logb-1.c: Likewise.
* gcc.dg/torture/pr47917.c: Remove mips-sgi-irix6.5 handling.
* gcc.dg/tree-ssa/ssa-store-ccp-3.c: Don't skip on mips*-*-irix*.
* gcc.misc-tests/linkage.exp: Remove mips-sgi-irix6* handling.
* gcc.target/mips/args-1.c [!__sgi__]: Remove.
* gcc.target/mips/interrupt_handler-2.c: Don't skip on
mips-sgi-irix6*.
* gcc.target/mips/interrupt_handler-3.c: Likewise.
* gcc.target/mips/save-restore-1.c: Don't skip on mips-sgi-irix6*.
* gcc.target/mips/save-restore-3.c: Likewise.
* gcc.target/mips/save-restore-4.c: Likewise.
* gcc.target/mips/save-restore-5.c: Likewise.
* gfortran.dg/g77/cabs.f: Don't xfail on mips-sgi-irix6*.
* lib/prune.exp (prune_gcc_output): Remove pruning of IRIX 6 ld
messages.
* lib/target-libpath.exp (set_ld_library_path_env_vars): Remove
IRIX 6 handling.
(restore_ld_library_path_env_vars): Likewise.
* lib/target-supports.exp (check_profiling_available): Remove
mips*-*-irix* handling.
(check_ascii_locale_available): Remove mips-sgi-irix* handling.
(add_options_for_c99_runtime): Remove mips-sgi-irix6.5* handling.
* objc.dg/stabs-1.m: Don't xfail on mips-sgi-irix6.5.
gcc/ada:
* gcc-interface/Makefile.in (mips-sgi-irix6*): Remove.
* a-intnam-irix.ads, mlib-tgt-specific-irix.adb,
s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb,
s-osinte-irix.ads, s-proinf-irix-athread.adb,
s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads,
system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads:
Remove.
* adaint.c [__mips && __sgi]: Remove.
(__gnat_number_of_cpus) [__mips && __sgi]: Remove.
[IS_CROSS && !(__mips && __sgi)]: Remove.
* adaint.h [sgi && _LFAPI]: Remove.
* cstreams.c (__gnat_full_name) [sgi]: Remove.
* env.c (__gnat_unsetenv) [__mips && __sgi]: Remove.
(__gnat_clearenv) [__mips && __sgi]: Remove.
* errno.c (_SGI_MP_SOURCE): Remove.
* gsocket.h [sgi]: Remove.
* init.c: Remove IRIX reference.
[sgi]: Remove.
* link.c [sgi]: Remove.
* s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define.
(main) [__mips && __sgi] (MAX_tv_sec): Don't define.
(CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove.
* sysdep.c [sgi]: Remove.
(getc_immediate_common) [sgi]: Remove.
(__gnat_localtime_tzoff) [sgi]: Remove.
* terminals.c [__mips && __sgi] (IRIX): Don't define.
[IRIX] (USE_GETPTY): Don't define.
(allocate_pty_desc) [USE_GETPTY]: Remove.
* g-traceb.ads: Remove IRIX reference.
* g-trasym.ads: Likewise.
* memtrack.adb: Likewise.
* s-interr-sigaction.adb: Likewise.
* gnat_rm.texi (Implementation Advice): Remove SGI info.
(Implementation Defined Characteristics): Likewise.
* gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix):
Remove.
(Irix-Specific Considerations): Remove.
gcc/cp:
* Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
gcc:
* config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
(mips-sgi-irix6.5*): Remove.
* config.host (mips-sgi-irix*): Remove.
* configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
(set_have_as_tls): Remove *-*-irix6*.
(gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
* configure: Regenerate.
* config/mips/iris6.h: Remove.
* config/mips/iris6.opt: Remove.
* config/mips/t-irix6: Remove.
* config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
(TARGET_IRIX6): Remove.
(TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
* config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
handling.
(mips_file_start): Likewise.
* config/mips/mips-protos.h (irix_asm_output_align): Remove.
* config/mips/driver-native.c [__sgi__]: Remove.
(host_detect_local_cpu) [__sgi__]: Remove.
* config/mips/gnu-user.h: Remove iris5.h reference.
* config/mips/mips-modes.def: Remove IRIX 6 reference.
* config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
* config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
Remove.
* gcc.c (main): Move asm_debug initialization ...
(asm_debug): ... here.
* ginclude/stddef.h (__STDDEF_H__): Don't define.
* defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
* system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
* collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
(main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
[LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
* doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
Remove.
* doc/tm.texi: Regenerate.
* doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
IRIX 6 reference.
(MIPS Options, -march): Remove IRIX reference.
* doc/install.texi (Binaries, SGI IRIX): Remove.
(Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
of section.
* doc/trouble.texi (Interoperation): Remove -lgl_s handling.
fixincludes:
* inclhack.def (broken_cabs): Remove IRIX and SunOS 4 support.
(irix___restrict): Remove.
(irix___generic1): Remove.
(irix___generic2): Remove.
(irix_asm_apostrophe): Remove.
(irix_complex): Remove.
(irix_pthread_init): Remove.
(irix_socklen_t): Remove.
(irix_stdint_c99_mode): Remove.
(irix_stdint_c99_types): Remove.
(irix_stdint_c99_macros): Remove.
(irix_stdio_va_list): Remove IRIX 6.5 support.
(irix_wcsftime): Remove.
(stdio_va_list): Remove IRIX 6.5 support.
(svr4_profil): Remove IRIX bypass.
* fixincl.x: Regenerate.
* tests/base/complex.h [IRIX_COMPLEX_CHECK]: Remove.
* tests/base/internal/math_core.h: Remove.
* tests/base/internal/sgimacros.h: Remove.
* tests/base/internal/wchar_core.h: Remove.
* tests/base/math.h [BROKEN_CABS_CHECK]: Remove IRIX and SunOS 4
support.
* tests/base/pthread.h [IRIX_PTHREAD_INIT_CHECK]: Remove.
* tests/base/stdint-irix65.h: Remove.
* tests/base/stdint.h [IRIX_STDINT_C99_MODE_CHECK]: Remove.
* tests/base/sys/asm.h: Remove.
* tests/base/sys/socket.h [IRIX_SOCKLEN_T_CHECK]: Remove.
contrib:
* config-list.mk (LIST): Remove mips-sgi-irix6.5.
toplevel:
* MAINTAINERS (OS Port Maintainers): Remove irix.
* configure.ac (enable_libgomp): Remove *-*-irix6*.
(unsupported_languages): Remove mips-sgi-irix6.*.
(noconfigdirs): Don't add ${libgcj} for mips*-*-irix6*.
(with_stabs): Remove.
* configure: Regenerate.
From-SVN: r185390
2012-03-14 17:33:37 +01:00
|
|
|
|
2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (mips-sgi-irix6*): Remove.
|
|
|
|
|
|
Remove obsolete Tru64 UNIX V5.1B support
libstdc++-v3:
* configure.host: Remove osf* handling.
* config/os/osf: Remove.
* doc/xml/manual/using.xml: Remove OSF reference.
* testsuite/18_support/pthread_guard.cc: Remove alpha*-*-osf*
handling.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
Likewise.
* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/23_containers/list/pthread1.cc: Likewise.
* testsuite/23_containers/list/pthread5.cc: Likewise.
* testsuite/23_containers/map/pthread6.cc: Likewise.
* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
Likewise.
* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
* testsuite/30_threads/async/42819.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/any.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/async.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/launch.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/sync.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/call_once/39909.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/call_once/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/future/cons/move.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/45133.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/get.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/get2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/share.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/valid.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/wait.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/move.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/swap.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/5.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/6.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/7.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/8.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/9.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/5.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/thread/swap/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/2.cc:
Likewise.
* libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc: Likewise.
* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
libobjc:
* configure.ac (enable_objc_gc): Remove alpha*-dec-osf* handling.
* configure: Regenerate.
* thr.c (_XOPEN_SOURCE): Define unconditionally.
libjava:
* configure.ac (alpha*-dec-osf*): Remove.
* configure: Regenerate.
* configure.host (alpha*-dec-osf*): Remove.
* gnu/java/net/natPlainDatagramSocketImplPosix.cc (setOption): Use
IPV6_MULTICAST_IF unconditionally.
* gnu/java/net/natPlainDatagramSocketImplWin32.cc (setOption):
Likewise.
* gnu/java/net/natPlainSocketImplPosix.cc
(gnu::java::net::PlainSocketImpl::accept): Use ::accept instead of
_Jv_accept.
* include/posix-signal.h [__alpha__ && __osf__]: Remove.
* include/posix.h (_POSIX_PII_SOCKET): Don't define.
(_Jv_accept): Remove.
* java/io/File.java (File._access): Rename to access.
Change callers.
(File._stat): Likewise.
* java/io/File.h: Regenerate.
* classpath/lib/java/io/File.class: Regenerate.
* java/io/natFilePosix.cc (java::io::File::_access): Rename to
access.
(java::io::File::_stat): Rename to stat.
* java/io/natFileWin32.cc: Likewise.
* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
Remove alpha*-dec-osf* handling.
* testsuite/libjava.jvmti/jvmti-interp.exp
(gcj_jni_compile_c_to_so): Likewise.
* testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o):
Likewise.
libitm:
* configure.tgt (*-*-osf*): Remove.
* configure: Regenerate.
libgomp:
* configure.tgt (alpha*-dec-osf*): Remove.
* config/osf/sem.h: Remove.
* config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
libgfortran:
* configure.ac: Remove Tru64 reference.
* acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Remove alpha*-dec-osf*
handling.
* configure: Regenerate.
* intrinsics/c99_functions.c [__osf__]: Remove.
libgcc:
* config.host: Remove alpha*-dec-osf5.1* handling.
* config/alpha/gthr-posix.c: Remove.
* config/alpha/libgcc-osf5.ver: Remove.
* config/alpha/osf5-unwind.h: Remove.
* config/alpha/t-osf-pthread: Remove.
* config/alpha/t-slibgcc-osf: Remove.
* config/t-crtfm (crtfastmath.o): Remove -frandom-seed.
* gthr-posix.h [!_REENTRANT && __osf__] (_REENTRANT): Don't define.
[__osf__ && _PTHREAD_USE_MANGLED_NAMES_]: Remove.
* mkmap-flat.awk: Remove osf_export handling.
gnattools:
* configure.ac: Remove alpha*-dec-osf* handling.
* configure: Regenerate.
gcc/testsuite:
* g++.dg/abi/rtti3.C: Remove alpha*-dec-osf* handling.
* g++.dg/abi/thunk4.C: Likewise.
* g++.dg/cdce3.C: Don't skip on*-dec-osf5*.
Adapt line numbers.
* g++.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
handling.
* g++.dg/cpp0x/constexpr-rom.C: Likewise.
* g++.dg/eh/spbp.C: Likewise.
* g++.dg/ext/label13.C: Likewise.
* g++.dg/guality/guality.exp: Likewise.
* g++.dg/other/anon5.C: Likewise.
* g++.dg/other/pragma-ep-1.C: Remove.
* g++.dg/warn/miss-format-1.C: Remove alpha*-dec-osf* handling.
* g++.dg/warn/pr31246.C: Likewise.
* g++.dg/warn/weak1.C: Likewise.
* g++.old-deja/g++.eh/badalloc1.C: Likewise.
* g++.old-deja/g++.ext/attrib5.C: Likewise.
* gcc.c-torture/compile/limits-declparen.c: Likewise.
* gcc.c-torture/compile/limits-pointer.c: Likewise.
* gcc.c-torture/execute/20001229-1.c: Remove __osf__ handling.
* gcc.dg/attr-weakref-1.c: Remove alpha*-dec-osf* handling.
* gcc.dg/c99-stdint-6.c: Remove alpha*-dec-osf5* handling.
* gcc.dg/c99-tgmath-1.c: Likewise.
* gcc.dg/c99-tgmath-2.c: Likewise.
* gcc.dg/c99-tgmath-3.c: Likewise.
* gcc.dg/c99-tgmath-4.c: Likewise.
* gcc.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
handling.
* gcc.dg/debug/pr49032.c: Likewise.
* gcc.dg/guality/guality.exp: Likewise.
* gcc.dg/intmax_t-1.c: Likewise.
* gcc.dg/pr48616.c: Likewise.
* gcc.dg/pragma-ep-1.c: Remove.
* gcc.dg/pragma-ep-2.c: Remove.
* gcc.dg/pragma-ep-3.c: Remove.
* gcc.dg/torture/pr47917.c: Remove alpha*-dec-osf5* handling.
* gcc.dg/tree-ssa/pr42585.c: Remove alpha*-dec-osf* handling.
* gcc.misc-tests/gcov-14.c: Likewise.
* gfortran.dg/guality/guality.exp: Likewise.
* lib/target-supports.exp (check_weak_available): Likewise.
(add_options_for_tls): Likewise.
(check_ascii_locale_available): Likewise.
* obj-c++.dg/dwarf-2.mm: Likewise.
* objc.dg/dwarf-1.m: Likewise.
* objc.dg/dwarf-2.m: Likewise.
gcc/c-family:
* c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
handling.
* c-pragma.c (handle_pragma_extern_prefix): Remove.
(init_pragma): Don't register extern_prefix.
gcc/po:
* EXCLUDES (mips-tdump.c, mips-tfile.c): Remove.
gcc:
* config.gcc (alpha*-dec-osf5.1*): Remove.
* config.host (alpha*-dec-osf*): Remove.
* configure.ac (*-*-osf*): Remove.
(alpha*-dec-osf*): Remove.
* configure: Regenerate.
* config/alpha/host-osf.c, config/alpha/osf5.h,
config/alpha/osf5.opt, config/alpha/va_list.h, config/alpha/x-osf:
Remove.
* config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
* config/alpha/alpha.c (struct machine_function): Update comment.
(alpha_start_function): Remove Tru64 UNIX as handling for
max_frame_size.
* config/alpha/alpha.md ("exception_receiver"): Remove
TARGET_LD_BUGGY_LDGP.
("*exception_receiver_2"): Likewise.
* except.c (finish_eh_generation): Remove Tru64 reference.
* ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
* system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
* target.def (handle_pragma_extern_prefix): Remove.
* Makefile.in (mips-tfile.o-warn): Remove.
(ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
(mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
* mips-tdump.c, mips-tfile.c: Remove.
* doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
extern_prefix.
* doc/install.texi (Binaries): Remove Tru64 UNIX reference.
(Specific, alpha*-dec-osf5.1): Note removal.
* doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
Remove.
* doc/tm.texi: Regenerate.
* doc/trouble.texi (Cross-Compiler Problems): Remove.
gcc/ada:
* gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
* a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
system-tru64.ads: Remove.
* adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
Remove.
[IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
* env.c [__alpha__ && __osf__]: Remove.
* gsocket.h (_OSF_SOURCE): Remove.
(HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
* init.c [__alpha__ && __osf__]: Remove.
* link.c [__osf__]: Remove.
* s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
[__osf__ && !_SS_MAXSIZE]: Remove.
* sysdep.c [__osf__]: Remove.
* terminals.c [__alpha__ && __osf__]: Remove.
[OSF1]: Remove.
* g-traceb.ads: Remove Tru64 reference.
* g-trasym.ads: Likewise.
* gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
(Summary of Run-Time Configurations): Likewise.
* memtrack.adb: Likewise.
fixincludes:
* inclhack.def (alpha___extern_prefix): Remove.
(alpha___extern_prefix_standards): Remove.
(alpha___extern_prefix_sys_stat): Remove.
(alpha_bad_lval): Remove.
(alpha_pthread): Remove.
(alpha_pthread_gcc): Remove.
(alpha_pthread_init): Remove.
* fixincl.x: Regenerate.
* tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: Remove.
[ALPHA_PTHREAD_GCC_CHECK]: Remove.
[ALPHA_PTHREAD_INIT_CHECK]: Remove.
* tests/base/standards.h: Remove.
* tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK]:
Remove.
* tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: Remove.
[ALPHA_BAD_LVAL_CHECK]: Remove.
contrib:
* config-list.mk (LIST): Remove alpha-dec-osf5.1.
config:
* weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove
alpha*-dec-osf*.
toplevel:
* MAINTAINERS (OS Port Maintainers): Remove osf.
* configure.ac (enable_libgomp): Remove *-*-osf*.
(with_stabs): Remove alpha*-*-osf*.
* configure: Regenerate.
From-SVN: r185240
2012-03-12 16:35:56 +01:00
|
|
|
|
2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (alpha*-dec-osf*): Remove.
|
|
|
|
|
|
|
|
|
|
* config/osf/sem.h: Remove.
|
|
|
|
|
* config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
|
|
|
|
|
|
2012-02-29 21:49:30 +01:00
|
|
|
|
2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/sparc/futex.h (cpu_relax): Read from CC register.
|
|
|
|
|
|
2012-02-27 14:51:50 +01:00
|
|
|
|
2012-02-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/52188
|
|
|
|
|
* acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
|
|
|
|
|
Remove ENABLE_SYMVERS_SOL2.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
|
|
|
|
|
(PREPROCESS): New variable.
|
|
|
|
|
(libgomp.ver): New target.
|
|
|
|
|
[LIBGOMP_BUILD_VERSIONED_SHLIB &&
|
|
|
|
|
LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
|
|
|
|
|
LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
|
|
|
|
|
Use libgomp.ver.
|
|
|
|
|
[LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2012-02-14 11:02:21 +01:00
|
|
|
|
2012-02-14 Walter Lee <walt@tilera.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt: Handle tilegx and tilepro.
|
|
|
|
|
* config/linux/tile/futex.h: New file.
|
|
|
|
|
|
2012-02-08 16:28:01 +01:00
|
|
|
|
2012-02-08 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/46886
|
|
|
|
|
* testsuite/libgomp.c/pr46886.c: New testcase.
|
|
|
|
|
|
2012-01-25 13:13:12 +01:00
|
|
|
|
2012-01-25 Matthias Klose <doko@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/arm: Remove empty directory.
|
|
|
|
|
* configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
|
|
|
|
|
|
2011-12-09 03:21:43 +01:00
|
|
|
|
2011-12-09 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/51376
|
|
|
|
|
* task.c (GOMP_taskwait): Don't access task->children outside of
|
|
|
|
|
task_lock mutex region.
|
|
|
|
|
(GOMP_task): Likewise.
|
|
|
|
|
|
2011-12-06 15:32:54 +01:00
|
|
|
|
2011-12-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/51132
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
|
|
|
|
|
to file scope.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
|
|
|
|
|
|
2011-12-02 11:54:02 +01:00
|
|
|
|
2011-12-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/affinity.c: Use atomic rather than sync builtin.
|
|
|
|
|
* config/linux/lock.c: Likewise.
|
|
|
|
|
* config/linux/ptrlock.h: Likewise.
|
|
|
|
|
* config/linux/ptrlock.c: Likewise.
|
|
|
|
|
* config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
|
|
|
|
|
* config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
|
|
|
|
|
* config/linux/futex.h (atomic_write_barrier): Delete unused function.
|
|
|
|
|
* config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
|
* config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
|
* config/linux/mips/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
|
* config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
|
* config/linux/s390/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
|
* config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
|
* config/linux/x86/futex.h (atomic_write_barrier): Likewise.
|
|
|
|
|
|
2011-11-30 05:44:13 +01:00
|
|
|
|
2011-11-30 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/51298
|
|
|
|
|
* config/linux/bar.h: Use atomic rather than sync builtins.
|
|
|
|
|
* config/linux/bar.c: Likewise. Add missing acquire
|
|
|
|
|
synchronisation on generation field.
|
|
|
|
|
* task.c (gomp_barrier_handle_tasks): Regain lock so as to not
|
|
|
|
|
double unlock.
|
|
|
|
|
|
2011-11-30 05:02:53 +01:00
|
|
|
|
2011-11-30 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
|
|
|
|
|
* critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
|
|
|
|
|
* config/linux/mutex.h: Use atomic rather than sync builtins.
|
|
|
|
|
* config/linux/mutex.c: Likewise. Comment. Use -1 for waiting state.
|
|
|
|
|
* config/linux/omp-lock.h: Comment fix.
|
|
|
|
|
* config/linux/arm/mutex.h: Delete.
|
|
|
|
|
* config/linux/powerpc/mutex.h: Delete.
|
|
|
|
|
* config/linux/ia64/mutex.h: Delete.
|
|
|
|
|
* config/linux/mips/mutex.h: Delete.
|
|
|
|
|
|
2011-11-30 04:43:57 +01:00
|
|
|
|
2011-11-30 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/51249
|
|
|
|
|
* config/linux/sem.h: Rewrite.
|
|
|
|
|
* config/linux/sem.c: Rewrite.
|
|
|
|
|
|
2011-11-29 03:19:05 +01:00
|
|
|
|
2011-11-28 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (enum memmodel): New.
|
|
|
|
|
|
2011-11-21 20:22:35 +01:00
|
|
|
|
2011-11-21 Andreas Tobler <andreast@fgznet.ch>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2011-10-10 21:27:31 +02:00
|
|
|
|
2011-10-10 Matthias Klose <doko@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
* config/posix95: Remove empty directory.
|
|
|
|
|
|
2011-08-26 16:55:05 +02:00
|
|
|
|
2011-08-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate4.f90: New test.
|
|
|
|
|
|
2011-08-19 15:25:22 +02:00
|
|
|
|
2011-08-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/49792
|
|
|
|
|
* testsuite/libgomp.fortran/pr49792-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr49792-2.f90: New test.
|
|
|
|
|
|
2011-08-08 17:39:35 +02:00
|
|
|
|
2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* config/posix95/lock.c, posix95/omp-lock.h: Remove.
|
|
|
|
|
|
2011-08-05 14:22:10 +02:00
|
|
|
|
2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR libgomp/49965
|
|
|
|
|
* testsuite/libgomp.c++/task-8.C: Replaced err by errval.
|
|
|
|
|
|
2011-08-03 12:46:04 +02:00
|
|
|
|
2011-08-03 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/proc.h: New.
|
|
|
|
|
* config/linux/proc.c: Include "proc.h". Do not include <sched.h>.
|
|
|
|
|
(gomp_cpuset_popcount): Rename from cpuset_popcount. No more static.
|
|
|
|
|
(gomp_init_num_threads): Update call to cpuset_popcount.
|
|
|
|
|
(get_num_procs): Ditto.
|
|
|
|
|
* config/linux/affinity.c (gomp_init_affinity): Call
|
|
|
|
|
gomp_cpuset_popcount.
|
|
|
|
|
|
backport: re PR fortran/46752 (OpenMP - Seg fault for unallocated allocatable array in firstprivate clause)
Merge from gomp-3_1-branch branch:
2011-08-02 Jakub Jelinek <jakub@redhat.com>
gcc/
* c-parser.c (enum c_parser_prec): New enum, moved from within
c_parser_binary_expression.
(c_parser_binary_expression): Add PREC argument. Stop parsing
if operator has lower or equal precedence than PREC.
(c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
callers.
(c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
Adjust c_finish_omp_atomic caller.
(c_parser_omp_taskyield): New function.
(c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
(c_parser_omp_clause_name): Handle final and mergeable clauses.
(c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
functions.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
and PRAGMA_OMP_CLAUSE_MERGEABLE.
(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
(c_parser_omp_clause_reduction): Handle min and max.
* c-typeck.c (c_finish_omp_clauses): Don't complain about
const qualified predetermined vars in firstprivate clause.
andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
Handle MIN_EXPR and MAX_EXPR.
* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
and OMP_CLAUSE_MERGEABLE.
(dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
and OMP_ATOMIC_CAPTURE_NEW.
* tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
OMP_CLAUSE_MERGEABLE.
(omp_clause_code_name): Likewise.
(walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
* tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
and OMP_CLAUSE_MERGEABLE.
(OMP_CLAUSE_FINAL_EXPR): Define.
* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
OMP_CLAUSE_MERGEABLE.
(expand_task_call): Likewise.
(expand_omp_atomic_load, expand_omp_atomic_store): New functions.
(expand_omp_atomic_fetch_op): Handle cases where old or new
value is needed afterwards.
(expand_omp_atomic): Call expand_omp_atomic_load resp.
expand_omp_atomic_store.
* gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Likewise.
* tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
OMP_ATOMIC_CAPTURE_NEW): New.
* gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
(gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
New inlines.
* omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
* doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
gcc/c-family/
* c-common.h (c_finish_omp_atomic): Adjust prototype.
(c_finish_omp_taskyield): New prototype.
* c-omp.c (c_finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
arguments. Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and
OMP_ATOMIC_CAPTURE_NEW in addition to OMP_ATOMIC. If LHS1
or RHS1 have side-effects, evaluate those too in the right spot,
if it is a decl and LHS is also a decl, error out if they
aren't the same.
(c_finish_omp_taskyield): New function.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP to 201107.
* c-pragma.c (omp_pragmas): Add taskyield.
* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_TASKYIELD.
(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_FINAL and
PRAGMA_OMP_CLAUSE_MERGEABLE.
gcc/cp/
* cp-tree.h (finish_omp_atomic): Adjust prototype.
(cxx_omp_const_qual_no_mutable): New prototype.
(finish_omp_taskyield): New prototype.
* parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle
parsing OpenMP 3.1 atomics. Adjust finish_omp_atomic caller.
(cp_parser_omp_clause_name): Handle final and mergeable clauses.
(cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New
functions.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
and PRAGMA_OMP_CLAUSE_MERGEABLE.
(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
(cp_parser_omp_taskyield): New function.
(cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
(cp_parser_omp_clause_reduction): Handle min and max.
* pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics.
(tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and
OMP_CLAUSE_MERGEABLE.
* semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
arguments. Handle OpenMP 3.1 atomics. Adjust c_finish_omp_atomic
caller.
(finish_omp_clauses): Don't complain about const qualified
predetermined vars and static data members in firstprivate clause.
Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR
and MAX_EXPR.
(finish_omp_taskyield): New function.
* cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function.
(cxx_omp_predetermined_sharing): Use it.
gcc/fortran/
PR fortran/46752
* cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
* openmp.c (gfc_free_omp_clauses): Free also final_expr.
(OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
(gfc_match_omp_clauses): Handle parsing final and mergeable
clauses.
(OMP_TASK_CLAUSES): Allow final and mergeable clauses.
(gfc_match_omp_taskyield): New function.
(resolve_omp_clauses): Resolve final clause. Allow POINTERs and
Cray pointers in clauses other than REDUCTION.
(gfc_match_omp_atomic): Match optional
read/write/update/capture keywords after !$omp atomic.
(resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
* dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
print final and mergeable clauses.
(show_code_node): Handle EXEC_OMP_TASKYIELD.
* trans-openmp.c (gfc_trans_omp_clauses): Handle final and
mergeable clauses.
(gfc_trans_omp_taskyield): New function.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
(gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
(gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
(gfc_omp_predetermined_sharing): Adjust comment.
* gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
ST_OMP_END_ATOMIC.
(gfc_omp_clauses): Add final_expr and mergeable fields.
(gfc_exec_op): Add EXEC_OMP_TASKYIELD.
(gfc_omp_atomic_op): New enum typedef.
(struct gfc_code): Add ext.omp_atomic.
* trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
* frontend-passes.c (gfc_code_walker): Also walk final_expr.
* resolve.c (gfc_resolve_blocks, resolve_code): Handle
EXEC_OMP_TASKYIELD.
* st.c (gfc_free_statement): Likewise.
* match.h (gfc_match_omp_taskyield): New prototype.
* parse.c (decode_omp_directive): Handle taskyield directive.
Handle !$omp end atomic.
(case_executable): Add ST_OMP_TASKYIELD case.
(gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
(parse_omp_atomic): Return gfc_statement instead of void.
For !$omp atomic capture parse two assignments instead of
just one and require !$omp end atomic afterwards, for
other !$omp atomic forms just allow !$omp end atomic at the
end.
(parse_omp_structured_block, parse_executable): Adjust
parse_omp_atomic callers.
2011-08-02 Tobias Burnus <burnus@net-b.de>
* intrinsic.c (OMP_LIB): Updated openmp_version's
value to 201107.
* gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
* intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
remove deleted omp_integer_kind and omp_logical_kind constants.
gcc/testsuite/
PR fortran/46752
* gcc.dg/gomp/atomic-5.c: Adjust expected diagnostics.
* gcc.dg/gomp/atomic-15.c: New test.
* g++.dg/gomp/atomic-5.C: Adjust expected diagnostics.
* g++.dg/gomp/atomic-15.C: New test.
* g++.dg/gomp/private-1.C: New test.
* g++.dg/gomp/sharing-2.C: New test.
* gfortran.dg/gomp/crayptr1.f90: Don't expect error
about Cray pointer in FIRSTPRIVATE/LASTPRIVATE.
* gfortran.dg/gomp/omp_atomic2.f90: New test.
libgomp/
PR fortran/42041
PR fortran/46752
* omp.h.in (omp_in_final): New prototype.
* omp_lib.f90.in (omp_in_final): New interface.
(omp_integer_kind, omp_logical_kind): Remove
and replace all its uses in the module with 4.
(openmp_version): Change to 201107.
* omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): Use omp_sched_kind
kind for the parameters.
(omp_in_final): New external.
(openmp_version): Change to 201107.
* task.c (omp_in_final): New function.
(gomp_init_task): Initialize final_task.
(GOMP_task): Remove unused attribute from flags. Handle final
tasks.
(GOMP_taskyield): New function.
(omp_in_final): Return true if if (false) or final (true) task
or descendant of final (true).
* fortran.c (omp_in_final_): New function.
* libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
(GOMP_3.0): Export GOMP_taskyield.
* env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
variables.
(parse_unsigned_long_list): New function.
(initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean
with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity
even if parse_affinity returned false.
* config/linux/affinity.c (gomp_init_affinity): Handle
gomp_cpu_affinity_len == 0.
* libgomp_g.h (GOMP_taskyield): New prototype.
* libgomp.h (struct gomp_task): Add final_task field.
(gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
* team.c (gomp_team_start): Override new task's nthreads_var icv
if list form OMP_NUM_THREADS has been used and it has value for
the new nesting level.
* testsuite/libgomp.c/atomic-11.c: New test.
* testsuite/libgomp.c/atomic-12.c: New test.
* testsuite/libgomp.c/atomic-13.c: New test.
* testsuite/libgomp.c/atomic-14.c: New test.
* testsuite/libgomp.c/reduction-6.c: New test.
* testsuite/libgomp.c/task-5.c: New test.
* testsuite/libgomp.c++/atomic-2.C: New test.
* testsuite/libgomp.c++/atomic-3.C: New test.
* testsuite/libgomp.c++/atomic-4.C: New test.
* testsuite/libgomp.c++/atomic-5.C: New test.
* testsuite/libgomp.c++/atomic-6.C: New test.
* testsuite/libgomp.c++/atomic-7.C: New test.
* testsuite/libgomp.c++/atomic-8.C: New test.
* testsuite/libgomp.c++/atomic-9.C: New test.
* testsuite/libgomp.c++/task-8.C: New test.
* testsuite/libgomp.c++/reduction-4.C: New test.
* testsuite/libgomp.fortran/allocatable7.f90: New test.
* testsuite/libgomp.fortran/allocatable8.f90: New test.
* testsuite/libgomp.fortran/crayptr3.f90: New test.
* testsuite/libgomp.fortran/omp_atomic3.f90: New test.
* testsuite/libgomp.fortran/omp_atomic4.f90: New test.
* testsuite/libgomp.fortran/pointer1.f90: New test.
* testsuite/libgomp.fortran/pointer2.f90: New test.
* testsuite/libgomp.fortran/task4.f90: New test.
2011-08-02 Tobias Burnus <burnus@net-b.de>
* libgomp.texi: Update OpenMP spec references to 3.1.
(omp_in_final,OMP_PROC_BIND): New sections.
(OMP_NUM_THREADS): Document that the value can be now a list.
(GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
From-SVN: r177194
2011-08-02 18:13:29 +02:00
|
|
|
|
2011-08-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/42041
|
|
|
|
|
PR fortran/46752
|
|
|
|
|
* omp.h.in (omp_in_final): New prototype.
|
|
|
|
|
* omp_lib.f90.in (omp_in_final): New interface.
|
|
|
|
|
(omp_integer_kind, omp_logical_kind): Remove
|
|
|
|
|
and replace all its uses in the module with 4.
|
|
|
|
|
(openmp_version): Change to 201107.
|
|
|
|
|
* omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
|
|
|
|
|
omp_sched_guided, omp_sched_auto): Use omp_sched_kind
|
|
|
|
|
kind for the parameters.
|
|
|
|
|
(omp_in_final): New external.
|
|
|
|
|
(openmp_version): Change to 201107.
|
|
|
|
|
* task.c (omp_in_final): New function.
|
|
|
|
|
(gomp_init_task): Initialize final_task.
|
|
|
|
|
(GOMP_task): Remove unused attribute from flags. Handle final
|
|
|
|
|
tasks.
|
|
|
|
|
(GOMP_taskyield): New function.
|
|
|
|
|
(omp_in_final): Return true if if (false) or final (true) task
|
|
|
|
|
or descendant of final (true).
|
|
|
|
|
* fortran.c (omp_in_final_): New function.
|
|
|
|
|
* libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
|
|
|
|
|
(GOMP_3.0): Export GOMP_taskyield.
|
|
|
|
|
* env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
|
|
|
|
|
variables.
|
|
|
|
|
(parse_unsigned_long_list): New function.
|
|
|
|
|
(initialize_env): Use it for OMP_NUM_THREADS. Call parse_boolean
|
|
|
|
|
with "OMP_PROC_BIND". If OMP_PROC_BIND=true, call gomp_init_affinity
|
|
|
|
|
even if parse_affinity returned false.
|
|
|
|
|
* config/linux/affinity.c (gomp_init_affinity): Handle
|
|
|
|
|
gomp_cpu_affinity_len == 0.
|
|
|
|
|
* libgomp_g.h (GOMP_taskyield): New prototype.
|
|
|
|
|
* libgomp.h (struct gomp_task): Add final_task field.
|
|
|
|
|
(gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
|
|
|
|
|
* team.c (gomp_team_start): Override new task's nthreads_var icv
|
|
|
|
|
if list form OMP_NUM_THREADS has been used and it has value for
|
|
|
|
|
the new nesting level.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-11.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/atomic-12.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/atomic-13.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/atomic-14.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/reduction-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/task-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-7.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/atomic-9.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/reduction-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable7.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable8.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pointer1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pointer2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/task4.f90: New test.
|
|
|
|
|
|
|
|
|
|
2011-08-02 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Update OpenMP spec references to 3.1.
|
|
|
|
|
(omp_in_final,OMP_PROC_BIND): New sections.
|
|
|
|
|
(OMP_NUM_THREADS): Document that the value can be now a list.
|
|
|
|
|
(GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
|
|
|
|
|
|
2011-08-02 16:44:06 +02:00
|
|
|
|
2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/x86/futex.h: Check __x86_64__ instead of
|
|
|
|
|
__LP64__.
|
|
|
|
|
|
2011-07-29 19:45:42 +02:00
|
|
|
|
2011-07-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/49897
|
|
|
|
|
PR middle-end/49898
|
|
|
|
|
* testsuite/libgomp.c/pr49897-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr49897-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr49898-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr49898-2.c: New test.
|
|
|
|
|
|
2011-07-28 22:35:32 +02:00
|
|
|
|
2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
|
|
|
|
|
for ia32 instead of ilp32.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
|
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: Likewise.
|
|
|
|
|
|
2011-07-27 18:53:09 +02:00
|
|
|
|
2011-07-23 Sebastian Pop <sebastian.pop@amd.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
|
|
|
|
|
|
2011-07-25 17:39:52 +02:00
|
|
|
|
2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR libgomp/45351
|
|
|
|
|
* config/osf/sem.h: New file.
|
|
|
|
|
* configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
|
|
|
|
|
|
2011-07-18 14:09:18 +02:00
|
|
|
|
2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR target/49541
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
|
|
|
|
|
ldflags.
|
|
|
|
|
|
2011-07-15 21:46:11 +02:00
|
|
|
|
2011-07-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/wait.h (do_spin): New inline, largely copied
|
|
|
|
|
from do_wait, just don't do futex_wait here, instead return true if
|
|
|
|
|
it should be done.
|
|
|
|
|
(do_wait): Implement using do_spin.
|
|
|
|
|
* config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
|
|
|
|
|
to prototype.
|
|
|
|
|
(gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
|
|
|
|
|
__sync_bool_compare_and_swap, pass the oldval to
|
|
|
|
|
gomp_mutex_lock_slow.
|
|
|
|
|
* config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
|
|
|
|
|
If all mutex contenders are just spinning and not sleeping, don't
|
|
|
|
|
change state to 2 unnecessarily. Optimize the loop when state has
|
|
|
|
|
already become 2 to use just one atomic operation per loop instead
|
|
|
|
|
of two.
|
|
|
|
|
* config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
|
|
|
|
|
to prototype.
|
|
|
|
|
(gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
|
|
|
|
|
__sync_bool_compare_and_swap, pass the oldval to
|
|
|
|
|
gomp_mutex_lock_slow.
|
|
|
|
|
|
2011-06-22 22:39:25 +02:00
|
|
|
|
2011-06-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/49490
|
|
|
|
|
* iter.c (gomp_iter_static_next): For chunk size 0
|
|
|
|
|
only use n ceil/ nthreads size for the first
|
|
|
|
|
n % nthreads threads in the team instead of
|
|
|
|
|
all threads except for the last few ones which
|
|
|
|
|
get less work or none at all.
|
|
|
|
|
* iter_ull.c (gomp_iter_ull_static_next): Likewise.
|
|
|
|
|
* env.c (parse_schedule): If OMP_SCHEDULE doesn't have
|
|
|
|
|
chunk argument, set run_sched_modifier to 0 for static
|
|
|
|
|
resp. 1 for other kinds. If chunk argument is 0
|
|
|
|
|
and not static, set value to 1.
|
|
|
|
|
|
2011-05-19 09:44:31 +02:00
|
|
|
|
2011-05-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2011-05-19 15:11:56 +02:00
|
|
|
|
PR c++/49043
|
|
|
|
|
* testsuite/libgomp.c++/pr49043.C: New test.
|
|
|
|
|
|
2011-05-19 09:44:31 +02:00
|
|
|
|
PR c++/48869
|
|
|
|
|
* testsuite/libgomp.c++/pr48869.C: New test.
|
|
|
|
|
|
2011-05-06 12:11:07 +02:00
|
|
|
|
2011-05-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/48894
|
|
|
|
|
* fortran.c: Include limits.h.
|
|
|
|
|
(TO_INT): Define.
|
|
|
|
|
(omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
|
|
|
|
|
*set.
|
|
|
|
|
(omp_set_num_threads_8_, omp_set_schedule_8_,
|
|
|
|
|
omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
|
|
|
|
|
omp_get_team_size_8_): Use TO_INT macro.
|
|
|
|
|
* testsuite/libgomp.fortran/pr48894.f90: New test.
|
|
|
|
|
|
2011-04-13 17:50:02 +02:00
|
|
|
|
2011-04-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/48591
|
|
|
|
|
* testsuite/libgomp.c/pr48591.c: New test.
|
|
|
|
|
|
2011-03-21 13:24:17 +01:00
|
|
|
|
2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/48135
|
|
|
|
|
* acinclude.m4 (enable_symvers): Handle --disable-symvers.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2011-02-27 13:05:36 +01:00
|
|
|
|
2011-02-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/47886
|
|
|
|
|
* testsuite/libgomp.fortran/task3.f90: New test.
|
|
|
|
|
|
2011-02-24 22:58:06 +01:00
|
|
|
|
2011-02-24 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
|
|
|
|
|
|
2011-02-23 09:58:16 +01:00
|
|
|
|
2011-02-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/47854
|
|
|
|
|
* libgomp.texi (omp_get_wtime): Don't say time in the past
|
|
|
|
|
must be Unix Epoch.
|
|
|
|
|
|
2011-02-18 21:44:44 +01:00
|
|
|
|
2011-02-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/47804
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Check for both
|
|
|
|
|
libquadmath.a and libquadmath.${shlib_ext}. If neither exists,
|
|
|
|
|
but $blddir != "", still append ${blddir}/${lang_library_path}
|
|
|
|
|
to ld_library_path.
|
|
|
|
|
|
2011-02-16 18:44:45 +01:00
|
|
|
|
2011-02-16 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR libgomp/47758
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Check for the existence
|
|
|
|
|
of libquadmath.a before adding its libpath to ldflags.
|
|
|
|
|
|
2011-02-14 16:08:23 +01:00
|
|
|
|
2011-02-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/47731
|
|
|
|
|
* config/linux/futex.h (futex_wait): Pass NULL as timeout argument
|
|
|
|
|
to FUTEX_WAIT futex syscall.
|
|
|
|
|
* config/linux/wait.h: Include <futex.h> instead of "futex.h".
|
|
|
|
|
|
2011-02-13 12:45:53 +01:00
|
|
|
|
2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2011-01-21 00:41:24 +01:00
|
|
|
|
2011-01-20 Benjamin Kosnik <bkoz@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/36104
|
|
|
|
|
* acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
|
|
|
|
|
|
2011-01-16 20:38:04 +01:00
|
|
|
|
2011-01-16 Gerald Pfeifer
|
|
|
|
|
|
|
|
|
|
* configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
|
|
|
|
|
|
2010-12-14 14:59:20 +01:00
|
|
|
|
2010-12-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/46874
|
|
|
|
|
* libgomp.fortran/allocatable6.f90: New test.
|
|
|
|
|
|
2010-12-06 18:10:09 +01:00
|
|
|
|
2010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-12-06 01:50:04 +01:00
|
|
|
|
2010-12-06 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/40125
|
|
|
|
|
PR lto/46695
|
|
|
|
|
* configure.ac: Invoke ACX_LT_HOST_FLAGS.
|
|
|
|
|
* Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
2010-12-02 15:30:37 +01:00
|
|
|
|
2010-12-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2010-12-02 15:37:20 +01:00
|
|
|
|
PR fortran/46753
|
|
|
|
|
* libgomp.fortran/pr46753.f90: New test.
|
|
|
|
|
|
2010-12-02 15:31:27 +01:00
|
|
|
|
PR libgomp/43706
|
|
|
|
|
* env.c (initialize_env): Default to spin count 300000
|
|
|
|
|
instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
|
|
|
|
|
is specified.
|
|
|
|
|
|
2010-12-02 15:30:37 +01:00
|
|
|
|
PR libgomp/45240
|
|
|
|
|
* parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
|
|
|
|
|
at the end if sync builtins aren't supported.
|
|
|
|
|
|
2010-12-01 15:01:48 +01:00
|
|
|
|
2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
|
|
|
|
|
|
2010-12-01 14:41:59 +01:00
|
|
|
|
2010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
|
|
|
|
|
|
2010-11-24 20:26:27 +01:00
|
|
|
|
2010-11-24 Iain Sandoe <iains@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
|
|
|
|
|
|
2010-11-16 22:23:19 +01:00
|
|
|
|
2010-11-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/32049
|
2011-11-30 04:43:57 +01:00
|
|
|
|
* configure.ac:
|
2010-11-16 22:23:19 +01:00
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-10-06 18:42:50 +02:00
|
|
|
|
2010-10-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/futex.h: New.
|
|
|
|
|
* config/linux/arm/mutex.h: New.
|
|
|
|
|
* configure.tgt (arm*-*-linux*): Add config path.
|
|
|
|
|
|
2010-09-30 23:22:16 +02:00
|
|
|
|
2010-09-30 Sebastian Pop <sebastian.pop@amd.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
|
|
|
|
|
|
2010-09-23 11:01:32 +02:00
|
|
|
|
2010-09-23 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
|
|
|
|
|
Change Fortran datatype to LOGICAL.
|
|
|
|
|
(omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
|
|
|
|
|
omp_unset_nested_lock): Use intent(inout) instead of intent(out).
|
|
|
|
|
|
2010-08-21 14:18:02 +02:00
|
|
|
|
2010-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-07-26 18:22:18 +02:00
|
|
|
|
2010-07-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Add function keyword to a couple of Fortran
|
|
|
|
|
interfaces, use integer instead of int for Fortran.
|
|
|
|
|
|
2010-07-26 17:26:17 +02:00
|
|
|
|
2010-07-26 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Fix spelling and pasto problems throughout.
|
|
|
|
|
Adjust prototypes to match code.
|
|
|
|
|
|
2010-07-24 00:15:51 +02:00
|
|
|
|
2010-07-24 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
|
|
|
|
|
silence -fwhole-file warning.
|
|
|
|
|
|
2010-07-23 19:58:57 +02:00
|
|
|
|
2010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (*-*-solaris2.[56]*): Removed.
|
|
|
|
|
|
2010-07-05 19:19:33 +02:00
|
|
|
|
2010-07-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
|
|
|
|
|
Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
|
|
|
|
|
LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
|
|
|
|
|
(HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
|
|
|
|
|
targetting solaris2*.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
|
|
|
|
|
* Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
|
|
|
|
|
libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
|
|
|
|
|
Add libgomp_version_dep.
|
|
|
|
|
[LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
|
|
|
|
|
versioning.
|
|
|
|
|
[!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
|
|
|
|
|
(libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
|
|
|
|
* libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
|
|
|
|
|
HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
|
|
|
|
|
* libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
|
|
|
|
|
to common block, protected by
|
|
|
|
|
HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
|
|
|
|
|
|
2010-06-10 01:46:33 +02:00
|
|
|
|
2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Move to GFDL version 1.3. Update copyright years.
|
|
|
|
|
|
2010-06-09 11:27:04 +02:00
|
|
|
|
2010-06-09 Iain Sandoe <iains@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/43170
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-05-04 20:58:11 +02:00
|
|
|
|
2010-05-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
PR other/43620
|
|
|
|
|
* configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
2010-04-26 22:07:10 +02:00
|
|
|
|
2010-04-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/43893
|
|
|
|
|
* testsuite/libgomp.c/pr43893.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr43893.C: New test.
|
|
|
|
|
|
2010-04-21 13:57:42 +02:00
|
|
|
|
2010-04-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/43570
|
|
|
|
|
* testsuite/libgomp.fortran/vla8.f90: New test.
|
|
|
|
|
|
2010-04-20 17:36:45 +02:00
|
|
|
|
2010-04-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2010-04-20 17:37:51 +02:00
|
|
|
|
PR libgomp/43706
|
|
|
|
|
* config/linux/affinity.c (gomp_init_affinity): Decrease
|
|
|
|
|
gomp_available_cpus if affinity mask confines the process to fewer
|
|
|
|
|
CPUs.
|
|
|
|
|
* config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
|
|
|
|
|
non-NULL, just return gomp_available_cpus.
|
|
|
|
|
|
2010-04-20 17:36:45 +02:00
|
|
|
|
PR libgomp/43569
|
|
|
|
|
* sections.c (gomp_sections_init): Initialize ws->mode.
|
|
|
|
|
|
2010-04-14 14:57:43 +02:00
|
|
|
|
2010-04-14 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
|
|
|
|
|
not unused bar variable.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-04-02 20:18:06 +02:00
|
|
|
|
2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
2010-03-22 16:16:52 +01:00
|
|
|
|
2010-03-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/42942
|
|
|
|
|
* env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
|
|
|
|
|
(initialize_env): Adjust callers.
|
|
|
|
|
(omp_set_max_active_levels): Set gomp_max_active_levels_var even
|
|
|
|
|
when the argument is 0.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr42942.c: New test.
|
|
|
|
|
|
2010-03-08 18:50:17 +01:00
|
|
|
|
2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/42644
|
|
|
|
|
PR middle-end/42130
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
|
|
|
|
|
|
2010-01-29 16:34:07 +01:00
|
|
|
|
2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/task-1.C: Renamed err to e.
|
|
|
|
|
* testsuite/libgomp.c++/task-6.C: Likewise.
|
|
|
|
|
|
2010-01-28 22:47:59 +01:00
|
|
|
|
2010-01-28 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (*-*-hpux*): Add -frandom-seed flag.
|
|
|
|
|
|
2010-01-26 22:32:28 +01:00
|
|
|
|
2010-01-26 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Test for executability of _the first word_ of GFORTRAN.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-01-26 10:47:45 +01:00
|
|
|
|
2010-01-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/42866
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable5.f90: New test.
|
|
|
|
|
|
2010-01-26 08:57:21 +01:00
|
|
|
|
2010-01-20 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Test for executability of GFORTRAN.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-01-05 15:02:37 +01:00
|
|
|
|
2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-01-04 15:28:30 +01:00
|
|
|
|
2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/42602
|
|
|
|
|
* libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
|
|
|
|
|
|
2010-01-03 23:44:56 +01:00
|
|
|
|
2010-01-03 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/recursion1.f90: New testcase.
|
|
|
|
|
|
2009-12-23 08:51:19 +01:00
|
|
|
|
2009-12-23 Sebastian Pop <sebpop@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/pr4118.c: New.
|
|
|
|
|
|
2009-12-22 23:16:02 +01:00
|
|
|
|
2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
|
|
|
|
|
for darwin, protect the test with require-effective-target tls_runtime.
|
|
|
|
|
* testsuite/libgomp.fortran/pr32550.f90: Ditto.
|
|
|
|
|
|
2009-12-22 23:11:27 +01:00
|
|
|
|
2009-12-22 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
|
|
|
|
|
|
|
|
|
|
PR target/41605
|
|
|
|
|
* testsuite/lib/libgomp.exp: Provide -B options to allow for
|
|
|
|
|
link spec %s substitutions for static libraries.
|
|
|
|
|
|
2009-12-18 08:38:06 +01:00
|
|
|
|
2009-12-18 Jack Howarth <howarth@bromo.med.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR testsuite/42135
|
|
|
|
|
* libgomp.graphite/force-parallel-2.c: Reduce array size.
|
|
|
|
|
|
2009-12-05 18:18:53 +01:00
|
|
|
|
2009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
2009-12-01 00:30:57 +01:00
|
|
|
|
2009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
|
|
|
|
|
settings for LC_ALL and LANG.
|
|
|
|
|
|
2009-11-25 21:28:56 +01:00
|
|
|
|
2009-11-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/42162
|
|
|
|
|
* testsuite/libgomp.fortran/pr42162.f90: New test.
|
|
|
|
|
|
2009-11-13 19:38:36 +01:00
|
|
|
|
2009-11-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/42029
|
2009-11-25 21:28:56 +01:00
|
|
|
|
* testsuite/libgomp.c/pr42029.c: New test.
|
2009-11-13 19:38:36 +01:00
|
|
|
|
|
2009-10-26 21:28:24 +01:00
|
|
|
|
2009-10-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
|
|
|
|
|
*s. Accept ld version without text in ()s.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2009-10-27 11:09:04 +01:00
|
|
|
|
2009-10-22 Razya Ladelsky <razya@il.ibm.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
|
|
|
|
|
|
2009-10-17 09:34:47 +02:00
|
|
|
|
2009-10-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
PR libgomp/41418
|
|
|
|
|
* configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
|
|
|
|
|
or a hyphen (happens with fortran language disabled).
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2009-09-30 02:43:28 +02:00
|
|
|
|
2009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
|
|
|
|
|
use sed script portable to Solaris /bin/sed for extracting ld
|
|
|
|
|
version.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2009-09-17 15:33:37 +02:00
|
|
|
|
2009-09-17 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite/bounds.c: New test.
|
|
|
|
|
|
2009-09-11 07:02:20 +02:00
|
|
|
|
2009-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (libgomp_la_LINK): New.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2009-08-24 21:08:51 +02:00
|
|
|
|
2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure.ac (AC_PREREQ): Bump to 2.64.
|
|
|
|
|
|
2009-08-22 15:22:20 +02:00
|
|
|
|
2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
Cleanups after the update to Autoconf 2.64, Automake 1.11.
/:
* configure.ac: Remove --with-datarootdir, --with-docdir,
--with-pdfdir, --with-htmldir switches.
* configure: Regenerate.
gcc/:
* configure.ac: Remove --with-datarootdir, --with-docdir,
--with-htmldir switches. No need to call AC_SUBST for
datarootdir, docdir, htmldir any more.
* configure: Regenerate.
* doc/install.texi (Configuration): Document --datarootdir,
--docdir, --htmldir, --pdfdir; update documentation for
--infodir, --mandir.
(Prerequisites): Bump Autoconf version to 2.64, Automake to
1.11, M4 to 1.4.6.
libgfortran/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libjava/classpath/:
* doc/cp-hacking.texinfo (Needed Tools and Libraries): Bump
Autoconf version to 2.64, Automake to 1.11, M4 to 1.4.6.
libjava/:
* HACKING: Use aclocal-1.11 and autoconf-2.64 in example.
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libstdc++-v3/:
* doc/xml/manual/build_hacking.xml: Use tools from Autoconf
2.64 and Automake 1.11 in examples; update link to Autoconf
manual page about quadrigraphs.
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libssp/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
boehm-gc/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libmudflap/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
zlib/:
* Makefile.am (install-html, install-pdf, html): Remove.
* Makefile.in: Regenerate.
libffi/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
libgomp/:
* Makefile.am (install-html, install-pdf): Remove.
* Makefile.in: Regenerate.
From-SVN: r151015
2009-08-22 15:41:50 +02:00
|
|
|
|
* Makefile.am (install-html, install-pdf): Remove.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2009-08-22 15:22:20 +02:00
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
LIBTOOLFLAGS, and *_LINK fixes for Automake 1.11
boehm-gc/:
* Makefile.am (LTCOMPILE, LTLINK): Add $(AM_LIBTOOLFLAGS)
and $(LIBTOOLFLAGS).
* Makefile.in: Regenerate.
libgfortran/:
* Makefile.am (libgfortran_la_LINK): Add $(libgfortran_la_LDFLAGS).
* Makefile.in: Regenerate.
libjava/:
* Makefile.am (libgcj_la_LINK, libgcj_tools_la_LINK)
(lib_gnu_awt_xlib_la_LINK, libgcj_bc_la_LINK, jv_convert_LINK)
(gcj_dbtool_LINK, gc_analyze_LINK, gij_LINK, ecjx_LINK)
(gappletviewer_LINK, gjarsigner_LINK, gkeytool_LINK)
(gjar_LINK, gjavah_LINK, gcjh_LINK, gnative2ascii_LINK)
(gorbd_LINK, grmid_LINK, gserialver_LINK, gtnameserv_LINK)
(grmic_LINK, grmiregistry_LINK, gjdoc_LINK): Add $(gjdoc_LDFLAGS).
(GCJLINK, LIBLINK, CXXLINK): Add $(LIBTOOLFLAGS).
* Makefile.in: Regenerate.
libstdc++-v3/:
* libsupc++/Makefile.am (LTCOMPILE, LTCXXCOMPILE, CXXLINK): Add
$(LIBTOOLFLAGS).
* libsupc++/Makefile.in: Regenerate.
* src/Makefile.am (LTCXXCOMPILE, CXXLINK): Add $(AM_LIBTOOLFLAGS)
and $(LIBTOOLFLAGS).
* src/Makefile.in: Regenerate.
libgomp/:
* Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
* Makefile.in: Regenerate.
libobjc/:
* Makefile.in (LIBTOOL): Add $(LIBTOOLFLAGS).
From-SVN: r151013
2009-08-22 14:43:24 +02:00
|
|
|
|
2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2009-08-20 13:11:34 +02:00
|
|
|
|
2009-08-20 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2009-08-19 08:38:29 +02:00
|
|
|
|
2009-08-19 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/41102
|
|
|
|
|
omp_lib.h.in: Fix -std=f95 errors.
|
|
|
|
|
|
2009-08-14 16:02:43 +02:00
|
|
|
|
2009-08-14 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.graphite: Move from gcc.dg/graphite.
|
|
|
|
|
* testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
|
|
|
|
|
* testsuite/libgomp.graphite/graphite.exp: New.
|
|
|
|
|
|
2009-08-05 18:11:54 +02:00
|
|
|
|
2009-08-05 Andreas Tobler <a.tobler@schweiz.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
|
|
|
|
|
only build.
|
|
|
|
|
|
2009-08-04 19:25:42 +02:00
|
|
|
|
2009-08-04 David Daney <ddaney@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/mutex.h (gomp_mutex_unlock): Add comment about
|
|
|
|
|
needed memory barrier semantics.
|
|
|
|
|
* config/linux/mips/mutex.h: New file.
|
|
|
|
|
|
2009-07-30 21:41:13 +02:00
|
|
|
|
2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
|
|
|
|
|
|
2009-07-17 01:18:08 +02:00
|
|
|
|
2009-07-16 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
re PR testsuite/40699 (All sparcv9 libjava execution tests fail on Solaris 11/SPARC)
gcc/testsuite/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* lib/gcc-defs.exp, lib/target-libpath.exp, lib/objc.exp,
lib/gfortran.exp, lib/g++.exp, lib/obj-c++.exp, lib/c-torture.exp,
lib/gcc-dg.exp, lib/gnat.exp, g++.dg/compat/compat.exp,
g++.dg/compat/struct-layout-1.exp: Revert 2009-06-30 commit.
libstdc++-v3/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libstdc++.exp: Revert 2009-06-30 commit.
libjava/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libjava.exp: Revert 2009-06-30 commit.
libgomp/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
* testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
libffi/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
2009-06-30 commits.
libmudflap/
PR testsuite/40699
PR testsuite/40707
PR testsuite/40709
* testsuite/lib/libmudflap.exp: Revert 2009-06-30 commit.
From-SVN: r149508
2009-07-11 08:10:49 +02:00
|
|
|
|
2009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/40699
|
|
|
|
|
PR testsuite/40707
|
|
|
|
|
PR testsuite/40709
|
|
|
|
|
* testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
|
|
|
|
|
* testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
|
|
|
|
|
testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
|
|
|
|
|
|
2009-07-02 22:55:23 +02:00
|
|
|
|
2009-07-02 Richard Sandiford <r.sandiford@uk.ibm.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
|
|
|
|
|
options when choosing a multilib.
|
|
|
|
|
|
2009-06-30 20:37:57 +02:00
|
|
|
|
2009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
|
|
|
|
|
ld_library_path. Use add_path. Add just find_libgcc_s to
|
|
|
|
|
ld_library_path, not every libgcc multilib directory.
|
|
|
|
|
* testsuite/libgomp.c/c.exp (ld_library_path): Don't call
|
|
|
|
|
gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
|
|
|
|
|
Use add_path.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
|
|
|
|
|
|
2009-06-09 16:37:31 +02:00
|
|
|
|
2009-06-09 Nathan Froyd <froydnj@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (LTLDFLAGS): Define.
|
|
|
|
|
(LINK): Define.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2009-05-27 22:02:02 +02:00
|
|
|
|
2009-05-27 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/39718
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Don't link with
|
|
|
|
|
libgfortranbegin, check existence of libgfortran.a instead of
|
|
|
|
|
libgfortranbegin.a.
|
|
|
|
|
|
2009-05-20 22:54:45 +02:00
|
|
|
|
2009-05-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/40174
|
|
|
|
|
* team.c (gomp_thread_start): Destroy thr->release semaphore.
|
|
|
|
|
(gomp_free_pool_helper): Likewise.
|
|
|
|
|
|
2009-04-20 12:59:59 +02:00
|
|
|
|
2009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/35423
|
|
|
|
|
* testsuite/libgomp.fortran/workshare2.f90: New test.
|
|
|
|
|
|
2009-04-09 17:00:19 +02:00
|
|
|
|
2009-04-09 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* iter.c: Change copyright header to refer to version 3 of the
|
|
|
|
|
GNU General Public License with version 3.1 of the GCC Runtime
|
|
|
|
|
Library Exception and to point readers at the COPYING3 and
|
|
|
|
|
COPYING3.RUNTIME files and the FSF's license web page.
|
|
|
|
|
* alloc.c: Likewise.
|
|
|
|
|
* barrier.c: Likewise.
|
|
|
|
|
* config/bsd/proc.c: Likewise.
|
|
|
|
|
* config/linux/affinity.c: Likewise.
|
|
|
|
|
* config/linux/alpha/futex.h: Likewise.
|
|
|
|
|
* config/linux/bar.c: Likewise.
|
|
|
|
|
* config/linux/bar.h: Likewise.
|
|
|
|
|
* config/linux/ia64/futex.h: Likewise.
|
|
|
|
|
* config/linux/ia64/mutex.h: Likewise.
|
|
|
|
|
* config/linux/lock.c: Likewise.
|
|
|
|
|
* config/linux/mips/futex.h: Likewise.
|
|
|
|
|
* config/linux/mutex.c: Likewise.
|
|
|
|
|
* config/linux/mutex.h: Likewise.
|
|
|
|
|
* config/linux/powerpc/futex.h: Likewise.
|
|
|
|
|
* config/linux/proc.c: Likewise.
|
|
|
|
|
* config/linux/ptrlock.c: Likewise.
|
|
|
|
|
* config/linux/ptrlock.h: Likewise.
|
|
|
|
|
* config/linux/s390/futex.h: Likewise.
|
|
|
|
|
* config/linux/sem.c: Likewise.
|
|
|
|
|
* config/linux/sem.h: Likewise.
|
|
|
|
|
* config/linux/sparc/futex.h: Likewise.
|
|
|
|
|
* config/linux/wait.h: Likewise.
|
|
|
|
|
* config/linux/x86/futex.h: Likewise.
|
|
|
|
|
* config/mingw32/proc.c: Likewise.
|
|
|
|
|
* config/mingw32/time.c: Likewise.
|
|
|
|
|
* config/posix/affinity.c: Likewise.
|
|
|
|
|
* config/posix/bar.c: Likewise.
|
|
|
|
|
* config/posix/bar.h: Likewise.
|
|
|
|
|
* config/posix/lock.c: Likewise.
|
|
|
|
|
* config/posix/mutex.h: Likewise.
|
|
|
|
|
* config/posix/proc.c: Likewise.
|
|
|
|
|
* config/posix/ptrlock.h: Likewise.
|
|
|
|
|
* config/posix/sem.c: Likewise.
|
|
|
|
|
* config/posix/sem.h: Likewise.
|
|
|
|
|
* config/posix/time.c: Likewise.
|
|
|
|
|
* config/posix95/lock.c: Likewise.
|
|
|
|
|
* critical.c: Likewise.
|
|
|
|
|
* env.c: Likewise.
|
|
|
|
|
* error.c: Likewise.
|
|
|
|
|
* fortran.c: Likewise.
|
|
|
|
|
* iter_ull.c: Likewise.
|
|
|
|
|
* libgomp.h: Likewise.
|
|
|
|
|
* libgomp_f.h.in: Likewise.
|
|
|
|
|
* libgomp_g.h: Likewise.
|
|
|
|
|
* loop.c: Likewise.
|
|
|
|
|
* loop_ull.c: Likewise.
|
|
|
|
|
* omp.h.in: Likewise.
|
|
|
|
|
* omp_lib.f90.in: Likewise.
|
|
|
|
|
* omp_lib.h.in: Likewise.
|
|
|
|
|
* ordered.c: Likewise.
|
|
|
|
|
* parallel.c: Likewise.
|
|
|
|
|
* sections.c: Likewise.
|
|
|
|
|
* single.c: Likewise.
|
|
|
|
|
* task.c: Likewise.
|
|
|
|
|
* team.c: Likewise.
|
|
|
|
|
* work.c: Likewise.
|
|
|
|
|
|
|
|
|
|
2009-04-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/config/default.exp: Change copyright header to refer to
|
|
|
|
|
version 3 of the GNU General Public License and to point readers
|
|
|
|
|
at the COPYING3 file and the FSF's license web page.
|
|
|
|
|
|
2009-04-08 22:04:45 +02:00
|
|
|
|
2009-04-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/39573
|
|
|
|
|
* libgomp.c++/pr39573.C: New test.
|
|
|
|
|
|
2009-04-01 08:54:52 +02:00
|
|
|
|
2009-04-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR other/39591
|
|
|
|
|
* testsuite/libgomp.c/pr39591-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr39591-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr39591-3.c: New test.
|
|
|
|
|
|
2009-03-25 14:36:02 +01:00
|
|
|
|
2009-03-25 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
|
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: Ditto.
|
|
|
|
|
|
2009-03-23 22:05:30 +01:00
|
|
|
|
2009-03-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/39495
|
|
|
|
|
* testsuite/libgomp.c/loop-12.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-11.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-12.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-8.C: New test.
|
|
|
|
|
|
2009-03-01 18:49:31 +01:00
|
|
|
|
2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2009-02-11 22:57:52 +01:00
|
|
|
|
2009-02-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/39154
|
|
|
|
|
* testsuite/libgomp.c/pr39154.c: New test.
|
|
|
|
|
|
2009-01-31 18:09:24 +01:00
|
|
|
|
2009-01-30 Ian Lance Taylor <iant@google.com>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
|
|
|
|
|
libgomp_ld_is_gold. Get gold version number.
|
|
|
|
|
(LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
|
|
|
|
|
* configure: Rebuild.
|
|
|
|
|
|
2009-01-20 01:59:24 +01:00
|
|
|
|
2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
|
|
|
|
|
|
2009-03-25 14:36:02 +01:00
|
|
|
|
* testsuite/lib/libgomp.exp: Add -B option for targets that
|
2009-01-20 01:59:24 +01:00
|
|
|
|
use libgfortran.a%s in their specs.
|
|
|
|
|
|
2009-01-07 23:48:03 +01:00
|
|
|
|
2009-01-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/38086
|
|
|
|
|
* acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
|
|
|
|
|
* libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
|
|
|
|
|
HAVE_AS_SYMVER_DIRECTIVE is not defined.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
|
2008-12-28 21:06:00 +01:00
|
|
|
|
2008-12-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/38650
|
|
|
|
|
* testsuite/libgomp.c/pr38650.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr38650.C: New test.
|
|
|
|
|
|
2008-12-27 16:20:28 +01:00
|
|
|
|
2008-12-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
|
|
|
|
|
|
2008-12-26 17:35:22 +01:00
|
|
|
|
2008-12-26 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
|
|
|
|
|
|
2008-12-18 21:04:55 +01:00
|
|
|
|
2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2008-12-08 11:36:01 +01:00
|
|
|
|
2008-12-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/36802
|
|
|
|
|
* testsuite/libgomp.c/pr36802-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr36802-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr36802-3.c: New test.
|
|
|
|
|
|
2008-12-02 01:18:56 +01:00
|
|
|
|
2008-12-01 Janis Johnson <janis187@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/38270
|
|
|
|
|
* config/linux/powerpc/mutex.h: New.
|
|
|
|
|
|
2008-12-01 16:10:25 +01:00
|
|
|
|
2008-12-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2008-12-01 16:27:12 +01:00
|
|
|
|
PR c++/38257
|
|
|
|
|
* testsuite/libgomp.c++/for-7.C: New test.
|
|
|
|
|
|
2008-12-01 16:10:25 +01:00
|
|
|
|
PR c++/38348
|
|
|
|
|
* testsuite/libgomp.c++/for-6.C: New test.
|
|
|
|
|
|
2008-11-26 19:51:07 +01:00
|
|
|
|
2008-11-26 Janis Johnson <janis187@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR testsuite/28870
|
|
|
|
|
* testsuite/lib/libgomp.exp: Include new timeout library files.
|
|
|
|
|
(libgomp_target_compile): Set timeout value from new proc.
|
|
|
|
|
|
2008-11-13 22:06:38 +01:00
|
|
|
|
2008-11-13 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/37938
|
|
|
|
|
* config/linux/ia64/mutex.h: New.
|
|
|
|
|
|
2008-11-04 19:16:17 +01:00
|
|
|
|
2008-11-04 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR libgomp/37935
|
|
|
|
|
* libgomp.texi (Runtime library routines, environment variables):
|
|
|
|
|
Update for OpenMP version 3.0.
|
|
|
|
|
|
2008-09-26 18:24:34 +02:00
|
|
|
|
2008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
|
|
|
|
|
Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate for new libtool.
|
|
|
|
|
* Makefile.in: Ditto.
|
|
|
|
|
* testsuite/Makefile.in: Ditto.
|
|
|
|
|
|
2008-09-19 22:27:11 +02:00
|
|
|
|
2008-09-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Andreas Tobler <a.tobler@schweiz.org>
|
|
|
|
|
|
|
|
|
|
* config/bsd/proc.c: New file.
|
2008-09-19 22:28:53 +02:00
|
|
|
|
* configure.tgt (*-*-darwin*): Use config_path "bsd posix".
|
2008-09-19 22:27:11 +02:00
|
|
|
|
* configure.ac: Check for header <sys/sysctl.h>
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Likewise.
|
|
|
|
|
|
2008-09-05 21:29:26 +02:00
|
|
|
|
2008-09-05 Janis Johnson <janis187@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
|
|
|
|
|
|
2008-08-31 20:16:09 +02:00
|
|
|
|
2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
|
|
2008-08-21 17:45:37 +02:00
|
|
|
|
2008-08-21 Nathan Froyd <froydnj@codesourcery.com>
|
2008-08-21 17:37:05 +02:00
|
|
|
|
|
2009-02-25 21:14:34 +01:00
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Only set things that
|
2008-08-21 17:37:05 +02:00
|
|
|
|
depend on blddir if blddir exists.
|
|
|
|
|
(libgomp_target_compile): Likewise.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Likewise.
|
|
|
|
|
|
2008-07-30 07:28:53 +02:00
|
|
|
|
2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Update to GFDL 1.2. Update copyright years.
|
|
|
|
|
Do not list GPL as Invariant Section.
|
|
|
|
|
|
2008-07-28 20:47:44 +02:00
|
|
|
|
2008-07-28 Ilie Garbacea <ilie@mips.com>
|
|
|
|
|
Chao-ying Fu <fu@mips.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt: Enable futex for MIPS.
|
|
|
|
|
* config/linux/mips/futex.h: New file.
|
|
|
|
|
|
2008-07-16 17:35:26 +02:00
|
|
|
|
2008-07-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* team.c (gomp_team_end): Free team immediately if it has
|
|
|
|
|
just one thread.
|
|
|
|
|
|
2008-07-08 21:13:29 +02:00
|
|
|
|
2008-07-08 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Append multilib library path.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Same.
|
|
|
|
|
* testsuite/libgomp.c/c.exp: Same.
|
|
|
|
|
* testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
|
|
|
|
|
directory to library path first.
|
|
|
|
|
|
2008-06-29 23:41:03 +02:00
|
|
|
|
2008-06-29 Krister Walfridsson <krister.walfridsson@gmail.com>
|
|
|
|
|
|
|
|
|
|
* env.c (parse_stacksize): Add cast to avoid warning.
|
|
|
|
|
(parse_spincount): Likewise.
|
|
|
|
|
|
2008-06-27 21:42:32 +02:00
|
|
|
|
2008-06-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2008-06-27 21:45:14 +02:00
|
|
|
|
* testsuite/libgomp.c/loop-10.c: New test.
|
|
|
|
|
* libgomp.c/loop-3.c (main): Add lastprivate clause.
|
|
|
|
|
* libgomp.c++/loop-6.C (main): Likewise.
|
|
|
|
|
|
2008-06-27 21:42:32 +02:00
|
|
|
|
PR debug/36617
|
|
|
|
|
* testsuite/libgomp.c/debug-1.c: New test.
|
|
|
|
|
|
2008-06-19 12:51:30 +02:00
|
|
|
|
2008-06-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/nqueens-1.c: New test.
|
|
|
|
|
|
2008-06-20 04:18:07 +02:00
|
|
|
|
PR c++/36523
|
|
|
|
|
* testsuite/libgomp.c++/task-7.C: New function.
|
|
|
|
|
|
2008-06-18 01:13:35 +02:00
|
|
|
|
2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2008-06-15 23:41:26 +02:00
|
|
|
|
2008-06-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
* env.c (initialize_env): Always initialize gomp_remaining_threads_lock
|
|
|
|
|
mutex when HAVE_SYNC_BUILTINS isn't defined.
|
|
|
|
|
|
2008-06-15 11:42:13 +02:00
|
|
|
|
2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi (omp_test_lock): Fix typo.
|
|
|
|
|
|
2008-06-12 14:15:29 +02:00
|
|
|
|
2008-06-12 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* omp_lib.f90.in: Add "implicit none".
|
|
|
|
|
|
2008-06-12 13:03:50 +02:00
|
|
|
|
2008-06-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/36506
|
|
|
|
|
* testsuite/libgomp.c/reduction-5.c: New test.
|
|
|
|
|
|
2008-06-11 08:27:04 +02:00
|
|
|
|
2008-06-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2008-06-11 23:43:45 +02:00
|
|
|
|
* libgomp.h (struct gomp_task): Add in_tied_task field.
|
|
|
|
|
* task.c (gomp_init_task): Initialize it.
|
|
|
|
|
(GOMP_task): Likewise. Call gomp_team_barrier_set_task_pending
|
|
|
|
|
unconditionally. Don't call gomp_team_barrier_wake if
|
|
|
|
|
current task is implicit or if(0) from implicit and number of
|
|
|
|
|
running tasks is equal to nthreads - 1.
|
|
|
|
|
|
2008-06-11 09:06:14 +02:00
|
|
|
|
PR libgomp/36471
|
|
|
|
|
* omp_lib.f90.in (omp_get_ancestor_thread_num_8,
|
|
|
|
|
omp_get_team_size_8): Fix pastos.
|
|
|
|
|
|
2008-06-11 08:27:04 +02:00
|
|
|
|
PR libgomp/36469
|
|
|
|
|
* configure.ac: Add AC_CHECK_FUNCS (strtoull).
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
* config.h.in: Regenerated.
|
|
|
|
|
* env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
|
|
|
|
|
defined.
|
|
|
|
|
|
2008-06-06 22:30:31 +02:00
|
|
|
|
2008-06-06 Andreas Tobler <a.tobler@schweiz.org>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/36452
|
|
|
|
|
* loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
|
|
|
|
|
(GOMP_loop_ull_dynamic_start): Likewise.
|
|
|
|
|
(GOMP_loop_ull_guided_start): Likewise.
|
|
|
|
|
(GOMP_loop_ull_ordered_static_start): Likewise.
|
|
|
|
|
(GOMP_loop_ull_ordered_dynamic_start): Likewise.
|
|
|
|
|
(GOMP_loop_ull_ordered_guided_start): Likewise.
|
|
|
|
|
|
c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
200805.
* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
Add omp_private_outer_ref hook, add another argument to
omp_clause_default_ctor hook.
* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
hook_tree_tree_tree_tree_null.
(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
* hooks.c (hook_tree_tree_tree_tree_null): New function.
* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
* tree.def (OMP_TASK): New tree code.
* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
OMP_CLAUSE_COLLAPSE_EXPR): Define.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(OMP_DIRECTIVE_P): Add OMP_TASK.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
and OMP_CLAUSE_UNTIED entries.
(omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
num_ops to 2.
(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
* c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
warning about unsigned iterators. Change decl/init/cond/incr
arguments to TREE_VECs, check arguments for all collapsed loops.
(c_finish_omp_taskwait): New function.
(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
ws_clauses.
* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
default_function_array_conversion on init. Add par_clauses argument.
If decl is present in parallel's lastprivate clause, change it to
shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
collapse count in clauses.
(c_parser_omp_for, c_parser_omp_parallel): Adjust
c_parser_omp_for_loop callers.
(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
(c_parser_omp_clause_name): Handle collapse and untied clauses.
(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
functions.
(c_parser_omp_clause_schedule): Handle schedule(auto).
Include correct location in the error message.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_TASK_CLAUSE_MASK): Define.
(c_parser_omp_task, c_parser_omp_taskwait): New functions.
(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
OMP_CLAUSE_DECL.
(conver_nonlocal_reference, convert_local_reference,
convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
* c-common.h (c_finish_omp_taskwait): New prototype.
* gimple-low.c (lower_stmt): Handle OMP_TASK.
* tree-parloops.c (create_parallel_loop): Create 1 entry
vectors for OMP_FOR_{INIT,COND,INCR}.
* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
(make_edges): Handle OMP_TASK.
* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
handle POINTER_PLUS_EXPR. If loop counter has been replaced and
original iterator is present in lastprivate clause or if
collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Handle
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
to be implicitly determined firstprivate for task regions.
(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Set
OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Take region_type as last argument
instead of in_parallel and in_combined_parallel.
(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
Adjust callers.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause
langhook.
(new_omp_context): Set default_kind to
OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
(omp_region_type): New enum.
(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
fields, add region_type.
(new_omp_context): Take region_type as argument instead of is_parallel
and is_combined_parallel.
(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
omp_is_private, omp_check_private): Adjust ctx->is_parallel and
ctx->is_combined_parallel checks.
(gimplify_omp_task): New function.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* omp-low.c (extract_omp_for_data): Use schedule(static)
for schedule(auto). Handle pointer and unsigned iterators.
Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
Add loops argument. Extract data for collapsed OMP_FOR loops.
(expand_parallel_call): Assert sched_kind isn't auto,
map runtime schedule to index 3.
(struct omp_for_data_loop): New type.
(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
Add loop, loops, collapse and iter_type fields.
(workshare_safe_to_combine_p): Disallow combined for if
iter_type is unsigned long long. Don't combine collapse > 1 loops
unless all bounds and steps are constant. Adjust extract_omp_for_data
caller.
(expand_omp_for_generic): Handle pointer, unsigned and long long
iterators. Handle collapsed OMP_FOR loops. Adjust
for struct omp_for_data changes. If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
pointer, unsigned and long long iterators. Adjust for struct
omp_for_data changes.
(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
unsigned long long. Allocate loops array, pass it to
extract_omp_for_data. For collapse > 1 loops use always
expand_omp_for_generic.
(omp_context): Add sfield_map and srecord_type fields.
(is_task_ctx, lookup_sfield): New functions.
(use_pointer_for_field): Use is_task_ctx helper. Change first
argument's type from const_tree to tree. Clarify comment.
In OMP_TASK disallow copy-in/out sharing.
(build_sender_ref): Call lookup_sfield instead of lookup_field.
(install_var_field): Add mask argument. Populate both record_type
and srecord_type if needed.
(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
in srecord_type.
(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
and DECL_FIELD_OFFSET.
(scan_sharing_clauses): Adjust install_var_field callers. For
firstprivate clauses on explicit tasks allocate the var by value in
record_type unconditionally, rather than by reference.
Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
Use is_taskreg_ctx instead of is_parallel_ctx.
Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
(create_omp_child_function_name): Add task_copy argument, use
*_omp_cpyfn* names if it is true.
(create_omp_child_function): Add task_copy argument, if true create
*_omp_cpyfn* helper function.
(scan_omp_parallel): Adjust create_omp_child_function callers.
Rename parallel_nesting_level to taskreg_nesting_level.
(scan_omp_task): New function.
(lower_rec_input_clauses): Don't run constructors for firstprivate
explicit task vars which are initialized by *_omp_cpyfn*.
Pass outer var ref to omp_clause_default_ctor hook if
OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
OMP_CLAUSE_REDUCTION_INIT.
(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
avoid duplicate setting of fields. Handle
OMP_CLAUSE_PRIVATE_OUTER_REF.
(lower_send_shared_vars): Use srecord_type if non-NULL. Don't
copy-out if TREE_READONLY, only copy-in.
(expand_task_copyfn): New function.
(expand_task_call): New function.
(struct omp_taskcopy_context): New type.
(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
New functions.
(lower_omp_parallel): Rename to...
(lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call create_task_copyfn if srecord_type is needed. Adjust
sender_decl type.
(task_shared_vars): New variable.
(check_omp_nesting_restrictions): Warn if work-sharing,
barrier, master or ordered region is closely nested inside OMP_TASK.
Add warnings for barrier if closely nested inside of work-sharing,
ordered, or master region.
(scan_omp_1): Call check_omp_nesting_restrictions even for
GOMP_barrier calls. Rename parallel_nesting_level to
taskreg_nesting_level. Handle OMP_TASK.
(lower_lastprivate_clauses): Even if some lastprivate is found on a
work-sharing construct, continue looking for them on parent parallel
construct.
(lower_omp_for_lastprivate): Add lastprivate clauses
to the beginning of dlist rather than end. Adjust for struct
omp_for_data changes.
(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
not after it. Handle collapsed OMP_FOR loops, adjust for
OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
caller.
(get_ws_args_for): Adjust extract_omp_for_data caller.
(scan_omp_for): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(lower_omp_single_simple): If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
(parallel_nesting_level): Rename to...
(taskreg_nesting_level): ... this.
(is_taskreg_ctx): New function.
(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
of is_parallel_ctx.
(execute_lower_omp): Rename parallel_nesting_level to
taskreg_nesting_level.
(expand_omp_parallel): Rename to...
(expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call omp_task_call for OMP_TASK regions.
(expand_omp): Adjust caller, handle OMP_TASK.
(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
* bitmap.c (bitmap_default_obstack_depth): New variable.
(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
if argument is NULL and bitmap_default_obstack is already initialized.
* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
at the end.
* matrix-reorg.c (matrix_reorg): Likewise.
cp/
* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
dependent_omp_for_p, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New prototypes.
(cxx_omp_clause_default_ctor): Add outer argument.
(finish_omp_for): Add new clauses argument.
* cp-gimplify.c (cxx_omp_finish_clause): New function.
(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
(cxx_omp_clause_default_ctor): Add outer argument.
(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
Add par_clauses argument. If decl is present in parallel's
lastprivate clause, change that clause to shared and add
a lastprivate clause for decl to OMP_FOR_CLAUSES.
Fix wording of error messages. Adjust finish_omp_for caller.
Add clauses argument. Parse loops with random access iterators.
(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
functions.
(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
cp_parser_omp_for_loop callers.
(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
functions.
(cp_parser_omp_clause_name): Handle collapse and untied
clauses.
(cp_parser_omp_clause_schedule): Handle auto schedule.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSE_MASK): Define.
(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
PRAGMA_OMP_TASKWAIT.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT.
(tsubst_omp_for_iterator): New function.
(dependent_omp_for_p): New function.
(tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FOR
loops. Adjust finish_omp_for caller. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes.
(tsubst_expr): Handle OMP_TASK.
* semantics.c (cxx_omp_create_clause_info): New function.
(finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED and
OMP_CLAUSE_COLLAPSE.
(cxx_omp_predetermined_sharing): Removed.
* semantics.c (finish_omp_for): Allow pointer iterators. Use
handle_omp_for_class_iterator and dependent_omp_for_p. Handle
collapsed for loops. Adjust c_finish_omp_for caller. Add new
clauses argument. Fix check for type dependent cond or incr.
Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead of
fold_convert to convert incr amount to difference_type. Only
fold if not in template. If decl is mentioned in lastprivate
clause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR}
changes.
(finish_omp_threadprivate): Allow static class members of the
current class.
(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New functions.
* parser.c (cp_parser_binary_expression): Add prec argument.
(cp_parser_assignment_expression): Adjust caller.
* cp-tree.h (outer_curly_brace_block): New prototype.
* decl.c (outer_curly_brace_block): No longer static.
fortran/
* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
* parse.c (next_free): Allow tab after !$omp.
(decode_omp_directive): Handle !$omp task, !$omp taskwait
and !$omp end task.
(case_executable): Add ST_OMP_TASKWAIT.
(case_exec_markers): Add ST_OMP_TASK.
(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
ST_OMP_TASKWAIT.
(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
* gfortran.h (gfc_find_sym_in_expr): New prototype.
(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
untied fields.
(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
* trans.h (gfc_omp_clause_default_ctor): Add another argument.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
than boolean_type_node.
* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
untied and collapse clauses.
(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
* st.c (gfc_free_statement): Likewise.
* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
(find_sym_in_expr): Rename to...
(gfc_find_sym_in_expr): ... this. No longer static.
(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
prototypes.
* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
firstprivate, lastprivate, reduction, copyprivate and copyin
clauses.
(omp_current_do_code): Made static.
(omp_current_do_collapse): New variable.
(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
clear omp_current_do_code and omp_current_do_collapse on return.
(gfc_resolve_do_iterator): Handle collapsed do loops.
(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
(gfc_match_omp_clauses): Handle default (firstprivate),
schedule (auto), untied and collapse (n) clauses.
(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSES): Define.
(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
* trans-openmp.c (gfc_omp_private_outer_ref): New function.
(gfc_omp_clause_default_ctor): Add outer argument. For allocatable
arrays allocate them with the bounds of the outer var if outer
var is allocated.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor): New functions.
(gfc_trans_omp_array_reduction): If decl is allocatable array,
allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
for assumed-size arrays.
(gfc_trans_omp_do): Add par_clauses argument. If dovar is
present in lastprivate clause and do loop isn't simple,
set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
parallel's lastprivate clause, change it to shared and add
lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
(gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
OMP_FOR from OMP_PARALLEL.
(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
gcc/testsuite/
* gcc.dg/gomp/collapse-1.c: New test.
* gcc.dg/gomp/nesting-1.c: New test.
* g++.dg/gomp/task-1.C: New test.
* g++.dg/gomp/predetermined-1.C: New test.
* g++.dg/gomp/tls-4.C: New test.
* gfortran.dg/gomp/collapse1.f90: New test.
* gfortran.dg/gomp/sharing-3.f90: New test.
* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
* g++.dg/gomp/pr27499.C (foo): Likewise.
* g++.dg/gomp/for-16.C (foo): Likewise.
* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
* g++.dg/gomp/pr34607.C: Adjust dg-error location.
* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
about allocatable array.
* gfortran.dg/gomp/reduction1.f90: Likewise.
libgomp/
* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
Substitute also OMP_*LOCK_25*.
* configure: Regenerated.
* config.h.in: Regenerated.
* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
ptrlock.c and task.c.
* Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* task.c: New file.
* loop_ull.c: New file.
* iter_ull.c: New file.
* libgomp.h: Include ptrlock.h.
(enum gomp_task_kind): New type.
(struct gomp_team): Add task_lock, task_queue, task_count,
task_running_count, single_count fields. Add
work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
Remove work_share_lock, generation_mask,
oldest_live_gen, num_live_gen and init_work_shares fields, add
work work_share_list_alloc, work_share_list_free and work_share_chunk
fields. Change work_shares from pointer to pointers into an array.
Change ordered_release field into gomp_sem_t ** from flexible array
member. Add implicit_task and initial_work_shares fields.
Move close to the end of the struct.
(struct gomp_team_state): Add single_count, last_work_share,
active_level and level fields, remove work_share_generation.
(gomp_barrier_handle_tasks): New prototype.
(gomp_finish_task): New inline function.
(struct gomp_work_share): Move chunk_size, end, incr into
transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
next_ll fields. Reshuffle fields. Add next_alloc,
next_ws, next_free and inline_ordered_team_ids fields, change
ordered_team_ids into pointer from flexible array member.
Add mode field. Put lock and next into a different cache line
from most of the write-once fields.
(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
gomp_iter_ull_guided_next): New prototypes.
(gomp_new_icv): New prototype.
(struct gomp_thread): Add thread_pool and task fields.
(struct gomp_thread_pool): New type.
(gomp_new_team): New prototype.
(gomp_team_start): Change type of last argument.
(gomp_new_work_share): Removed.
(gomp_init_work_share, gomp_fini_work_share): New prototypes.
(gomp_work_share_init_done): New static inline.
(gomp_throttled_spin_count_var, gomp_available_cpus,
gomp_managed_threads): New extern decls.
(gomp_init_task): New prototype.
(gomp_spin_count_var): New extern var decl.
(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
or no alias support, or if not PIC.
(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
gomp_test_nest_lock_25): New prototypes.
(omp_lock_symver, strong_alias): Define.
(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
decls.
(gomp_end_task): New.
(struct gomp_task_icv, gomp_global_icv): New.
(gomp_thread_limit_var, gomp_max_active_levels_var): New.
(struct gomp_task): New.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_icv): New.
(gomp_schedule_type): Reorder enum to match
omp_sched_t.
* team.c (struct gomp_thread_start_data): Add thread_pool and task
fields.
(gomp_thread_start): Add gomp_team_barrier_wait call.
For non-nested case remove clearing of docked thread thr fields.
Use pool fields instead of global gomp_* variables. Use
gomp_barrier_wait_last when needed. Initialize ts.active_level.
Create tasks for each member thread.
(free_team): Only destroy team barrier, task_lock here and free it.
(gomp_free_thread): Free last_team if non-NULL.
(gomp_team_end): Call gomp_team_barrier_wait instead of
gomp_barrier_wait. For nested case call one extra
gomp_barrier_wait. Move here some destruction from free_team.
Call free_team on pool->last_team if any, rather than freeing
current team. Destroy work_share_list_free_lock ifndef
HAVE_SYNC_BUILTINS.
(gomp_new_icv): New function.
(gomp_threads, gomp_threads_size, gomp_threads_used,
gomp_threads_dock): Removed.
(gomp_thread_destructor): New variable.
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
functions.
(gomp_team_start): Create new pool if current thread doesn't have
one. Use pool fields instead of global gomp_* variables.
Initialize thread_pool field for new threads. Clear single_count.
Change last argument from ws to team, don't create
new team, set ts.work_share to &team->work_shares[0] and clear
ts.last_work_share. Don't clear ts.work_share_generation.
If number of threads changed, adjust atomically gomp_managed_threads.
Use gomp_init_task instead of gomp_new_task,
set thr->task to the corresponding implicit_task array entry.
Create tasks for each member thread. Initialize ts.level.
(initialize_team): Call pthread_key_create on
gomp_thread_destructor.
(team_destructor): New function.
(new_team): Removed.
(gomp_new_team): New function.
(free_team): Free gomp_work_share blocks chained through next_alloc,
instead of freeing work_shares and destroying work_share_lock.
(gomp_team_end): Call gomp_fini_work_share. If number of threads
changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
instead of gomp_barrier_wait. Call gomp_work_share_init_done
if gomp_work_share_start returned true. Don't unlock ws->lock.
(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
gomp_work_share_init_done if gomp_work_share_start returned true.
Don't unlock ws->lock.
* work.c: Include stddef.h.
(free_work_share): Use work_share_list_free_lock instead
of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
Call gomp_fini_work_share and then either free ws if orphaned, or
put it into work_share_list_free list of the current team.
(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
functions.
(gomp_work_share_start, gomp_work_share_end,
gomp_work_share_end_nowait): Rewritten.
* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
(openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New interfaces.
* omp_lib.h.in (openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New externals.
* loop.c: Include limits.h.
(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
GFS_AUTO.
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
Likewise. Use gomp_icv.
(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
ts.static_trip here.
(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
don't unlock ws->lock, otherwise lock it.
(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
(gomp_parallel_loop_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass 0 as second argument to
gomp_resolve_num_threads.
(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
If adding ws->chunk_size nthreads + 1 times after end won't
overflow, set ws->mode to 1.
* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
prototypes.
* libgomp.map: Export lock routines also @@OMP_2.0.
(GOMP_loop_ordered_dynamic_first,
GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
GOMP_loop_ordered_static_first): Remove.
(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
GOMP_loop_ull_ordered_dynamic_next,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_next,
GOMP_loop_ull_ordered_runtime_start,
GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New exports @@OMP_3.0.
* omp.h.in (omp_sched_t): New type.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New prototypes.
* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
gomp_thread_limit_var, gomp_remaining_threads_count,
gomp_remaining_threads_lock): New variables.
(parse_spincount): New function.
(initialize_env): Call gomp_init_num_threads unconditionally.
Initialize gomp_available_cpus. Call parse_spincount,
initialize gomp_{,throttled_}spin_count_var
depending on presence and value of OMP_WAIT_POLICY and
GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
gomp_remaining_threads_lock if needed. Use gomp_global_icv.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_global_icv): New.
(parse_schedule): Use it. Parse "auto".
(omp_set_num_threads): Use gomp_icv.
(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
Likewise.
(omp_get_max_threads): Move from parallel.c.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels): New functions,
add ialias.
(parse_stacksize, parse_wait_policy): New functions.
* fortran.c: Rewrite lock wrappers, if symbol versioning provide
both wrappers for compatibility and new locks.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New ialias_redirect.
(omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New functions.
* parallel.c: Include limits.h.
(gomp_resolve_num_threads): Add count argument. Rewritten.
(GOMP_parallel_start): Call gomp_new_team and pass that as last
argument to gomp_team_start. Pass 0 as second argument to
gomp_resolve_num_threads.
(GOMP_parallel_end): Decrease gomp_remaining_threads_count
if gomp_thread_limit_var != ULONG_MAX.
(omp_in_parallel): Implement using ts.active_level.
(omp_get_max_threads): Move to env.c.
(omp_get_level, omp_get_ancestor_thread_num,
omp_get_team_size, omp_get_active_level): New functions,
add ialias.
* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it, otherwise acquire it before calling
gomp_iter_dynamic_next_locked.
(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it.
(GOMP_parallel_sections_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass count as second argument to
gomp_resolve_num_threads, don't adjust num_threads after the call.
Use gomp_icv.
* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
ws->chunk_size by incr.
(gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
code.
* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
types.
(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
(omp_check_defines): Check even the compat defines.
* config/linux/ptrlock.c: New file.
* config/linux/ptrlock.h: New file.
* config/linux/wait.h: New file.
* config/posix/ptrlock.c: New file.
* config/posix/ptrlock.h: New file.
* config/linux/bar.h (gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_t): Rewritten.
(gomp_barrier_state_t): New typedef.
(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
gomp_barrier_wait_start): Rewritten.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/linux/bar.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_barrier_wait_end): Rewritten.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
* config/posix/bar.h (gomp_barrier_t): Add generation field.
(gomp_barrier_state_t): New typedef.
(gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_barrier_wait_start): Or all but low 2 bits from generation
into the return value. Return gomp_barrier_state_t.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake): New functions.
* config/linux/mutex.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_futex_wake, gomp_futex_wait): New variables.
(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
* config/linux/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning. Include wait.h instead of libgomp.h and
futex.h.
(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
* config/posix95/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/posix/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
* config/posix/proc.c, config/mingw32/proc.c: Similarly.
* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sem.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
types.
(omp_nest_lock_t): Change owner into void *, add lock field.
* config/posix95/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Change owner to void *.
* config/posix/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Add owner field.
* testsuite/libgomp.c/collapse-1.c: New test.
* testsuite/libgomp.c/collapse-2.c: New test.
* testsuite/libgomp.c/collapse-3.c: New test.
* testsuite/libgomp.c/icv-1.c: New test.
* testsuite/libgomp.c/icv-2.c: New test.
* testsuite/libgomp.c/lib-2.c: New test.
* testsuite/libgomp.c/lock-1.c: New test.
* testsuite/libgomp.c/lock-2.c: New test.
* testsuite/libgomp.c/lock-3.c: New test.
* testsuite/libgomp.c/loop-4.c: New test.
* testsuite/libgomp.c/loop-5.c: New test.
* testsuite/libgomp.c/loop-6.c: New test.
* testsuite/libgomp.c/loop-7.c: New test.
* testsuite/libgomp.c/loop-8.c: New test.
* testsuite/libgomp.c/loop-9.c: New test.
* testsuite/libgomp.c/nested-3.c: New test.
* testsuite/libgomp.c/nestedfn-6.c: New test.
* testsuite/libgomp.c/sort-1.c: New test.
* testsuite/libgomp.c/task-1.c: New test.
* testsuite/libgomp.c/task-2.c: New test.
* testsuite/libgomp.c/task-3.c: New test.
* testsuite/libgomp.c/task-4.c: New test.
* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
to C++ testsuite default compiler options.
* testsuite/libgomp.c++/collapse-1.C: New test.
* testsuite/libgomp.c++/collapse-2.C: New test.
* testsuite/libgomp.c++/ctor-10.C: New test.
* testsuite/libgomp.c++/for-1.C: New test.
* testsuite/libgomp.c++/for-2.C: New test.
* testsuite/libgomp.c++/for-3.C: New test.
* testsuite/libgomp.c++/for-4.C: New test.
* testsuite/libgomp.c++/for-5.C: New test.
* testsuite/libgomp.c++/loop-8.C: New test.
* testsuite/libgomp.c++/loop-9.C: New test.
* testsuite/libgomp.c++/loop-10.C: New test.
* testsuite/libgomp.c++/task-1.C: New test.
* testsuite/libgomp.c++/task-2.C: New test.
* testsuite/libgomp.c++/task-3.C: New test.
* testsuite/libgomp.c++/task-4.C: New test.
* testsuite/libgomp.c++/task-5.C: New test.
* testsuite/libgomp.c++/task-6.C: New test.
* testsuite/libgomp.fortran/allocatable1.f90: New test.
* testsuite/libgomp.fortran/allocatable2.f90: New test.
* testsuite/libgomp.fortran/allocatable3.f90: New test.
* testsuite/libgomp.fortran/allocatable4.f90: New test.
* testsuite/libgomp.fortran/collapse1.f90: New test.
* testsuite/libgomp.fortran/collapse2.f90: New test.
* testsuite/libgomp.fortran/collapse3.f90: New test.
* testsuite/libgomp.fortran/collapse4.f90: New test.
* testsuite/libgomp.fortran/lastprivate1.f90: New test.
* testsuite/libgomp.fortran/lastprivate2.f90: New test.
* testsuite/libgomp.fortran/lib4.f90: New test.
* testsuite/libgomp.fortran/lock-1.f90: New test.
* testsuite/libgomp.fortran/lock-2.f90: New test.
* testsuite/libgomp.fortran/nested1.f90: New test.
* testsuite/libgomp.fortran/nestedfn4.f90: New test.
* testsuite/libgomp.fortran/strassen.f90: New test.
* testsuite/libgomp.fortran/tabs1.f90: New test.
* testsuite/libgomp.fortran/tabs2.f: New test.
* testsuite/libgomp.fortran/task1.f90: New test.
* testsuite/libgomp.fortran/task2.f90: New test.
* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
* testsuite/libgomp.c/pr26943-2.c: Likewise.
* testsuite/libgomp.c/pr26943-3.c: Likewise.
* testsuite/libgomp.c/pr26943-4.c: Likewise.
Co-Authored-By: Jakob Blomer <jakob.blomer@ira.uka.de>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
From-SVN: r136433
2008-06-06 15:01:54 +02:00
|
|
|
|
2008-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Richard Henderson <rth@redhat.com>
|
|
|
|
|
Ulrich Drepper <drepper@redhat.com>
|
|
|
|
|
Jakob Blomer <jakob.blomer@ira.uka.de>
|
|
|
|
|
|
|
|
|
|
* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
|
|
|
|
|
Substitute also OMP_*LOCK_25*.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
* config.h.in: Regenerated.
|
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
|
|
|
|
|
ptrlock.c and task.c.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
|
* task.c: New file.
|
|
|
|
|
* loop_ull.c: New file.
|
|
|
|
|
* iter_ull.c: New file.
|
|
|
|
|
* libgomp.h: Include ptrlock.h.
|
|
|
|
|
(enum gomp_task_kind): New type.
|
|
|
|
|
(struct gomp_team): Add task_lock, task_queue, task_count,
|
|
|
|
|
task_running_count, single_count fields. Add
|
|
|
|
|
work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
|
|
|
|
|
Remove work_share_lock, generation_mask,
|
|
|
|
|
oldest_live_gen, num_live_gen and init_work_shares fields, add
|
|
|
|
|
work work_share_list_alloc, work_share_list_free and work_share_chunk
|
|
|
|
|
fields. Change work_shares from pointer to pointers into an array.
|
|
|
|
|
Change ordered_release field into gomp_sem_t ** from flexible array
|
|
|
|
|
member. Add implicit_task and initial_work_shares fields.
|
|
|
|
|
Move close to the end of the struct.
|
|
|
|
|
(struct gomp_team_state): Add single_count, last_work_share,
|
|
|
|
|
active_level and level fields, remove work_share_generation.
|
|
|
|
|
(gomp_barrier_handle_tasks): New prototype.
|
|
|
|
|
(gomp_finish_task): New inline function.
|
|
|
|
|
(struct gomp_work_share): Move chunk_size, end, incr into
|
|
|
|
|
transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
|
|
|
|
|
next_ll fields. Reshuffle fields. Add next_alloc,
|
|
|
|
|
next_ws, next_free and inline_ordered_team_ids fields, change
|
|
|
|
|
ordered_team_ids into pointer from flexible array member.
|
|
|
|
|
Add mode field. Put lock and next into a different cache line
|
|
|
|
|
from most of the write-once fields.
|
|
|
|
|
(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
|
|
|
|
|
gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
|
|
|
|
|
gomp_iter_ull_guided_next): New prototypes.
|
|
|
|
|
(gomp_new_icv): New prototype.
|
|
|
|
|
(struct gomp_thread): Add thread_pool and task fields.
|
|
|
|
|
(struct gomp_thread_pool): New type.
|
|
|
|
|
(gomp_new_team): New prototype.
|
|
|
|
|
(gomp_team_start): Change type of last argument.
|
|
|
|
|
(gomp_new_work_share): Removed.
|
|
|
|
|
(gomp_init_work_share, gomp_fini_work_share): New prototypes.
|
|
|
|
|
(gomp_work_share_init_done): New static inline.
|
|
|
|
|
(gomp_throttled_spin_count_var, gomp_available_cpus,
|
|
|
|
|
gomp_managed_threads): New extern decls.
|
|
|
|
|
(gomp_init_task): New prototype.
|
|
|
|
|
(gomp_spin_count_var): New extern var decl.
|
|
|
|
|
(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
|
|
|
|
|
or no alias support, or if not PIC.
|
|
|
|
|
(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
|
|
|
|
|
gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
|
|
|
|
|
gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
|
|
|
|
|
gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
|
|
|
|
|
gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
|
|
|
|
|
gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
|
|
|
|
|
gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
|
|
|
|
|
gomp_test_nest_lock_25): New prototypes.
|
|
|
|
|
(omp_lock_symver, strong_alias): Define.
|
|
|
|
|
(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
|
|
|
|
|
decls.
|
|
|
|
|
(gomp_end_task): New.
|
|
|
|
|
(struct gomp_task_icv, gomp_global_icv): New.
|
|
|
|
|
(gomp_thread_limit_var, gomp_max_active_levels_var): New.
|
|
|
|
|
(struct gomp_task): New.
|
|
|
|
|
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
|
|
|
|
|
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
|
|
|
|
|
(gomp_icv): New.
|
|
|
|
|
(gomp_schedule_type): Reorder enum to match
|
|
|
|
|
omp_sched_t.
|
|
|
|
|
* team.c (struct gomp_thread_start_data): Add thread_pool and task
|
|
|
|
|
fields.
|
|
|
|
|
(gomp_thread_start): Add gomp_team_barrier_wait call.
|
|
|
|
|
For non-nested case remove clearing of docked thread thr fields.
|
|
|
|
|
Use pool fields instead of global gomp_* variables. Use
|
|
|
|
|
gomp_barrier_wait_last when needed. Initialize ts.active_level.
|
|
|
|
|
Create tasks for each member thread.
|
|
|
|
|
(free_team): Only destroy team barrier, task_lock here and free it.
|
|
|
|
|
(gomp_free_thread): Free last_team if non-NULL.
|
|
|
|
|
(gomp_team_end): Call gomp_team_barrier_wait instead of
|
|
|
|
|
gomp_barrier_wait. For nested case call one extra
|
|
|
|
|
gomp_barrier_wait. Move here some destruction from free_team.
|
|
|
|
|
Call free_team on pool->last_team if any, rather than freeing
|
|
|
|
|
current team. Destroy work_share_list_free_lock ifndef
|
|
|
|
|
HAVE_SYNC_BUILTINS.
|
|
|
|
|
(gomp_new_icv): New function.
|
|
|
|
|
(gomp_threads, gomp_threads_size, gomp_threads_used,
|
|
|
|
|
gomp_threads_dock): Removed.
|
|
|
|
|
(gomp_thread_destructor): New variable.
|
|
|
|
|
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
|
|
|
|
|
functions.
|
|
|
|
|
(gomp_team_start): Create new pool if current thread doesn't have
|
2011-11-30 04:43:57 +01:00
|
|
|
|
one. Use pool fields instead of global gomp_* variables.
|
c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
200805.
* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
Add omp_private_outer_ref hook, add another argument to
omp_clause_default_ctor hook.
* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
hook_tree_tree_tree_tree_null.
(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
* hooks.c (hook_tree_tree_tree_tree_null): New function.
* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
* tree.def (OMP_TASK): New tree code.
* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
OMP_CLAUSE_COLLAPSE_EXPR): Define.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(OMP_DIRECTIVE_P): Add OMP_TASK.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
and OMP_CLAUSE_UNTIED entries.
(omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
num_ops to 2.
(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
* c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
warning about unsigned iterators. Change decl/init/cond/incr
arguments to TREE_VECs, check arguments for all collapsed loops.
(c_finish_omp_taskwait): New function.
(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
ws_clauses.
* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
default_function_array_conversion on init. Add par_clauses argument.
If decl is present in parallel's lastprivate clause, change it to
shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
collapse count in clauses.
(c_parser_omp_for, c_parser_omp_parallel): Adjust
c_parser_omp_for_loop callers.
(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
(c_parser_omp_clause_name): Handle collapse and untied clauses.
(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
functions.
(c_parser_omp_clause_schedule): Handle schedule(auto).
Include correct location in the error message.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_TASK_CLAUSE_MASK): Define.
(c_parser_omp_task, c_parser_omp_taskwait): New functions.
(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
OMP_CLAUSE_DECL.
(conver_nonlocal_reference, convert_local_reference,
convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
* c-common.h (c_finish_omp_taskwait): New prototype.
* gimple-low.c (lower_stmt): Handle OMP_TASK.
* tree-parloops.c (create_parallel_loop): Create 1 entry
vectors for OMP_FOR_{INIT,COND,INCR}.
* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
(make_edges): Handle OMP_TASK.
* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
handle POINTER_PLUS_EXPR. If loop counter has been replaced and
original iterator is present in lastprivate clause or if
collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Handle
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
to be implicitly determined firstprivate for task regions.
(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Set
OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Take region_type as last argument
instead of in_parallel and in_combined_parallel.
(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
Adjust callers.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause
langhook.
(new_omp_context): Set default_kind to
OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
(omp_region_type): New enum.
(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
fields, add region_type.
(new_omp_context): Take region_type as argument instead of is_parallel
and is_combined_parallel.
(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
omp_is_private, omp_check_private): Adjust ctx->is_parallel and
ctx->is_combined_parallel checks.
(gimplify_omp_task): New function.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* omp-low.c (extract_omp_for_data): Use schedule(static)
for schedule(auto). Handle pointer and unsigned iterators.
Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
Add loops argument. Extract data for collapsed OMP_FOR loops.
(expand_parallel_call): Assert sched_kind isn't auto,
map runtime schedule to index 3.
(struct omp_for_data_loop): New type.
(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
Add loop, loops, collapse and iter_type fields.
(workshare_safe_to_combine_p): Disallow combined for if
iter_type is unsigned long long. Don't combine collapse > 1 loops
unless all bounds and steps are constant. Adjust extract_omp_for_data
caller.
(expand_omp_for_generic): Handle pointer, unsigned and long long
iterators. Handle collapsed OMP_FOR loops. Adjust
for struct omp_for_data changes. If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
pointer, unsigned and long long iterators. Adjust for struct
omp_for_data changes.
(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
unsigned long long. Allocate loops array, pass it to
extract_omp_for_data. For collapse > 1 loops use always
expand_omp_for_generic.
(omp_context): Add sfield_map and srecord_type fields.
(is_task_ctx, lookup_sfield): New functions.
(use_pointer_for_field): Use is_task_ctx helper. Change first
argument's type from const_tree to tree. Clarify comment.
In OMP_TASK disallow copy-in/out sharing.
(build_sender_ref): Call lookup_sfield instead of lookup_field.
(install_var_field): Add mask argument. Populate both record_type
and srecord_type if needed.
(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
in srecord_type.
(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
and DECL_FIELD_OFFSET.
(scan_sharing_clauses): Adjust install_var_field callers. For
firstprivate clauses on explicit tasks allocate the var by value in
record_type unconditionally, rather than by reference.
Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
Use is_taskreg_ctx instead of is_parallel_ctx.
Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
(create_omp_child_function_name): Add task_copy argument, use
*_omp_cpyfn* names if it is true.
(create_omp_child_function): Add task_copy argument, if true create
*_omp_cpyfn* helper function.
(scan_omp_parallel): Adjust create_omp_child_function callers.
Rename parallel_nesting_level to taskreg_nesting_level.
(scan_omp_task): New function.
(lower_rec_input_clauses): Don't run constructors for firstprivate
explicit task vars which are initialized by *_omp_cpyfn*.
Pass outer var ref to omp_clause_default_ctor hook if
OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
OMP_CLAUSE_REDUCTION_INIT.
(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
avoid duplicate setting of fields. Handle
OMP_CLAUSE_PRIVATE_OUTER_REF.
(lower_send_shared_vars): Use srecord_type if non-NULL. Don't
copy-out if TREE_READONLY, only copy-in.
(expand_task_copyfn): New function.
(expand_task_call): New function.
(struct omp_taskcopy_context): New type.
(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
New functions.
(lower_omp_parallel): Rename to...
(lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call create_task_copyfn if srecord_type is needed. Adjust
sender_decl type.
(task_shared_vars): New variable.
(check_omp_nesting_restrictions): Warn if work-sharing,
barrier, master or ordered region is closely nested inside OMP_TASK.
Add warnings for barrier if closely nested inside of work-sharing,
ordered, or master region.
(scan_omp_1): Call check_omp_nesting_restrictions even for
GOMP_barrier calls. Rename parallel_nesting_level to
taskreg_nesting_level. Handle OMP_TASK.
(lower_lastprivate_clauses): Even if some lastprivate is found on a
work-sharing construct, continue looking for them on parent parallel
construct.
(lower_omp_for_lastprivate): Add lastprivate clauses
to the beginning of dlist rather than end. Adjust for struct
omp_for_data changes.
(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
not after it. Handle collapsed OMP_FOR loops, adjust for
OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
caller.
(get_ws_args_for): Adjust extract_omp_for_data caller.
(scan_omp_for): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(lower_omp_single_simple): If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
(parallel_nesting_level): Rename to...
(taskreg_nesting_level): ... this.
(is_taskreg_ctx): New function.
(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
of is_parallel_ctx.
(execute_lower_omp): Rename parallel_nesting_level to
taskreg_nesting_level.
(expand_omp_parallel): Rename to...
(expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call omp_task_call for OMP_TASK regions.
(expand_omp): Adjust caller, handle OMP_TASK.
(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
* bitmap.c (bitmap_default_obstack_depth): New variable.
(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
if argument is NULL and bitmap_default_obstack is already initialized.
* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
at the end.
* matrix-reorg.c (matrix_reorg): Likewise.
cp/
* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
dependent_omp_for_p, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New prototypes.
(cxx_omp_clause_default_ctor): Add outer argument.
(finish_omp_for): Add new clauses argument.
* cp-gimplify.c (cxx_omp_finish_clause): New function.
(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
(cxx_omp_clause_default_ctor): Add outer argument.
(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
Add par_clauses argument. If decl is present in parallel's
lastprivate clause, change that clause to shared and add
a lastprivate clause for decl to OMP_FOR_CLAUSES.
Fix wording of error messages. Adjust finish_omp_for caller.
Add clauses argument. Parse loops with random access iterators.
(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
functions.
(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
cp_parser_omp_for_loop callers.
(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
functions.
(cp_parser_omp_clause_name): Handle collapse and untied
clauses.
(cp_parser_omp_clause_schedule): Handle auto schedule.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSE_MASK): Define.
(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
PRAGMA_OMP_TASKWAIT.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT.
(tsubst_omp_for_iterator): New function.
(dependent_omp_for_p): New function.
(tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FOR
loops. Adjust finish_omp_for caller. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes.
(tsubst_expr): Handle OMP_TASK.
* semantics.c (cxx_omp_create_clause_info): New function.
(finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED and
OMP_CLAUSE_COLLAPSE.
(cxx_omp_predetermined_sharing): Removed.
* semantics.c (finish_omp_for): Allow pointer iterators. Use
handle_omp_for_class_iterator and dependent_omp_for_p. Handle
collapsed for loops. Adjust c_finish_omp_for caller. Add new
clauses argument. Fix check for type dependent cond or incr.
Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead of
fold_convert to convert incr amount to difference_type. Only
fold if not in template. If decl is mentioned in lastprivate
clause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR}
changes.
(finish_omp_threadprivate): Allow static class members of the
current class.
(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New functions.
* parser.c (cp_parser_binary_expression): Add prec argument.
(cp_parser_assignment_expression): Adjust caller.
* cp-tree.h (outer_curly_brace_block): New prototype.
* decl.c (outer_curly_brace_block): No longer static.
fortran/
* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
* parse.c (next_free): Allow tab after !$omp.
(decode_omp_directive): Handle !$omp task, !$omp taskwait
and !$omp end task.
(case_executable): Add ST_OMP_TASKWAIT.
(case_exec_markers): Add ST_OMP_TASK.
(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
ST_OMP_TASKWAIT.
(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
* gfortran.h (gfc_find_sym_in_expr): New prototype.
(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
untied fields.
(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
* trans.h (gfc_omp_clause_default_ctor): Add another argument.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
than boolean_type_node.
* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
untied and collapse clauses.
(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
* st.c (gfc_free_statement): Likewise.
* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
(find_sym_in_expr): Rename to...
(gfc_find_sym_in_expr): ... this. No longer static.
(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
prototypes.
* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
firstprivate, lastprivate, reduction, copyprivate and copyin
clauses.
(omp_current_do_code): Made static.
(omp_current_do_collapse): New variable.
(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
clear omp_current_do_code and omp_current_do_collapse on return.
(gfc_resolve_do_iterator): Handle collapsed do loops.
(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
(gfc_match_omp_clauses): Handle default (firstprivate),
schedule (auto), untied and collapse (n) clauses.
(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSES): Define.
(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
* trans-openmp.c (gfc_omp_private_outer_ref): New function.
(gfc_omp_clause_default_ctor): Add outer argument. For allocatable
arrays allocate them with the bounds of the outer var if outer
var is allocated.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor): New functions.
(gfc_trans_omp_array_reduction): If decl is allocatable array,
allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
for assumed-size arrays.
(gfc_trans_omp_do): Add par_clauses argument. If dovar is
present in lastprivate clause and do loop isn't simple,
set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
parallel's lastprivate clause, change it to shared and add
lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
(gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
OMP_FOR from OMP_PARALLEL.
(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
gcc/testsuite/
* gcc.dg/gomp/collapse-1.c: New test.
* gcc.dg/gomp/nesting-1.c: New test.
* g++.dg/gomp/task-1.C: New test.
* g++.dg/gomp/predetermined-1.C: New test.
* g++.dg/gomp/tls-4.C: New test.
* gfortran.dg/gomp/collapse1.f90: New test.
* gfortran.dg/gomp/sharing-3.f90: New test.
* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
* g++.dg/gomp/pr27499.C (foo): Likewise.
* g++.dg/gomp/for-16.C (foo): Likewise.
* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
* g++.dg/gomp/pr34607.C: Adjust dg-error location.
* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
about allocatable array.
* gfortran.dg/gomp/reduction1.f90: Likewise.
libgomp/
* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
Substitute also OMP_*LOCK_25*.
* configure: Regenerated.
* config.h.in: Regenerated.
* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
ptrlock.c and task.c.
* Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* task.c: New file.
* loop_ull.c: New file.
* iter_ull.c: New file.
* libgomp.h: Include ptrlock.h.
(enum gomp_task_kind): New type.
(struct gomp_team): Add task_lock, task_queue, task_count,
task_running_count, single_count fields. Add
work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
Remove work_share_lock, generation_mask,
oldest_live_gen, num_live_gen and init_work_shares fields, add
work work_share_list_alloc, work_share_list_free and work_share_chunk
fields. Change work_shares from pointer to pointers into an array.
Change ordered_release field into gomp_sem_t ** from flexible array
member. Add implicit_task and initial_work_shares fields.
Move close to the end of the struct.
(struct gomp_team_state): Add single_count, last_work_share,
active_level and level fields, remove work_share_generation.
(gomp_barrier_handle_tasks): New prototype.
(gomp_finish_task): New inline function.
(struct gomp_work_share): Move chunk_size, end, incr into
transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
next_ll fields. Reshuffle fields. Add next_alloc,
next_ws, next_free and inline_ordered_team_ids fields, change
ordered_team_ids into pointer from flexible array member.
Add mode field. Put lock and next into a different cache line
from most of the write-once fields.
(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
gomp_iter_ull_guided_next): New prototypes.
(gomp_new_icv): New prototype.
(struct gomp_thread): Add thread_pool and task fields.
(struct gomp_thread_pool): New type.
(gomp_new_team): New prototype.
(gomp_team_start): Change type of last argument.
(gomp_new_work_share): Removed.
(gomp_init_work_share, gomp_fini_work_share): New prototypes.
(gomp_work_share_init_done): New static inline.
(gomp_throttled_spin_count_var, gomp_available_cpus,
gomp_managed_threads): New extern decls.
(gomp_init_task): New prototype.
(gomp_spin_count_var): New extern var decl.
(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
or no alias support, or if not PIC.
(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
gomp_test_nest_lock_25): New prototypes.
(omp_lock_symver, strong_alias): Define.
(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
decls.
(gomp_end_task): New.
(struct gomp_task_icv, gomp_global_icv): New.
(gomp_thread_limit_var, gomp_max_active_levels_var): New.
(struct gomp_task): New.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_icv): New.
(gomp_schedule_type): Reorder enum to match
omp_sched_t.
* team.c (struct gomp_thread_start_data): Add thread_pool and task
fields.
(gomp_thread_start): Add gomp_team_barrier_wait call.
For non-nested case remove clearing of docked thread thr fields.
Use pool fields instead of global gomp_* variables. Use
gomp_barrier_wait_last when needed. Initialize ts.active_level.
Create tasks for each member thread.
(free_team): Only destroy team barrier, task_lock here and free it.
(gomp_free_thread): Free last_team if non-NULL.
(gomp_team_end): Call gomp_team_barrier_wait instead of
gomp_barrier_wait. For nested case call one extra
gomp_barrier_wait. Move here some destruction from free_team.
Call free_team on pool->last_team if any, rather than freeing
current team. Destroy work_share_list_free_lock ifndef
HAVE_SYNC_BUILTINS.
(gomp_new_icv): New function.
(gomp_threads, gomp_threads_size, gomp_threads_used,
gomp_threads_dock): Removed.
(gomp_thread_destructor): New variable.
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
functions.
(gomp_team_start): Create new pool if current thread doesn't have
one. Use pool fields instead of global gomp_* variables.
Initialize thread_pool field for new threads. Clear single_count.
Change last argument from ws to team, don't create
new team, set ts.work_share to &team->work_shares[0] and clear
ts.last_work_share. Don't clear ts.work_share_generation.
If number of threads changed, adjust atomically gomp_managed_threads.
Use gomp_init_task instead of gomp_new_task,
set thr->task to the corresponding implicit_task array entry.
Create tasks for each member thread. Initialize ts.level.
(initialize_team): Call pthread_key_create on
gomp_thread_destructor.
(team_destructor): New function.
(new_team): Removed.
(gomp_new_team): New function.
(free_team): Free gomp_work_share blocks chained through next_alloc,
instead of freeing work_shares and destroying work_share_lock.
(gomp_team_end): Call gomp_fini_work_share. If number of threads
changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
instead of gomp_barrier_wait. Call gomp_work_share_init_done
if gomp_work_share_start returned true. Don't unlock ws->lock.
(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
gomp_work_share_init_done if gomp_work_share_start returned true.
Don't unlock ws->lock.
* work.c: Include stddef.h.
(free_work_share): Use work_share_list_free_lock instead
of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
Call gomp_fini_work_share and then either free ws if orphaned, or
put it into work_share_list_free list of the current team.
(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
functions.
(gomp_work_share_start, gomp_work_share_end,
gomp_work_share_end_nowait): Rewritten.
* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
(openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New interfaces.
* omp_lib.h.in (openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New externals.
* loop.c: Include limits.h.
(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
GFS_AUTO.
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
Likewise. Use gomp_icv.
(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
ts.static_trip here.
(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
don't unlock ws->lock, otherwise lock it.
(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
(gomp_parallel_loop_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass 0 as second argument to
gomp_resolve_num_threads.
(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
If adding ws->chunk_size nthreads + 1 times after end won't
overflow, set ws->mode to 1.
* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
prototypes.
* libgomp.map: Export lock routines also @@OMP_2.0.
(GOMP_loop_ordered_dynamic_first,
GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
GOMP_loop_ordered_static_first): Remove.
(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
GOMP_loop_ull_ordered_dynamic_next,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_next,
GOMP_loop_ull_ordered_runtime_start,
GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New exports @@OMP_3.0.
* omp.h.in (omp_sched_t): New type.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New prototypes.
* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
gomp_thread_limit_var, gomp_remaining_threads_count,
gomp_remaining_threads_lock): New variables.
(parse_spincount): New function.
(initialize_env): Call gomp_init_num_threads unconditionally.
Initialize gomp_available_cpus. Call parse_spincount,
initialize gomp_{,throttled_}spin_count_var
depending on presence and value of OMP_WAIT_POLICY and
GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
gomp_remaining_threads_lock if needed. Use gomp_global_icv.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_global_icv): New.
(parse_schedule): Use it. Parse "auto".
(omp_set_num_threads): Use gomp_icv.
(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
Likewise.
(omp_get_max_threads): Move from parallel.c.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels): New functions,
add ialias.
(parse_stacksize, parse_wait_policy): New functions.
* fortran.c: Rewrite lock wrappers, if symbol versioning provide
both wrappers for compatibility and new locks.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New ialias_redirect.
(omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New functions.
* parallel.c: Include limits.h.
(gomp_resolve_num_threads): Add count argument. Rewritten.
(GOMP_parallel_start): Call gomp_new_team and pass that as last
argument to gomp_team_start. Pass 0 as second argument to
gomp_resolve_num_threads.
(GOMP_parallel_end): Decrease gomp_remaining_threads_count
if gomp_thread_limit_var != ULONG_MAX.
(omp_in_parallel): Implement using ts.active_level.
(omp_get_max_threads): Move to env.c.
(omp_get_level, omp_get_ancestor_thread_num,
omp_get_team_size, omp_get_active_level): New functions,
add ialias.
* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it, otherwise acquire it before calling
gomp_iter_dynamic_next_locked.
(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it.
(GOMP_parallel_sections_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass count as second argument to
gomp_resolve_num_threads, don't adjust num_threads after the call.
Use gomp_icv.
* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
ws->chunk_size by incr.
(gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
code.
* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
types.
(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
(omp_check_defines): Check even the compat defines.
* config/linux/ptrlock.c: New file.
* config/linux/ptrlock.h: New file.
* config/linux/wait.h: New file.
* config/posix/ptrlock.c: New file.
* config/posix/ptrlock.h: New file.
* config/linux/bar.h (gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_t): Rewritten.
(gomp_barrier_state_t): New typedef.
(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
gomp_barrier_wait_start): Rewritten.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/linux/bar.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_barrier_wait_end): Rewritten.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
* config/posix/bar.h (gomp_barrier_t): Add generation field.
(gomp_barrier_state_t): New typedef.
(gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_barrier_wait_start): Or all but low 2 bits from generation
into the return value. Return gomp_barrier_state_t.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake): New functions.
* config/linux/mutex.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_futex_wake, gomp_futex_wait): New variables.
(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
* config/linux/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning. Include wait.h instead of libgomp.h and
futex.h.
(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
* config/posix95/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/posix/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
* config/posix/proc.c, config/mingw32/proc.c: Similarly.
* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sem.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
types.
(omp_nest_lock_t): Change owner into void *, add lock field.
* config/posix95/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Change owner to void *.
* config/posix/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Add owner field.
* testsuite/libgomp.c/collapse-1.c: New test.
* testsuite/libgomp.c/collapse-2.c: New test.
* testsuite/libgomp.c/collapse-3.c: New test.
* testsuite/libgomp.c/icv-1.c: New test.
* testsuite/libgomp.c/icv-2.c: New test.
* testsuite/libgomp.c/lib-2.c: New test.
* testsuite/libgomp.c/lock-1.c: New test.
* testsuite/libgomp.c/lock-2.c: New test.
* testsuite/libgomp.c/lock-3.c: New test.
* testsuite/libgomp.c/loop-4.c: New test.
* testsuite/libgomp.c/loop-5.c: New test.
* testsuite/libgomp.c/loop-6.c: New test.
* testsuite/libgomp.c/loop-7.c: New test.
* testsuite/libgomp.c/loop-8.c: New test.
* testsuite/libgomp.c/loop-9.c: New test.
* testsuite/libgomp.c/nested-3.c: New test.
* testsuite/libgomp.c/nestedfn-6.c: New test.
* testsuite/libgomp.c/sort-1.c: New test.
* testsuite/libgomp.c/task-1.c: New test.
* testsuite/libgomp.c/task-2.c: New test.
* testsuite/libgomp.c/task-3.c: New test.
* testsuite/libgomp.c/task-4.c: New test.
* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
to C++ testsuite default compiler options.
* testsuite/libgomp.c++/collapse-1.C: New test.
* testsuite/libgomp.c++/collapse-2.C: New test.
* testsuite/libgomp.c++/ctor-10.C: New test.
* testsuite/libgomp.c++/for-1.C: New test.
* testsuite/libgomp.c++/for-2.C: New test.
* testsuite/libgomp.c++/for-3.C: New test.
* testsuite/libgomp.c++/for-4.C: New test.
* testsuite/libgomp.c++/for-5.C: New test.
* testsuite/libgomp.c++/loop-8.C: New test.
* testsuite/libgomp.c++/loop-9.C: New test.
* testsuite/libgomp.c++/loop-10.C: New test.
* testsuite/libgomp.c++/task-1.C: New test.
* testsuite/libgomp.c++/task-2.C: New test.
* testsuite/libgomp.c++/task-3.C: New test.
* testsuite/libgomp.c++/task-4.C: New test.
* testsuite/libgomp.c++/task-5.C: New test.
* testsuite/libgomp.c++/task-6.C: New test.
* testsuite/libgomp.fortran/allocatable1.f90: New test.
* testsuite/libgomp.fortran/allocatable2.f90: New test.
* testsuite/libgomp.fortran/allocatable3.f90: New test.
* testsuite/libgomp.fortran/allocatable4.f90: New test.
* testsuite/libgomp.fortran/collapse1.f90: New test.
* testsuite/libgomp.fortran/collapse2.f90: New test.
* testsuite/libgomp.fortran/collapse3.f90: New test.
* testsuite/libgomp.fortran/collapse4.f90: New test.
* testsuite/libgomp.fortran/lastprivate1.f90: New test.
* testsuite/libgomp.fortran/lastprivate2.f90: New test.
* testsuite/libgomp.fortran/lib4.f90: New test.
* testsuite/libgomp.fortran/lock-1.f90: New test.
* testsuite/libgomp.fortran/lock-2.f90: New test.
* testsuite/libgomp.fortran/nested1.f90: New test.
* testsuite/libgomp.fortran/nestedfn4.f90: New test.
* testsuite/libgomp.fortran/strassen.f90: New test.
* testsuite/libgomp.fortran/tabs1.f90: New test.
* testsuite/libgomp.fortran/tabs2.f: New test.
* testsuite/libgomp.fortran/task1.f90: New test.
* testsuite/libgomp.fortran/task2.f90: New test.
* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
* testsuite/libgomp.c/pr26943-2.c: Likewise.
* testsuite/libgomp.c/pr26943-3.c: Likewise.
* testsuite/libgomp.c/pr26943-4.c: Likewise.
Co-Authored-By: Jakob Blomer <jakob.blomer@ira.uka.de>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
From-SVN: r136433
2008-06-06 15:01:54 +02:00
|
|
|
|
Initialize thread_pool field for new threads. Clear single_count.
|
|
|
|
|
Change last argument from ws to team, don't create
|
|
|
|
|
new team, set ts.work_share to &team->work_shares[0] and clear
|
|
|
|
|
ts.last_work_share. Don't clear ts.work_share_generation.
|
|
|
|
|
If number of threads changed, adjust atomically gomp_managed_threads.
|
|
|
|
|
Use gomp_init_task instead of gomp_new_task,
|
|
|
|
|
set thr->task to the corresponding implicit_task array entry.
|
|
|
|
|
Create tasks for each member thread. Initialize ts.level.
|
|
|
|
|
(initialize_team): Call pthread_key_create on
|
|
|
|
|
gomp_thread_destructor.
|
|
|
|
|
(team_destructor): New function.
|
|
|
|
|
(new_team): Removed.
|
|
|
|
|
(gomp_new_team): New function.
|
|
|
|
|
(free_team): Free gomp_work_share blocks chained through next_alloc,
|
|
|
|
|
instead of freeing work_shares and destroying work_share_lock.
|
|
|
|
|
(gomp_team_end): Call gomp_fini_work_share. If number of threads
|
|
|
|
|
changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
|
|
|
|
|
* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
|
|
|
|
|
of gomp_barrier_wait.
|
|
|
|
|
* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
|
|
|
|
|
instead of gomp_barrier_wait. Call gomp_work_share_init_done
|
|
|
|
|
if gomp_work_share_start returned true. Don't unlock ws->lock.
|
|
|
|
|
(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
|
|
|
|
|
of gomp_barrier_wait.
|
|
|
|
|
(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
|
|
|
|
|
gomp_work_share_init_done if gomp_work_share_start returned true.
|
|
|
|
|
Don't unlock ws->lock.
|
|
|
|
|
* work.c: Include stddef.h.
|
|
|
|
|
(free_work_share): Use work_share_list_free_lock instead
|
|
|
|
|
of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
|
|
|
|
|
Call gomp_fini_work_share and then either free ws if orphaned, or
|
|
|
|
|
put it into work_share_list_free list of the current team.
|
|
|
|
|
(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
|
|
|
|
|
functions.
|
|
|
|
|
(gomp_work_share_start, gomp_work_share_end,
|
|
|
|
|
gomp_work_share_end_nowait): Rewritten.
|
|
|
|
|
* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
|
|
|
|
|
(openmp_version): Set to 200805.
|
|
|
|
|
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
|
|
|
|
|
omp_sched_guided, omp_sched_auto): New parameters.
|
|
|
|
|
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
|
|
|
|
|
omp_set_max_active_levels, omp_get_max_active_levels,
|
|
|
|
|
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
|
|
|
|
|
omp_get_active_level): New interfaces.
|
|
|
|
|
* omp_lib.h.in (openmp_version): Set to 200805.
|
|
|
|
|
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
|
|
|
|
|
omp_sched_guided, omp_sched_auto): New parameters.
|
|
|
|
|
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
|
|
|
|
|
omp_set_max_active_levels, omp_get_max_active_levels,
|
|
|
|
|
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
|
|
|
|
|
omp_get_active_level): New externals.
|
|
|
|
|
* loop.c: Include limits.h.
|
|
|
|
|
(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
|
|
|
|
|
GFS_AUTO.
|
|
|
|
|
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
|
|
|
|
|
Likewise. Use gomp_icv.
|
|
|
|
|
(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
|
|
|
|
|
ts.static_trip here.
|
|
|
|
|
(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
|
|
|
|
|
gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
|
|
|
|
|
(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
|
|
|
|
|
gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
|
|
|
|
|
don't unlock ws->lock, otherwise lock it.
|
|
|
|
|
(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
|
|
|
|
|
gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
|
|
|
|
|
(gomp_parallel_loop_start): Call gomp_new_team instead of
|
|
|
|
|
gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
|
|
|
|
|
Adjust gomp_team_start caller. Pass 0 as second argument to
|
|
|
|
|
gomp_resolve_num_threads.
|
|
|
|
|
(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
|
|
|
|
|
If adding ws->chunk_size nthreads + 1 times after end won't
|
|
|
|
|
overflow, set ws->mode to 1.
|
|
|
|
|
* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
|
|
|
|
|
GOMP_loop_ull_ordered_static_start,
|
|
|
|
|
GOMP_loop_ull_ordered_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_ordered_guided_start,
|
|
|
|
|
GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
|
|
|
|
|
GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
|
|
|
|
|
GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
|
|
|
|
|
GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
|
|
|
|
|
GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
|
|
|
|
|
prototypes.
|
|
|
|
|
* libgomp.map: Export lock routines also @@OMP_2.0.
|
|
|
|
|
(GOMP_loop_ordered_dynamic_first,
|
|
|
|
|
GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
|
|
|
|
|
GOMP_loop_ordered_static_first): Remove.
|
|
|
|
|
(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
|
|
|
|
|
GOMP_loop_ull_ordered_dynamic_next,
|
|
|
|
|
GOMP_loop_ull_ordered_dynamic_start,
|
|
|
|
|
GOMP_loop_ull_ordered_guided_next,
|
|
|
|
|
GOMP_loop_ull_ordered_guided_start,
|
|
|
|
|
GOMP_loop_ull_ordered_runtime_next,
|
|
|
|
|
GOMP_loop_ull_ordered_runtime_start,
|
|
|
|
|
GOMP_loop_ull_ordered_static_next,
|
|
|
|
|
GOMP_loop_ull_ordered_static_start,
|
|
|
|
|
GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
|
|
|
|
|
GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
|
|
|
|
|
GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
|
|
|
|
|
(omp_set_schedule, omp_get_schedule,
|
|
|
|
|
omp_get_thread_limit, omp_set_max_active_levels,
|
|
|
|
|
omp_get_max_active_levels, omp_get_level,
|
|
|
|
|
omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
|
|
|
|
|
omp_set_schedule_, omp_set_schedule_8_,
|
|
|
|
|
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
|
|
|
|
|
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
|
|
|
|
|
omp_get_max_active_levels_, omp_get_level_,
|
|
|
|
|
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
|
|
|
|
|
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
|
|
|
|
|
New exports @@OMP_3.0.
|
|
|
|
|
* omp.h.in (omp_sched_t): New type.
|
|
|
|
|
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
|
|
|
|
|
omp_set_max_active_levels, omp_get_max_active_levels,
|
|
|
|
|
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
|
|
|
|
|
omp_get_active_level): New prototypes.
|
|
|
|
|
* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
|
|
|
|
|
gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
|
|
|
|
|
gomp_thread_limit_var, gomp_remaining_threads_count,
|
|
|
|
|
gomp_remaining_threads_lock): New variables.
|
|
|
|
|
(parse_spincount): New function.
|
|
|
|
|
(initialize_env): Call gomp_init_num_threads unconditionally.
|
|
|
|
|
Initialize gomp_available_cpus. Call parse_spincount,
|
|
|
|
|
initialize gomp_{,throttled_}spin_count_var
|
|
|
|
|
depending on presence and value of OMP_WAIT_POLICY and
|
|
|
|
|
GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
|
|
|
|
|
Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
|
|
|
|
|
OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
|
|
|
|
|
for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
|
|
|
|
|
gomp_remaining_threads_lock if needed. Use gomp_global_icv.
|
|
|
|
|
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
|
|
|
|
|
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
|
|
|
|
|
(gomp_global_icv): New.
|
|
|
|
|
(parse_schedule): Use it. Parse "auto".
|
|
|
|
|
(omp_set_num_threads): Use gomp_icv.
|
|
|
|
|
(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
|
|
|
|
|
Likewise.
|
|
|
|
|
(omp_get_max_threads): Move from parallel.c.
|
|
|
|
|
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
|
|
|
|
|
omp_set_max_active_levels, omp_get_max_active_levels): New functions,
|
|
|
|
|
add ialias.
|
|
|
|
|
(parse_stacksize, parse_wait_policy): New functions.
|
|
|
|
|
* fortran.c: Rewrite lock wrappers, if symbol versioning provide
|
|
|
|
|
both wrappers for compatibility and new locks.
|
|
|
|
|
(omp_set_schedule, omp_get_schedule,
|
|
|
|
|
omp_get_thread_limit, omp_set_max_active_levels,
|
|
|
|
|
omp_get_max_active_levels, omp_get_level,
|
|
|
|
|
omp_get_ancestor_thread_num, omp_get_team_size,
|
|
|
|
|
omp_get_active_level): New ialias_redirect.
|
|
|
|
|
(omp_set_schedule_, omp_set_schedule_8_,
|
|
|
|
|
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
|
|
|
|
|
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
|
|
|
|
|
omp_get_max_active_levels_, omp_get_level_,
|
|
|
|
|
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
|
|
|
|
|
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
|
|
|
|
|
New functions.
|
|
|
|
|
* parallel.c: Include limits.h.
|
|
|
|
|
(gomp_resolve_num_threads): Add count argument. Rewritten.
|
|
|
|
|
(GOMP_parallel_start): Call gomp_new_team and pass that as last
|
|
|
|
|
argument to gomp_team_start. Pass 0 as second argument to
|
|
|
|
|
gomp_resolve_num_threads.
|
|
|
|
|
(GOMP_parallel_end): Decrease gomp_remaining_threads_count
|
|
|
|
|
if gomp_thread_limit_var != ULONG_MAX.
|
|
|
|
|
(omp_in_parallel): Implement using ts.active_level.
|
|
|
|
|
(omp_get_max_threads): Move to env.c.
|
|
|
|
|
(omp_get_level, omp_get_ancestor_thread_num,
|
|
|
|
|
omp_get_team_size, omp_get_active_level): New functions,
|
|
|
|
|
add ialias.
|
|
|
|
|
* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
|
|
|
|
|
after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
|
|
|
|
|
gomp_iter_dynamic_next instead of the _locked variant and don't take
|
|
|
|
|
lock around it, otherwise acquire it before calling
|
|
|
|
|
gomp_iter_dynamic_next_locked.
|
|
|
|
|
(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
|
|
|
|
|
gomp_iter_dynamic_next instead of the _locked variant and don't take
|
|
|
|
|
lock around it.
|
|
|
|
|
(GOMP_parallel_sections_start): Call gomp_new_team instead of
|
|
|
|
|
gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
|
|
|
|
|
Adjust gomp_team_start caller. Pass count as second argument to
|
|
|
|
|
gomp_resolve_num_threads, don't adjust num_threads after the call.
|
|
|
|
|
Use gomp_icv.
|
|
|
|
|
* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
|
|
|
|
|
ws->chunk_size by incr.
|
|
|
|
|
(gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
|
|
|
|
|
code.
|
|
|
|
|
* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
|
|
|
|
|
types.
|
|
|
|
|
(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
|
|
|
|
|
(omp_check_defines): Check even the compat defines.
|
|
|
|
|
* config/linux/ptrlock.c: New file.
|
|
|
|
|
* config/linux/ptrlock.h: New file.
|
|
|
|
|
* config/linux/wait.h: New file.
|
|
|
|
|
* config/posix/ptrlock.c: New file.
|
|
|
|
|
* config/posix/ptrlock.h: New file.
|
|
|
|
|
* config/linux/bar.h (gomp_team_barrier_wait,
|
|
|
|
|
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
|
|
|
|
|
(gomp_team_barrier_set_task_pending,
|
|
|
|
|
gomp_team_barrier_clear_task_pending,
|
|
|
|
|
gomp_team_barrier_set_waiting_for_tasks,
|
|
|
|
|
gomp_team_barrier_waiting_for_tasks,
|
|
|
|
|
gomp_team_barrier_done): New inlines.
|
|
|
|
|
(gomp_barrier_t): Rewritten.
|
|
|
|
|
(gomp_barrier_state_t): New typedef.
|
|
|
|
|
(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
|
|
|
|
|
gomp_barrier_wait_start): Rewritten.
|
|
|
|
|
(gomp_barrier_wait_end): Change second argument to
|
|
|
|
|
gomp_barrier_state_t.
|
|
|
|
|
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
|
|
|
|
|
inlines.
|
|
|
|
|
* config/linux/bar.c: Include wait.h instead of libgomp.h and
|
|
|
|
|
futex.h.
|
|
|
|
|
(gomp_barrier_wait_end): Rewritten.
|
|
|
|
|
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
|
|
|
|
|
gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
|
|
|
|
|
* config/posix/bar.h (gomp_barrier_t): Add generation field.
|
|
|
|
|
(gomp_barrier_state_t): New typedef.
|
|
|
|
|
(gomp_team_barrier_wait,
|
|
|
|
|
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
|
|
|
|
|
(gomp_barrier_wait_start): Or all but low 2 bits from generation
|
|
|
|
|
into the return value. Return gomp_barrier_state_t.
|
|
|
|
|
(gomp_team_barrier_set_task_pending,
|
|
|
|
|
gomp_team_barrier_clear_task_pending,
|
|
|
|
|
gomp_team_barrier_set_waiting_for_tasks,
|
|
|
|
|
gomp_team_barrier_waiting_for_tasks,
|
|
|
|
|
gomp_team_barrier_done): New inlines.
|
|
|
|
|
(gomp_barrier_wait_end): Change second argument to
|
|
|
|
|
gomp_barrier_state_t.
|
|
|
|
|
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
|
|
|
|
|
inlines.
|
|
|
|
|
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
|
|
|
|
|
(gomp_barrier_wait_end): Change second argument to
|
2011-11-30 04:43:57 +01:00
|
|
|
|
gomp_barrier_state_t.
|
c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to
200805.
* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
Add omp_private_outer_ref hook, add another argument to
omp_clause_default_ctor hook.
* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
hook_tree_tree_tree_tree_null.
(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
* hooks.c (hook_tree_tree_tree_tree_null): New function.
* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
* tree.def (OMP_TASK): New tree code.
* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
OMP_CLAUSE_COLLAPSE_EXPR): Define.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(OMP_DIRECTIVE_P): Add OMP_TASK.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
and OMP_CLAUSE_UNTIED entries.
(omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
num_ops to 2.
(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* tree-pretty-print.c (dump_omp_clause): Handle
OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
* c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
warning about unsigned iterators. Change decl/init/cond/incr
arguments to TREE_VECs, check arguments for all collapsed loops.
(c_finish_omp_taskwait): New function.
(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
ws_clauses.
* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
default_function_array_conversion on init. Add par_clauses argument.
If decl is present in parallel's lastprivate clause, change it to
shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
collapse count in clauses.
(c_parser_omp_for, c_parser_omp_parallel): Adjust
c_parser_omp_for_loop callers.
(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
(c_parser_omp_clause_name): Handle collapse and untied clauses.
(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
functions.
(c_parser_omp_clause_schedule): Handle schedule(auto).
Include correct location in the error message.
(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_TASK_CLAUSE_MASK): Define.
(c_parser_omp_task, c_parser_omp_taskwait): New functions.
(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
OMP_CLAUSE_DECL.
(conver_nonlocal_reference, convert_local_reference,
convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
* c-common.h (c_finish_omp_taskwait): New prototype.
* gimple-low.c (lower_stmt): Handle OMP_TASK.
* tree-parloops.c (create_parallel_loop): Create 1 entry
vectors for OMP_FOR_{INIT,COND,INCR}.
* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
(make_edges): Handle OMP_TASK.
* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
handle POINTER_PLUS_EXPR. If loop counter has been replaced and
original iterator is present in lastprivate clause or if
collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Handle
OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
to be implicitly determined firstprivate for task regions.
(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
if it is set, lookup var in outer contexts too. Set
OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Take region_type as last argument
instead of in_parallel and in_combined_parallel.
(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
Adjust callers.
(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause
langhook.
(new_omp_context): Set default_kind to
OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
(omp_region_type): New enum.
(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
fields, add region_type.
(new_omp_context): Take region_type as argument instead of is_parallel
and is_combined_parallel.
(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
omp_is_private, omp_check_private): Adjust ctx->is_parallel and
ctx->is_combined_parallel checks.
(gimplify_omp_task): New function.
(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED.
* omp-low.c (extract_omp_for_data): Use schedule(static)
for schedule(auto). Handle pointer and unsigned iterators.
Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
Add loops argument. Extract data for collapsed OMP_FOR loops.
(expand_parallel_call): Assert sched_kind isn't auto,
map runtime schedule to index 3.
(struct omp_for_data_loop): New type.
(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
Add loop, loops, collapse and iter_type fields.
(workshare_safe_to_combine_p): Disallow combined for if
iter_type is unsigned long long. Don't combine collapse > 1 loops
unless all bounds and steps are constant. Adjust extract_omp_for_data
caller.
(expand_omp_for_generic): Handle pointer, unsigned and long long
iterators. Handle collapsed OMP_FOR loops. Adjust
for struct omp_for_data changes. If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
pointer, unsigned and long long iterators. Adjust for struct
omp_for_data changes.
(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
unsigned long long. Allocate loops array, pass it to
extract_omp_for_data. For collapse > 1 loops use always
expand_omp_for_generic.
(omp_context): Add sfield_map and srecord_type fields.
(is_task_ctx, lookup_sfield): New functions.
(use_pointer_for_field): Use is_task_ctx helper. Change first
argument's type from const_tree to tree. Clarify comment.
In OMP_TASK disallow copy-in/out sharing.
(build_sender_ref): Call lookup_sfield instead of lookup_field.
(install_var_field): Add mask argument. Populate both record_type
and srecord_type if needed.
(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
in srecord_type.
(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
and DECL_FIELD_OFFSET.
(scan_sharing_clauses): Adjust install_var_field callers. For
firstprivate clauses on explicit tasks allocate the var by value in
record_type unconditionally, rather than by reference.
Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
Use is_taskreg_ctx instead of is_parallel_ctx.
Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
(create_omp_child_function_name): Add task_copy argument, use
*_omp_cpyfn* names if it is true.
(create_omp_child_function): Add task_copy argument, if true create
*_omp_cpyfn* helper function.
(scan_omp_parallel): Adjust create_omp_child_function callers.
Rename parallel_nesting_level to taskreg_nesting_level.
(scan_omp_task): New function.
(lower_rec_input_clauses): Don't run constructors for firstprivate
explicit task vars which are initialized by *_omp_cpyfn*.
Pass outer var ref to omp_clause_default_ctor hook if
OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
OMP_CLAUSE_REDUCTION_INIT.
(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
avoid duplicate setting of fields. Handle
OMP_CLAUSE_PRIVATE_OUTER_REF.
(lower_send_shared_vars): Use srecord_type if non-NULL. Don't
copy-out if TREE_READONLY, only copy-in.
(expand_task_copyfn): New function.
(expand_task_call): New function.
(struct omp_taskcopy_context): New type.
(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
New functions.
(lower_omp_parallel): Rename to...
(lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call create_task_copyfn if srecord_type is needed. Adjust
sender_decl type.
(task_shared_vars): New variable.
(check_omp_nesting_restrictions): Warn if work-sharing,
barrier, master or ordered region is closely nested inside OMP_TASK.
Add warnings for barrier if closely nested inside of work-sharing,
ordered, or master region.
(scan_omp_1): Call check_omp_nesting_restrictions even for
GOMP_barrier calls. Rename parallel_nesting_level to
taskreg_nesting_level. Handle OMP_TASK.
(lower_lastprivate_clauses): Even if some lastprivate is found on a
work-sharing construct, continue looking for them on parent parallel
construct.
(lower_omp_for_lastprivate): Add lastprivate clauses
to the beginning of dlist rather than end. Adjust for struct
omp_for_data changes.
(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
not after it. Handle collapsed OMP_FOR loops, adjust for
OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data
caller.
(get_ws_args_for): Adjust extract_omp_for_data caller.
(scan_omp_for): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
(lower_omp_single_simple): If libgomp function doesn't return
boolean_type_node, add comparison of the return value with 0.
(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
(parallel_nesting_level): Rename to...
(taskreg_nesting_level): ... this.
(is_taskreg_ctx): New function.
(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
of is_parallel_ctx.
(execute_lower_omp): Rename parallel_nesting_level to
taskreg_nesting_level.
(expand_omp_parallel): Rename to...
(expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
Call omp_task_call for OMP_TASK regions.
(expand_omp): Adjust caller, handle OMP_TASK.
(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
* bitmap.c (bitmap_default_obstack_depth): New variable.
(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
if argument is NULL and bitmap_default_obstack is already initialized.
* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
at the end.
* matrix-reorg.c (matrix_reorg): Likewise.
cp/
* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
dependent_omp_for_p, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New prototypes.
(cxx_omp_clause_default_ctor): Add outer argument.
(finish_omp_for): Add new clauses argument.
* cp-gimplify.c (cxx_omp_finish_clause): New function.
(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
(cxx_omp_clause_default_ctor): Add outer argument.
(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
Add par_clauses argument. If decl is present in parallel's
lastprivate clause, change that clause to shared and add
a lastprivate clause for decl to OMP_FOR_CLAUSES.
Fix wording of error messages. Adjust finish_omp_for caller.
Add clauses argument. Parse loops with random access iterators.
(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
functions.
(cp_parser_omp_for, cp_parser_omp_parallel): Adjust
cp_parser_omp_for_loop callers.
(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
functions.
(cp_parser_omp_clause_name): Handle collapse and untied
clauses.
(cp_parser_omp_clause_schedule): Handle auto schedule.
(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
and PRAGMA_OMP_CLAUSE_UNTIED.
(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSE_MASK): Define.
(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
(cp_parser_pragma): Handle PRAGMA_OMP_TASK and
PRAGMA_OMP_TASKWAIT.
* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
OMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT.
(tsubst_omp_for_iterator): New function.
(dependent_omp_for_p): New function.
(tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FOR
loops. Adjust finish_omp_for caller. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes.
(tsubst_expr): Handle OMP_TASK.
* semantics.c (cxx_omp_create_clause_info): New function.
(finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED and
OMP_CLAUSE_COLLAPSE.
(cxx_omp_predetermined_sharing): Removed.
* semantics.c (finish_omp_for): Allow pointer iterators. Use
handle_omp_for_class_iterator and dependent_omp_for_p. Handle
collapsed for loops. Adjust c_finish_omp_for caller. Add new
clauses argument. Fix check for type dependent cond or incr.
Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead of
fold_convert to convert incr amount to difference_type. Only
fold if not in template. If decl is mentioned in lastprivate
clause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with random
access iterators. Adjust for OMP_FOR_{INIT,COND,INCR}
changes.
(finish_omp_threadprivate): Allow static class members of the
current class.
(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
finish_omp_taskwait): New functions.
* parser.c (cp_parser_binary_expression): Add prec argument.
(cp_parser_assignment_expression): Adjust caller.
* cp-tree.h (outer_curly_brace_block): New prototype.
* decl.c (outer_curly_brace_block): No longer static.
fortran/
* scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
* parse.c (next_free): Allow tab after !$omp.
(decode_omp_directive): Handle !$omp task, !$omp taskwait
and !$omp end task.
(case_executable): Add ST_OMP_TASKWAIT.
(case_exec_markers): Add ST_OMP_TASK.
(gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
ST_OMP_TASKWAIT.
(parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
* gfortran.h (gfc_find_sym_in_expr): New prototype.
(gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
(gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
untied fields.
(gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
* trans.h (gfc_omp_clause_default_ctor): Add another argument.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
* types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
(BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
than boolean_type_node.
* dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
untied and collapse clauses.
(gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
* trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
* st.c (gfc_free_statement): Likewise.
* resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
(find_sym_in_expr): Rename to...
(gfc_find_sym_in_expr): ... this. No longer static.
(resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
* match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
prototypes.
* openmp.c (resolve_omp_clauses): Allow allocatable arrays in
firstprivate, lastprivate, reduction, copyprivate and copyin
clauses.
(omp_current_do_code): Made static.
(omp_current_do_collapse): New variable.
(gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
clear omp_current_do_code and omp_current_do_collapse on return.
(gfc_resolve_do_iterator): Handle collapsed do loops.
(resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
(gfc_match_omp_clauses): Handle default (firstprivate),
schedule (auto), untied and collapse (n) clauses.
(OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
(OMP_TASK_CLAUSES): Define.
(gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
* trans-openmp.c (gfc_omp_private_outer_ref): New function.
(gfc_omp_clause_default_ctor): Add outer argument. For allocatable
arrays allocate them with the bounds of the outer var if outer
var is allocated.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
gfc_omp_clause_dtor): New functions.
(gfc_trans_omp_array_reduction): If decl is allocatable array,
allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
(gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
for assumed-size arrays.
(gfc_trans_omp_do): Add par_clauses argument. If dovar is
present in lastprivate clause and do loop isn't simple,
set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
parallel's lastprivate clause, change it to shared and add
lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
(gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
OMP_FOR from OMP_PARALLEL.
(gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
(gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
(gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
EXEC_OMP_TASKWAIT.
gcc/testsuite/
* gcc.dg/gomp/collapse-1.c: New test.
* gcc.dg/gomp/nesting-1.c: New test.
* g++.dg/gomp/task-1.C: New test.
* g++.dg/gomp/predetermined-1.C: New test.
* g++.dg/gomp/tls-4.C: New test.
* gfortran.dg/gomp/collapse1.f90: New test.
* gfortran.dg/gomp/sharing-3.f90: New test.
* gcc.dg/gomp/pr27499.c (foo): Remove is unsigned dg-warning.
* g++.dg/gomp/pr27499.C (foo): Likewise.
* g++.dg/gomp/for-16.C (foo): Likewise.
* g++.dg/gomp/tls-3.C: Remove dg-error, add S::s definition.
* g++.dg/gomp/pr34607.C: Adjust dg-error location.
* g++.dg/gomp/for-16.C (foo): Add a new dg-error.
* gcc.dg/gomp/appendix-a/a.35.4.c: Add dg-warning.
* gcc.dg/gomp/appendix-a/a.35.6.c: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.4.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.35.6.f90: Likewise.
* gfortran.dg/gomp/omp_parse1.f90: Remove !$omp tab test.
* gfortran.dg/gomp/appendix-a/a.33.4.f90: Remove dg-error
about allocatable array.
* gfortran.dg/gomp/reduction1.f90: Likewise.
libgomp/
* configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
Substitute also OMP_*LOCK_25*.
* configure: Regenerated.
* config.h.in: Regenerated.
* Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
ptrlock.c and task.c.
* Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* task.c: New file.
* loop_ull.c: New file.
* iter_ull.c: New file.
* libgomp.h: Include ptrlock.h.
(enum gomp_task_kind): New type.
(struct gomp_team): Add task_lock, task_queue, task_count,
task_running_count, single_count fields. Add
work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
Remove work_share_lock, generation_mask,
oldest_live_gen, num_live_gen and init_work_shares fields, add
work work_share_list_alloc, work_share_list_free and work_share_chunk
fields. Change work_shares from pointer to pointers into an array.
Change ordered_release field into gomp_sem_t ** from flexible array
member. Add implicit_task and initial_work_shares fields.
Move close to the end of the struct.
(struct gomp_team_state): Add single_count, last_work_share,
active_level and level fields, remove work_share_generation.
(gomp_barrier_handle_tasks): New prototype.
(gomp_finish_task): New inline function.
(struct gomp_work_share): Move chunk_size, end, incr into
transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
next_ll fields. Reshuffle fields. Add next_alloc,
next_ws, next_free and inline_ordered_team_ids fields, change
ordered_team_ids into pointer from flexible array member.
Add mode field. Put lock and next into a different cache line
from most of the write-once fields.
(gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
gomp_iter_ull_guided_next): New prototypes.
(gomp_new_icv): New prototype.
(struct gomp_thread): Add thread_pool and task fields.
(struct gomp_thread_pool): New type.
(gomp_new_team): New prototype.
(gomp_team_start): Change type of last argument.
(gomp_new_work_share): Removed.
(gomp_init_work_share, gomp_fini_work_share): New prototypes.
(gomp_work_share_init_done): New static inline.
(gomp_throttled_spin_count_var, gomp_available_cpus,
gomp_managed_threads): New extern decls.
(gomp_init_task): New prototype.
(gomp_spin_count_var): New extern var decl.
(LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
or no alias support, or if not PIC.
(gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
gomp_test_nest_lock_25): New prototypes.
(omp_lock_symver, strong_alias): Define.
(gomp_remaining_threads_count, gomp_remaining_threads_lock): New
decls.
(gomp_end_task): New.
(struct gomp_task_icv, gomp_global_icv): New.
(gomp_thread_limit_var, gomp_max_active_levels_var): New.
(struct gomp_task): New.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_icv): New.
(gomp_schedule_type): Reorder enum to match
omp_sched_t.
* team.c (struct gomp_thread_start_data): Add thread_pool and task
fields.
(gomp_thread_start): Add gomp_team_barrier_wait call.
For non-nested case remove clearing of docked thread thr fields.
Use pool fields instead of global gomp_* variables. Use
gomp_barrier_wait_last when needed. Initialize ts.active_level.
Create tasks for each member thread.
(free_team): Only destroy team barrier, task_lock here and free it.
(gomp_free_thread): Free last_team if non-NULL.
(gomp_team_end): Call gomp_team_barrier_wait instead of
gomp_barrier_wait. For nested case call one extra
gomp_barrier_wait. Move here some destruction from free_team.
Call free_team on pool->last_team if any, rather than freeing
current team. Destroy work_share_list_free_lock ifndef
HAVE_SYNC_BUILTINS.
(gomp_new_icv): New function.
(gomp_threads, gomp_threads_size, gomp_threads_used,
gomp_threads_dock): Removed.
(gomp_thread_destructor): New variable.
(gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
functions.
(gomp_team_start): Create new pool if current thread doesn't have
one. Use pool fields instead of global gomp_* variables.
Initialize thread_pool field for new threads. Clear single_count.
Change last argument from ws to team, don't create
new team, set ts.work_share to &team->work_shares[0] and clear
ts.last_work_share. Don't clear ts.work_share_generation.
If number of threads changed, adjust atomically gomp_managed_threads.
Use gomp_init_task instead of gomp_new_task,
set thr->task to the corresponding implicit_task array entry.
Create tasks for each member thread. Initialize ts.level.
(initialize_team): Call pthread_key_create on
gomp_thread_destructor.
(team_destructor): New function.
(new_team): Removed.
(gomp_new_team): New function.
(free_team): Free gomp_work_share blocks chained through next_alloc,
instead of freeing work_shares and destroying work_share_lock.
(gomp_team_end): Call gomp_fini_work_share. If number of threads
changed, adjust atomically gomp_managed_threads. Use gomp_end_task.
* barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
* single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
instead of gomp_barrier_wait. Call gomp_work_share_init_done
if gomp_work_share_start returned true. Don't unlock ws->lock.
(GOMP_single_copy_end): Call gomp_team_barrier_wait instead
of gomp_barrier_wait.
(GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS. Call
gomp_work_share_init_done if gomp_work_share_start returned true.
Don't unlock ws->lock.
* work.c: Include stddef.h.
(free_work_share): Use work_share_list_free_lock instead
of atomic chaining ifndef HAVE_SYNC_BUILTINS. Add team argument.
Call gomp_fini_work_share and then either free ws if orphaned, or
put it into work_share_list_free list of the current team.
(alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
functions.
(gomp_work_share_start, gomp_work_share_end,
gomp_work_share_end_nowait): Rewritten.
* omp_lib.f90.in Change some tabs to spaces to prevent warnings.
(openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New interfaces.
* omp_lib.h.in (openmp_version): Set to 200805.
(omp_sched_kind, omp_sched_static, omp_sched_dynamic,
omp_sched_guided, omp_sched_auto): New parameters.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New externals.
* loop.c: Include limits.h.
(GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
GFS_AUTO.
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
Likewise. Use gomp_icv.
(gomp_loop_static_start, gomp_loop_dynamic_start): Clear
ts.static_trip here.
(gomp_loop_static_start, gomp_loop_ordered_static_start): Call
gomp_work_share_init_done after gomp_loop_init. Don't unlock ws->lock.
(gomp_loop_dynamic_start, gomp_loop_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. If HAVE_SYNC_BUILTINS,
don't unlock ws->lock, otherwise lock it.
(gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
gomp_work_share_init_done after gomp_loop_init. Lock ws->lock.
(gomp_parallel_loop_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_loop_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass 0 as second argument to
gomp_resolve_num_threads.
(gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
If adding ws->chunk_size nthreads + 1 times after end won't
overflow, set ws->mode to 1.
* libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
prototypes.
* libgomp.map: Export lock routines also @@OMP_2.0.
(GOMP_loop_ordered_dynamic_first,
GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
GOMP_loop_ordered_static_first): Remove.
(GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
GOMP_loop_ull_ordered_dynamic_next,
GOMP_loop_ull_ordered_dynamic_start,
GOMP_loop_ull_ordered_guided_next,
GOMP_loop_ull_ordered_guided_start,
GOMP_loop_ull_ordered_runtime_next,
GOMP_loop_ull_ordered_runtime_start,
GOMP_loop_ull_ordered_static_next,
GOMP_loop_ull_ordered_static_start,
GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New exports @@OMP_3.0.
* omp.h.in (omp_sched_t): New type.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels,
omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New prototypes.
* env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
gomp_thread_limit_var, gomp_remaining_threads_count,
gomp_remaining_threads_lock): New variables.
(parse_spincount): New function.
(initialize_env): Call gomp_init_num_threads unconditionally.
Initialize gomp_available_cpus. Call parse_spincount,
initialize gomp_{,throttled_}spin_count_var
depending on presence and value of OMP_WAIT_POLICY and
GOMP_SPINCOUNT env vars. Handle GOMP_BLOCKTIME env var.
Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
OMP_THREAD_LIMIT, OMP_STACKSIZE env vars. Handle unit specification
for GOMP_STACKSIZE. Initialize gomp_remaining_threads_count and
gomp_remaining_threads_lock if needed. Use gomp_global_icv.
(gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
gomp_run_sched_var, gomp_run_sched_chunk): Remove.
(gomp_global_icv): New.
(parse_schedule): Use it. Parse "auto".
(omp_set_num_threads): Use gomp_icv.
(omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
Likewise.
(omp_get_max_threads): Move from parallel.c.
(omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
omp_set_max_active_levels, omp_get_max_active_levels): New functions,
add ialias.
(parse_stacksize, parse_wait_policy): New functions.
* fortran.c: Rewrite lock wrappers, if symbol versioning provide
both wrappers for compatibility and new locks.
(omp_set_schedule, omp_get_schedule,
omp_get_thread_limit, omp_set_max_active_levels,
omp_get_max_active_levels, omp_get_level,
omp_get_ancestor_thread_num, omp_get_team_size,
omp_get_active_level): New ialias_redirect.
(omp_set_schedule_, omp_set_schedule_8_,
omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
omp_set_max_active_levels_, omp_set_max_active_levels_8_,
omp_get_max_active_levels_, omp_get_level_,
omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
New functions.
* parallel.c: Include limits.h.
(gomp_resolve_num_threads): Add count argument. Rewritten.
(GOMP_parallel_start): Call gomp_new_team and pass that as last
argument to gomp_team_start. Pass 0 as second argument to
gomp_resolve_num_threads.
(GOMP_parallel_end): Decrease gomp_remaining_threads_count
if gomp_thread_limit_var != ULONG_MAX.
(omp_in_parallel): Implement using ts.active_level.
(omp_get_max_threads): Move to env.c.
(omp_get_level, omp_get_ancestor_thread_num,
omp_get_team_size, omp_get_active_level): New functions,
add ialias.
* sections.c (GOMP_sections_start): Call gomp_work_share_init_done
after gomp_sections_init. If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it, otherwise acquire it before calling
gomp_iter_dynamic_next_locked.
(GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
gomp_iter_dynamic_next instead of the _locked variant and don't take
lock around it.
(GOMP_parallel_sections_start): Call gomp_new_team instead of
gomp_new_work_share. Call gomp_sections_init on &team->work_shares[0].
Adjust gomp_team_start caller. Pass count as second argument to
gomp_resolve_num_threads, don't adjust num_threads after the call.
Use gomp_icv.
* iter.c (gomp_iter_dynamic_next_locked): Don't multiply
ws->chunk_size by incr.
(gomp_iter_dynamic_next): Likewise. If ws->mode, use more efficient
code.
* libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
types.
(omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
(omp_check_defines): Check even the compat defines.
* config/linux/ptrlock.c: New file.
* config/linux/ptrlock.h: New file.
* config/linux/wait.h: New file.
* config/posix/ptrlock.c: New file.
* config/posix/ptrlock.h: New file.
* config/linux/bar.h (gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_t): Rewritten.
(gomp_barrier_state_t): New typedef.
(gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
gomp_barrier_wait_start): Rewritten.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/linux/bar.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_barrier_wait_end): Rewritten.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
* config/posix/bar.h (gomp_barrier_t): Add generation field.
(gomp_barrier_state_t): New typedef.
(gomp_team_barrier_wait,
gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
(gomp_barrier_wait_start): Or all but low 2 bits from generation
into the return value. Return gomp_barrier_state_t.
(gomp_team_barrier_set_task_pending,
gomp_team_barrier_clear_task_pending,
gomp_team_barrier_set_waiting_for_tasks,
gomp_team_barrier_waiting_for_tasks,
gomp_team_barrier_done): New inlines.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_barrier_last_thread, gomp_barrier_wait_last): New static
inlines.
* config/posix/bar.c (gomp_barrier_init): Clear generation field.
(gomp_barrier_wait_end): Change second argument to
gomp_barrier_state_t.
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
gomp_team_barrier_wake): New functions.
* config/linux/mutex.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_futex_wake, gomp_futex_wait): New variables.
(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
* config/linux/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning. Include wait.h instead of libgomp.h and
futex.h.
(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
* config/posix95/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/posix/lock.c: Rewrite to make locks task owned,
for backwards compatibility provide the old entrypoints
if symbol versioning.
* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
* config/posix/proc.c, config/mingw32/proc.c: Similarly.
* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
(sys_futex0): Return error code.
(futex_wake, futex_wait): If ENOSYS was returned, clear
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
(cpu_relax, atomic_write_barrier): New static inlines.
* config/linux/sem.c: Include wait.h instead of libgomp.h and
futex.h.
(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
types.
(omp_nest_lock_t): Change owner into void *, add lock field.
* config/posix95/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Change owner to void *.
* config/posix/omp-lock.h: Include semaphore.h.
(omp_lock_25_t, omp_nest_lock_25_t): New types.
(omp_lock_t): Use sem_t instead of mutex if semaphores
aren't broken.
(omp_nest_lock_t): Likewise. Add owner field.
* testsuite/libgomp.c/collapse-1.c: New test.
* testsuite/libgomp.c/collapse-2.c: New test.
* testsuite/libgomp.c/collapse-3.c: New test.
* testsuite/libgomp.c/icv-1.c: New test.
* testsuite/libgomp.c/icv-2.c: New test.
* testsuite/libgomp.c/lib-2.c: New test.
* testsuite/libgomp.c/lock-1.c: New test.
* testsuite/libgomp.c/lock-2.c: New test.
* testsuite/libgomp.c/lock-3.c: New test.
* testsuite/libgomp.c/loop-4.c: New test.
* testsuite/libgomp.c/loop-5.c: New test.
* testsuite/libgomp.c/loop-6.c: New test.
* testsuite/libgomp.c/loop-7.c: New test.
* testsuite/libgomp.c/loop-8.c: New test.
* testsuite/libgomp.c/loop-9.c: New test.
* testsuite/libgomp.c/nested-3.c: New test.
* testsuite/libgomp.c/nestedfn-6.c: New test.
* testsuite/libgomp.c/sort-1.c: New test.
* testsuite/libgomp.c/task-1.c: New test.
* testsuite/libgomp.c/task-2.c: New test.
* testsuite/libgomp.c/task-3.c: New test.
* testsuite/libgomp.c/task-4.c: New test.
* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
to C++ testsuite default compiler options.
* testsuite/libgomp.c++/collapse-1.C: New test.
* testsuite/libgomp.c++/collapse-2.C: New test.
* testsuite/libgomp.c++/ctor-10.C: New test.
* testsuite/libgomp.c++/for-1.C: New test.
* testsuite/libgomp.c++/for-2.C: New test.
* testsuite/libgomp.c++/for-3.C: New test.
* testsuite/libgomp.c++/for-4.C: New test.
* testsuite/libgomp.c++/for-5.C: New test.
* testsuite/libgomp.c++/loop-8.C: New test.
* testsuite/libgomp.c++/loop-9.C: New test.
* testsuite/libgomp.c++/loop-10.C: New test.
* testsuite/libgomp.c++/task-1.C: New test.
* testsuite/libgomp.c++/task-2.C: New test.
* testsuite/libgomp.c++/task-3.C: New test.
* testsuite/libgomp.c++/task-4.C: New test.
* testsuite/libgomp.c++/task-5.C: New test.
* testsuite/libgomp.c++/task-6.C: New test.
* testsuite/libgomp.fortran/allocatable1.f90: New test.
* testsuite/libgomp.fortran/allocatable2.f90: New test.
* testsuite/libgomp.fortran/allocatable3.f90: New test.
* testsuite/libgomp.fortran/allocatable4.f90: New test.
* testsuite/libgomp.fortran/collapse1.f90: New test.
* testsuite/libgomp.fortran/collapse2.f90: New test.
* testsuite/libgomp.fortran/collapse3.f90: New test.
* testsuite/libgomp.fortran/collapse4.f90: New test.
* testsuite/libgomp.fortran/lastprivate1.f90: New test.
* testsuite/libgomp.fortran/lastprivate2.f90: New test.
* testsuite/libgomp.fortran/lib4.f90: New test.
* testsuite/libgomp.fortran/lock-1.f90: New test.
* testsuite/libgomp.fortran/lock-2.f90: New test.
* testsuite/libgomp.fortran/nested1.f90: New test.
* testsuite/libgomp.fortran/nestedfn4.f90: New test.
* testsuite/libgomp.fortran/strassen.f90: New test.
* testsuite/libgomp.fortran/tabs1.f90: New test.
* testsuite/libgomp.fortran/tabs2.f: New test.
* testsuite/libgomp.fortran/task1.f90: New test.
* testsuite/libgomp.fortran/task2.f90: New test.
* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
* testsuite/libgomp.fortran/vla5.f90: Likewise.
* testsuite/libgomp.c/pr26943-2.c: Likewise.
* testsuite/libgomp.c/pr26943-3.c: Likewise.
* testsuite/libgomp.c/pr26943-4.c: Likewise.
Co-Authored-By: Jakob Blomer <jakob.blomer@ira.uka.de>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
From-SVN: r136433
2008-06-06 15:01:54 +02:00
|
|
|
|
(gomp_team_barrier_wait, gomp_team_barrier_wait_end,
|
|
|
|
|
gomp_team_barrier_wake): New functions.
|
|
|
|
|
* config/linux/mutex.c: Include wait.h instead of libgomp.h and
|
|
|
|
|
futex.h.
|
|
|
|
|
(gomp_futex_wake, gomp_futex_wait): New variables.
|
|
|
|
|
(gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
|
|
|
|
|
* config/linux/lock.c: Rewrite to make locks task owned,
|
|
|
|
|
for backwards compatibility provide the old entrypoints
|
|
|
|
|
if symbol versioning. Include wait.h instead of libgomp.h and
|
|
|
|
|
futex.h.
|
|
|
|
|
(gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
|
|
|
|
|
* config/posix95/lock.c: Rewrite to make locks task owned,
|
|
|
|
|
for backwards compatibility provide the old entrypoints
|
|
|
|
|
if symbol versioning.
|
|
|
|
|
* config/posix/lock.c: Rewrite to make locks task owned,
|
|
|
|
|
for backwards compatibility provide the old entrypoints
|
|
|
|
|
if symbol versioning.
|
|
|
|
|
* config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
|
|
|
|
|
(get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
|
|
|
|
|
* config/posix/proc.c, config/mingw32/proc.c: Similarly.
|
|
|
|
|
* config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
|
* config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
|
* config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
|
* config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
|
* config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
|
* config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
|
|
|
|
|
(sys_futex0): Return error code.
|
|
|
|
|
(futex_wake, futex_wait): If ENOSYS was returned, clear
|
|
|
|
|
FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
|
|
|
|
|
(cpu_relax, atomic_write_barrier): New static inlines.
|
|
|
|
|
* config/linux/sem.c: Include wait.h instead of libgomp.h and
|
|
|
|
|
futex.h.
|
|
|
|
|
(gomp_sem_wait_slow): Call do_wait instead of futex_wait.
|
|
|
|
|
* config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
|
|
|
|
|
* config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
|
|
|
|
|
types.
|
|
|
|
|
(omp_nest_lock_t): Change owner into void *, add lock field.
|
|
|
|
|
* config/posix95/omp-lock.h: Include semaphore.h.
|
|
|
|
|
(omp_lock_25_t, omp_nest_lock_25_t): New types.
|
|
|
|
|
(omp_lock_t): Use sem_t instead of mutex if semaphores
|
|
|
|
|
aren't broken.
|
|
|
|
|
(omp_nest_lock_t): Likewise. Change owner to void *.
|
|
|
|
|
* config/posix/omp-lock.h: Include semaphore.h.
|
|
|
|
|
(omp_lock_25_t, omp_nest_lock_25_t): New types.
|
|
|
|
|
(omp_lock_t): Use sem_t instead of mutex if semaphores
|
|
|
|
|
aren't broken.
|
|
|
|
|
(omp_nest_lock_t): Likewise. Add owner field.
|
|
|
|
|
|
|
|
|
|
2008-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/collapse-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/collapse-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/collapse-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/icv-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/icv-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/lib-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/lock-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/lock-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/lock-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-7.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-8.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/loop-9.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/nested-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/nestedfn-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/sort-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/task-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/task-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/task-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/task-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
|
|
|
|
|
to C++ testsuite default compiler options.
|
|
|
|
|
* testsuite/libgomp.c++/collapse-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/collapse-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-10.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/for-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-8.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-9.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/loop-10.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-3.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-4.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-5.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/task-6.C: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/allocatable4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/collapse1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/collapse2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/collapse3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/collapse4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/lastprivate1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/lastprivate2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/lib4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/lock-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/lock-2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/nested1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/strassen.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/tabs1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/tabs2.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/task1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/task2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
|
|
|
|
|
* testsuite/libgomp.fortran/vla5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-3.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-4.c: Likewise.
|
|
|
|
|
|
2008-05-23 13:52:44 +02:00
|
|
|
|
2008-05-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/36308
|
|
|
|
|
* testsuite/libgomp.c++/ctor-11.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-12.C: New test.
|
|
|
|
|
|
2008-05-15 18:59:21 +02:00
|
|
|
|
2008-05-15 Janis Johnson <janis187@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
|
|
|
|
|
|
2008-05-07 09:28:14 +02:00
|
|
|
|
2008-05-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/36106
|
|
|
|
|
* testsuite/libgomp.c/atomic-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/atomic-6.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/autopar-1.c: New test.
|
|
|
|
|
|
2008-04-21 22:55:19 +02:00
|
|
|
|
2008-04-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
|
|
|
|
|
(LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
|
|
|
|
|
(LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
|
|
|
|
|
(LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* Makefile.in, testsuite/Makefile.in: Likewise.
|
|
|
|
|
|
2008-04-18 12:28:53 +02:00
|
|
|
|
2008-04-18 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/35457
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2008-03-18 10:54:21 +01:00
|
|
|
|
2008-03-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2008-03-18 13:21:02 +01:00
|
|
|
|
PR middle-end/35611
|
|
|
|
|
* testsuite/libgomp.c/atomic-4.c: New test.
|
|
|
|
|
|
2008-03-18 10:54:21 +01:00
|
|
|
|
PR libgomp/35625
|
|
|
|
|
* iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
|
|
|
|
|
(gomp_iter_guided_next): Likewise.
|
|
|
|
|
* testsuite/libgomp.c/pr35625.c: New test.
|
|
|
|
|
|
2008-03-16 09:19:08 +01:00
|
|
|
|
2008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* configure: Likewise.
|
|
|
|
|
* Makefile.in: Likewise.
|
|
|
|
|
* testsuite/Makefile.in: Likewise.
|
|
|
|
|
|
2008-03-13 10:26:25 +01:00
|
|
|
|
2008-03-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/35185
|
|
|
|
|
* testsuite/libgomp.c++/pr35185.C: New test.
|
|
|
|
|
|
2008-03-12 10:55:48 +01:00
|
|
|
|
2008-03-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/35549
|
|
|
|
|
* testsuite/libgomp.c/pr35549.c: New test.
|
|
|
|
|
|
2008-03-06 18:28:54 +01:00
|
|
|
|
2008-03-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-3.c: New test.
|
|
|
|
|
|
re PR fortran/33197 (Fortran 2008: math functions)
PR fortran/33197
gcc/fortran/
* intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
ERFC_SCALED, LOG_GAMMA and HYPOT.
* intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
gfc_resolve_hypot): New prototypes.
* mathbuiltins.def: Add HYPOT builtin. Make complex versions of
ACOSH, ASINH and ATANH available.
* gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
* lang.opt: Add -std=f2008 option.
* libgfortran.h: Define GFC_STD_F2008.
* lang-specs.h: Add .f08 and .F08 file suffixes.
* iresolve.c (gfc_resolve_hypot): New function.
* parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
* check.c (gfc_check_hypot): New function.
* trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
* options.c (set_default_std_flags): Allow Fortran 2008 by default.
(form_from_filename): Add .f08 suffix.
(gfc_handle_option): Handle -std=f2008 option.
* simplify.c (gfc_simplify_hypot): New function.
* gfortran.texi: Document Fortran 2008 status and file extensions.
* intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
* invoke.texi: Document the new -std=f2008 option.
libgomp/
* testsuite/libgomp.fortran/fortran.exp: Add .f08 and
.F08 file suffixes.
gcc/testsuite/
* gfortran.dg/gomp/gomp.exp: Add .f08 and .F08 file suffixes.
* gfortran.dg/dg.exp: Likewise.
* gfortran.dg/vect/vect.exp: Likewise.
* gfortran.fortran-torture/execute/execute.exp: Likewise.
* gfortran.fortran-torture/compile/compile.exp: Likewise.
* gfortran.dg/gamma_1.f90: Also check log_gamma.
* gfortran.dg/invalid_contains_1.f90: Remove warning about
empty CONTAINS.
* gfortran.dg/gamma_2.f90: Add a few error messages.
* gfortran.dg/invalid_contains_2.f90: Remove warning about
empty CONTAINS.
* gfortran.dg/gamma_3.f90: Adjust error message.
* gfortran.dg/gamma_4.f90: Test for log_gamma instead of lgamma.
* gfortran.dg/bind_c_usage_9.f03: Adjust error messages.
* gfortran.dg/bessel_1.f90: New test.
* gfortran.dg/recursive_check_3.f90: Remove warnings.
* gfortran.dg/besxy.f90: Also check for new F2008 intrinsics.
* gfortran.dg/derived_function_interface_1.f90: Remove warning.
* gfortran.dg/contains_empty_1.f03: New test.
* gfortran.dg/erfc_scaled_1.f90: New test.
* gfortran.dg/hypot_1.f90: New test.
* gfortran.dg/contains_empty_2.f03: New test.
libgfortran/
* intrinsics/erfc_scaled_inc.c: New file.
* intrinsics/erfc_scaled.c: New file.
* gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
* Makefile.am: Add intrinsics/erfc_scaled.c.
* config.h.in: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
From-SVN: r132846
2008-03-04 00:46:20 +01:00
|
|
|
|
2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/33197
|
2008-03-06 18:28:54 +01:00
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Add .f08 and
|
re PR fortran/33197 (Fortran 2008: math functions)
PR fortran/33197
gcc/fortran/
* intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
ERFC_SCALED, LOG_GAMMA and HYPOT.
* intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
gfc_resolve_hypot): New prototypes.
* mathbuiltins.def: Add HYPOT builtin. Make complex versions of
ACOSH, ASINH and ATANH available.
* gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
* lang.opt: Add -std=f2008 option.
* libgfortran.h: Define GFC_STD_F2008.
* lang-specs.h: Add .f08 and .F08 file suffixes.
* iresolve.c (gfc_resolve_hypot): New function.
* parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
* check.c (gfc_check_hypot): New function.
* trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
* options.c (set_default_std_flags): Allow Fortran 2008 by default.
(form_from_filename): Add .f08 suffix.
(gfc_handle_option): Handle -std=f2008 option.
* simplify.c (gfc_simplify_hypot): New function.
* gfortran.texi: Document Fortran 2008 status and file extensions.
* intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
* invoke.texi: Document the new -std=f2008 option.
libgomp/
* testsuite/libgomp.fortran/fortran.exp: Add .f08 and
.F08 file suffixes.
gcc/testsuite/
* gfortran.dg/gomp/gomp.exp: Add .f08 and .F08 file suffixes.
* gfortran.dg/dg.exp: Likewise.
* gfortran.dg/vect/vect.exp: Likewise.
* gfortran.fortran-torture/execute/execute.exp: Likewise.
* gfortran.fortran-torture/compile/compile.exp: Likewise.
* gfortran.dg/gamma_1.f90: Also check log_gamma.
* gfortran.dg/invalid_contains_1.f90: Remove warning about
empty CONTAINS.
* gfortran.dg/gamma_2.f90: Add a few error messages.
* gfortran.dg/invalid_contains_2.f90: Remove warning about
empty CONTAINS.
* gfortran.dg/gamma_3.f90: Adjust error message.
* gfortran.dg/gamma_4.f90: Test for log_gamma instead of lgamma.
* gfortran.dg/bind_c_usage_9.f03: Adjust error messages.
* gfortran.dg/bessel_1.f90: New test.
* gfortran.dg/recursive_check_3.f90: Remove warnings.
* gfortran.dg/besxy.f90: Also check for new F2008 intrinsics.
* gfortran.dg/derived_function_interface_1.f90: Remove warning.
* gfortran.dg/contains_empty_1.f03: New test.
* gfortran.dg/erfc_scaled_1.f90: New test.
* gfortran.dg/hypot_1.f90: New test.
* gfortran.dg/contains_empty_2.f03: New test.
libgfortran/
* intrinsics/erfc_scaled_inc.c: New file.
* intrinsics/erfc_scaled.c: New file.
* gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*.
* Makefile.am: Add intrinsics/erfc_scaled.c.
* config.h.in: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
From-SVN: r132846
2008-03-04 00:46:20 +01:00
|
|
|
|
.F08 file suffixes.
|
|
|
|
|
|
2008-03-03 23:35:13 +01:00
|
|
|
|
2008-03-03 Peter O'Gorman <pogma@thewrittenword.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/33131
|
|
|
|
|
* configure.ac: Add ACX_HEADER_STRING.
|
|
|
|
|
* env.c: Include strings.h.
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
2008-02-15 18:36:43 +01:00
|
|
|
|
2008-02-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2008-02-15 18:42:25 +01:00
|
|
|
|
PR middle-end/35196
|
|
|
|
|
* testsuite/libgomp.c/pr35196.c: New test.
|
|
|
|
|
|
2008-02-15 18:36:43 +01:00
|
|
|
|
PR middle-end/35130
|
|
|
|
|
* testsuite/libgomp.fortran/pr35130.f90: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr35130.c: New test.
|
|
|
|
|
|
2008-01-25 13:54:42 +01:00
|
|
|
|
2008-01-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/33880
|
|
|
|
|
* testsuite/libgomp.c/pr33880.c: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr33880.f90: New test.
|
|
|
|
|
|
2008-01-24 17:25:43 +01:00
|
|
|
|
2008-01-24 David Edelsohn <edelsohn@gnu.org>
|
2008-01-24 17:23:13 +01:00
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2008-01-08 17:14:49 +01:00
|
|
|
|
2008-01-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Move futex checking into ../config/futex.m4.
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
* aclocal.m4: Rebuilt.
|
|
|
|
|
* Makefile.in: Rebuilt.
|
|
|
|
|
|
|
|
|
|
* configure.tgt: Rename have_tls to gcc_cv_have_tls to match
|
|
|
|
|
2007-10-15 ../config/tls.m4 change.
|
|
|
|
|
|
2007-12-19 13:58:32 +01:00
|
|
|
|
2007-12-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/34513
|
|
|
|
|
* testsuite/libgomp.c/pr34513.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr34513.C: New test.
|
|
|
|
|
|
2007-12-17 20:30:08 +01:00
|
|
|
|
2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/32765
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
|
|
|
|
|
|
2007-12-04 23:01:04 +01:00
|
|
|
|
2007-12-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* omp.h.in (__GOMP_NOTHROW): Define. Use it on omp_* prototypes.
|
|
|
|
|
|
2007-12-04 00:06:55 +01:00
|
|
|
|
2007-12-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/private-1.c: New test.
|
|
|
|
|
|
2007-11-29 16:34:21 +01:00
|
|
|
|
2007-11-29 Andris Pavenis <andris.pavenis@iki.fi>
|
|
|
|
|
Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Use space as vpath separator. Use 'vpath %'
|
|
|
|
|
instead of 'VPATH ='.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2007-11-23 10:29:44 +01:00
|
|
|
|
2007-11-23 Matthias Klose <doko@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Adjust makeinfo version check.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2007-11-10 08:51:55 +01:00
|
|
|
|
2007-11-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/34020
|
|
|
|
|
* testsuite/libgomp.fortran/pr34020.f90: New test.
|
|
|
|
|
|
2007-11-06 09:26:50 +01:00
|
|
|
|
2007-11-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/33894
|
|
|
|
|
* testsuite/libgomp.c++/atomic-1.C: New test.
|
|
|
|
|
|
2007-10-25 22:25:12 +02:00
|
|
|
|
2007-10-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/33275
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
|
|
|
|
|
Make x and y integers rather than (implicit) reals. Add private (j)
|
|
|
|
|
clause to the last omp parallel.
|
|
|
|
|
|
2007-10-15 20:09:32 +02:00
|
|
|
|
2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate following changes to ../config/tls.m4.
|
|
|
|
|
|
2007-09-28 15:22:18 +02:00
|
|
|
|
2007-09-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/stack.f90: New test.
|
|
|
|
|
|
2007-09-10 04:27:29 +02:00
|
|
|
|
2007-09-10 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
* config/mingw32/proc.c: New file.
|
|
|
|
|
|
2007-09-05 19:43:01 +02:00
|
|
|
|
2007-09-05 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
|
|
|
|
|
(main): Use __get_cpuid to get i386 target fetaures.
|
|
|
|
|
* testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
|
|
|
|
|
(main): Use __get_cpuid to get x86_64 target fetaures.
|
|
|
|
|
|
2007-08-15 15:11:40 +02:00
|
|
|
|
2007-08-15 Jack Howarth <howarth@bromo.med.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR target/32765
|
|
|
|
|
* testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: Likwise.
|
|
|
|
|
|
2007-07-12 14:16:54 +02:00
|
|
|
|
2007-07-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/32550
|
|
|
|
|
* testsuite/libgomp.fortran/pr32550.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr2.f90: New test.
|
|
|
|
|
|
2007-07-05 19:54:10 +02:00
|
|
|
|
2007-07-05 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* aclocal.m4: Regenerated.
|
|
|
|
|
|
2007-07-05 14:51:51 +02:00
|
|
|
|
2007-07-05 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/32359
|
|
|
|
|
* testsuite/libgomp.fortran/pr32359.f90: New.
|
|
|
|
|
|
2007-07-02 21:19:28 +02:00
|
|
|
|
2007-07-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/32468
|
|
|
|
|
* sections.c (GOMP_parallel_sections_start): Only decrease
|
|
|
|
|
number of threads to COUNT if dyn_var is true.
|
|
|
|
|
* testsuite/libgomp.c/pr32468.c: New test.
|
|
|
|
|
|
2007-07-02 16:38:13 +02:00
|
|
|
|
2007-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
PR libgomp/26308
|
|
|
|
|
* config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
|
|
|
|
|
|
2007-06-21 14:11:00 +02:00
|
|
|
|
2007-06-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/32362
|
|
|
|
|
* testsuite/libgomp.c/pr32362-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr32362-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr32362-3.c: New test.
|
|
|
|
|
|
2007-06-07 22:16:53 +02:00
|
|
|
|
2007-06-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* team.c (gomp_team_start): Fix setting up thread_attr
|
|
|
|
|
stack size.
|
|
|
|
|
|
2007-06-02 10:18:15 +02:00
|
|
|
|
2007-06-02 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2007-05-24 18:37:27 +02:00
|
|
|
|
2007-05-23 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
2007-05-04 21:19:10 +02:00
|
|
|
|
2007-05-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/proc.c: New file.
|
|
|
|
|
|
2007-05-04 21:21:18 +02:00
|
|
|
|
PR libgomp/28482
|
|
|
|
|
* configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
|
|
|
|
|
|
2007-04-19 21:36:34 +02:00
|
|
|
|
2007-04-19 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi (GOMP_CPU_AFFINITY): Updated.
|
|
|
|
|
|
2007-04-16 22:09:40 +02:00
|
|
|
|
2007-04-16 Matthias Klose <doko@debian.org>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (i[456]86-*-linux*): Only add ia32 specific
|
|
|
|
|
flags if not building with -m64.
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
|
|
|
|
|
flag for i?86-*-* targets, if current target matches -m64.
|
|
|
|
|
|
2007-04-14 21:49:42 +02:00
|
|
|
|
2007-04-14 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2007-04-07 17:10:06 +02:00
|
|
|
|
2007-04-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR testsuite/31369
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Don't use concat when setting
|
|
|
|
|
ld_library_path.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Likewise.
|
|
|
|
|
|
2007-04-04 17:44:20 +02:00
|
|
|
|
2007-04-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
|
|
|
|
|
decls.
|
|
|
|
|
(gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
|
|
|
|
|
* env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
|
|
|
|
|
(parse_affinity): New function.
|
|
|
|
|
(initialize_env): Call it and gomp_init_affinity.
|
|
|
|
|
* team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
|
|
|
|
|
create new pthread_attr_t and call gomp_init_thread_affinity
|
|
|
|
|
on it for each thread before passing the attribute to pthread_create.
|
|
|
|
|
* config/linux/affinity.c: New file.
|
|
|
|
|
* config/posix/affinity.c: New file.
|
|
|
|
|
* configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
* config.h.in: Rebuilt.
|
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add affinity.c.
|
|
|
|
|
* Makefile.in: Rebuilt.
|
|
|
|
|
|
2007-03-23 20:25:19 +01:00
|
|
|
|
2007-03-23 Andreas Tobler <a.tobler@schweiz.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
|
|
|
|
|
*-*-darwin*.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
|
|
|
|
|
and use it if found.
|
|
|
|
|
|
2007-03-22 08:00:08 +01:00
|
|
|
|
2007-03-18 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/config/default.exp: New file.
|
|
|
|
|
* testsuite/lib/libgomp.exp: New file.
|
|
|
|
|
* testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
|
|
|
|
|
libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
|
|
|
|
|
load_lib *, load_gcc_lib *): Move to libgomp.exp.
|
|
|
|
|
(libgomp_load): Remove.
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Compute
|
|
|
|
|
always_ld_library_path, not ld_library_path. Set additional_flags
|
|
|
|
|
to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
|
|
|
|
|
(target_compile): Do not call libgomp_init. Append lang_library_path
|
|
|
|
|
and lang_link_flags to options.
|
|
|
|
|
* testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2. Set
|
|
|
|
|
ld_library_path from always_ld_library_path. Set LD_LIBRARY_PATH
|
|
|
|
|
here.
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp: Set ld_library_path from
|
|
|
|
|
always_ld_library_path. Set LD_LIBRARY_PATH here.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/atomic-1.c: Set dg-options to
|
|
|
|
|
"-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
|
|
|
|
|
CX8 flag.
|
|
|
|
|
* testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
|
|
|
|
|
lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
|
|
|
|
|
* testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
|
|
|
|
|
* testsuite/libgomp.c/pr29947-1.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.c/atomic-10.c: Ditto.
|
|
|
|
|
|
2007-03-21 20:43:14 +01:00
|
|
|
|
2007-03-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
|
|
|
|
|
dg-final cleanup-modules line.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction5.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
|
|
|
|
|
|
2007-03-18 12:17:44 +01:00
|
|
|
|
2007-03-18 Andreas Schwab <schwab@suse.de>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4: Adjust regular expression for ld version
|
|
|
|
|
extraction.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2007-03-02 01:03:11 +01:00
|
|
|
|
2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Add install-pdf target as copied from
|
|
|
|
|
automake v1.10 rules.
|
|
|
|
|
* Makefile.in: Regenerate
|
|
|
|
|
|
2007-02-07 13:16:22 +01:00
|
|
|
|
2007-02-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2007-02-07 14:35:17 +01:00
|
|
|
|
PR libgomp/28486
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2007-02-07 13:16:22 +01:00
|
|
|
|
PR c++/30703
|
|
|
|
|
* testsuite/libgomp.c++/pr30703.C: New test.
|
|
|
|
|
|
2007-02-02 13:27:43 +01:00
|
|
|
|
2007-02-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
Revert:
|
|
|
|
|
2006-07-05 Eric Christopher <echristo@apple.com>
|
|
|
|
|
* configure.ac: Depend addition of -pthread on host OS.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2007-02-01 06:37:21 +01:00
|
|
|
|
2007-01-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Fix spacing after abbreviations.
|
|
|
|
|
|
2007-01-31 22:30:16 +01:00
|
|
|
|
2007-01-31 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/30546
|
|
|
|
|
* configure.ac: Add check for makeinfo
|
|
|
|
|
* Makefile.am: Redefined target libgomp.info, build libgomp.info only
|
|
|
|
|
if an appropiate version of makeinfo is found.
|
|
|
|
|
* aclocal.m4: Regenerated.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
|
|
2007-01-30 22:16:30 +01:00
|
|
|
|
2007-01-29 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/30540
|
|
|
|
|
* libgomp.texi: More about implementation-dependent settings.
|
|
|
|
|
|
2007-01-26 09:35:19 +01:00
|
|
|
|
2007-01-26 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
|
|
|
|
|
|
2007-01-24 21:56:45 +01:00
|
|
|
|
2007-01-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/30494
|
|
|
|
|
* testsuite/libgomp.c/pr30494.c: New test.
|
|
|
|
|
|
2007-01-16 03:57:41 +01:00
|
|
|
|
2007-01-15 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
* configure.ac: Fixed comment.
|
|
|
|
|
|
2007-01-14 21:16:57 +01:00
|
|
|
|
2007-01-14 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.texi: Document implementation specific default values of
|
|
|
|
|
environment variables.
|
|
|
|
|
|
2006-12-21 23:29:08 +01:00
|
|
|
|
2006-12-21 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/28209
|
|
|
|
|
* libgomp.texi: New file.
|
|
|
|
|
* configure.ac: Add --enable-generated-files-in-srcdir option.
|
|
|
|
|
* Makefile.am: Add info, dvi, pdf, html targets. On request, copy
|
|
|
|
|
files to srcdir.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* config.h.in: Regenerated.
|
|
|
|
|
* testsuite/Makefile.in: Regenerated.
|
|
|
|
|
* NOTES: Removed.
|
|
|
|
|
|
2006-12-04 22:35:19 +01:00
|
|
|
|
2006-12-04 Daniel Franke <franke.daniel@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/29949
|
|
|
|
|
* env.c (omp_set_num_threads): Set illegal thread count to 1.
|
|
|
|
|
|
2006-12-04 12:10:38 +01:00
|
|
|
|
2006-12-04 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2006-12-04 11:26:00 +01:00
|
|
|
|
2006-12-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/29947
|
|
|
|
|
* loop.c (gomp_loop_init): Make parameters signed. Set ws->end to
|
|
|
|
|
start if there shouldn't be any loop iterations.
|
|
|
|
|
(gomp_loop_ordered_static_start): Remove start == end test.
|
|
|
|
|
* testsuite/libgomp.c/pr29947-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr29947-2.c: New test.
|
|
|
|
|
|
2006-12-02 21:01:34 +01:00
|
|
|
|
2006-12-02 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* configure.tgt: Force initial-exec TLS model on Linux only.
|
|
|
|
|
|
2006-11-13 21:35:20 +01:00
|
|
|
|
2006-11-13 Daniel Jacobowitz <dan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2006-11-09 20:41:36 +01:00
|
|
|
|
2006-11-09 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* env.c (parse_schedule): Reject out of range values.
|
|
|
|
|
(parse_unsigned_long): Reject out of range, negative or zero values.
|
|
|
|
|
|
2006-10-29 11:27:39 +01:00
|
|
|
|
2006-10-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/29629
|
|
|
|
|
* testsuite/libgomp.fortran/pr29629.f90: New test.
|
|
|
|
|
|
2006-10-24 15:59:06 +02:00
|
|
|
|
2006-10-24 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
PR libgomp/29494
|
|
|
|
|
* configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
|
|
|
|
|
* config/posix95: New directory.
|
|
|
|
|
* config/posix95/omp-lock.h: New file.
|
|
|
|
|
* config/posix95/lock.c: Likewise.
|
|
|
|
|
|
2006-10-15 09:42:57 +02:00
|
|
|
|
2006-10-14 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2006-10-06 10:32:33 +02:00
|
|
|
|
2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
|
|
|
|
|
'<' to '<='.
|
|
|
|
|
|
2006-10-06 10:25:32 +02:00
|
|
|
|
2006-10-05 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
|
|
|
|
|
test.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* fortran.c (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
|
|
|
|
|
|
2006-09-26 20:06:55 +02:00
|
|
|
|
2006-09-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2006-09-26 20:10:58 +02:00
|
|
|
|
PR middle-end/25261
|
|
|
|
|
PR middle-end/28790
|
|
|
|
|
* testsuite/libgomp.c/nestedfn-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/nestedfn-5.c: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn3.f90: New test.
|
|
|
|
|
|
2006-09-26 20:06:55 +02:00
|
|
|
|
PR fortran/29097
|
|
|
|
|
* testsuite/libgomp.fortran/condinc1.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/condinc2.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/condinc3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/condinc4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/condinc1.inc: New file.
|
|
|
|
|
|
2006-09-19 03:48:06 +02:00
|
|
|
|
2006-09-18 Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
|
2006-09-13 03:04:18 +02:00
|
|
|
|
2006-09-13 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/28768
|
|
|
|
|
PR preprocessor/14634
|
|
|
|
|
* configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
|
|
|
|
|
to AC_DEFINE.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2006-09-08 22:57:55 +02:00
|
|
|
|
2006-09-08 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reduction3.f90: Change
|
|
|
|
|
-2147483648 to -huge(i)-1 to avoid overflow.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction4.f90: Change
|
|
|
|
|
Z'ffffffff' to not(0) to avoid overflow.
|
|
|
|
|
|
2006-08-26 20:30:44 +02:00
|
|
|
|
2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25938
|
|
|
|
|
* Makefile.am (libsubincludedir): New.
|
|
|
|
|
(nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2006-08-17 09:58:02 +02:00
|
|
|
|
2006-08-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/28725
|
|
|
|
|
* env.c: Include ctype.h.
|
|
|
|
|
(parse_schedule, parse_unsigned_long, parse_boolean): Allow
|
|
|
|
|
leading and/or trailing whitespace and compare strings case
|
|
|
|
|
insensitively.
|
|
|
|
|
|
2006-07-16 22:19:27 +02:00
|
|
|
|
2006-07-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/28390
|
|
|
|
|
* testsuite/libgomp.fortran/pr28390.f: New test.
|
|
|
|
|
|
2006-07-05 19:32:41 +02:00
|
|
|
|
2006-07-05 Eric Christopher <echristo@apple.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Depend addition of -pthread on host OS.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2006-06-21 10:59:44 +02:00
|
|
|
|
2006-06-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* critical.c (GOMP_critical_name_start): Fix *pptr initialization
|
|
|
|
|
when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
|
|
|
|
|
defined.
|
|
|
|
|
|
2006-06-20 11:55:42 +02:00
|
|
|
|
2006-06-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/26175
|
|
|
|
|
PR libgomp/26477
|
|
|
|
|
* configure.ac: If neither --enable-linux-futex nor
|
|
|
|
|
--disable-linux-futex is passed, determine the default by checking
|
|
|
|
|
for compiling and/or running against NPTL. With --enable-linux-futex,
|
|
|
|
|
check if SYS_gettid and SYS_futex are defined.
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
|
2006-06-14 17:20:01 +02:00
|
|
|
|
2006-06-14 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/28008
|
|
|
|
|
* env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
|
|
|
|
|
undefined. Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
|
|
|
|
|
|
2006-06-10 00:08:55 +02:00
|
|
|
|
2006-06-09 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* env.c (gomp_nthreads_var): Change to unsigned long.
|
|
|
|
|
(gomp_run_sched_chunk): Likewise.
|
|
|
|
|
(parse_unsigned_long): Rename from parse_num_threads and generalize.
|
|
|
|
|
(initialize_env): Initialize gomp_thread_attr.
|
|
|
|
|
* libgomp.h (gomp_nthreads_var): Update decl.
|
|
|
|
|
(gomp_run_sched_chunk): Likewise.
|
|
|
|
|
(gomp_thread_attr): Declare.
|
|
|
|
|
* team.c (gomp_thread_attr): Export.
|
|
|
|
|
(initialize_team): Don't initialize it.
|
|
|
|
|
|
2006-06-09 23:18:42 +02:00
|
|
|
|
2006-06-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/27916
|
|
|
|
|
* testsuite/libgomp.fortran/pr27916-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr27916-2.f90: New test.
|
|
|
|
|
|
2006-06-06 19:54:02 +02:00
|
|
|
|
2006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|
|
|
|
|
|
|
|
|
* config/mingw32/time.c: New file.
|
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
|
|
2006-05-24 03:28:16 +02:00
|
|
|
|
2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Add install-html target. Add install-html to .PHONY
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2006-05-22 21:10:45 +02:00
|
|
|
|
2006-05-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR libgomp/27612
|
|
|
|
|
* testsuite/libgomp.c/sections-1.c: Require sync_int_long.
|
|
|
|
|
* testsuite/libgomp.c/critical-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/loop-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/loop-2.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/single-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/ordered-1.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.c/ordered-2.c: Likewise.
|
|
|
|
|
|
2006-05-15 11:59:30 +02:00
|
|
|
|
2006-05-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/27416
|
|
|
|
|
* libgomp.fortran/pr27416-1.f90: New test.
|
|
|
|
|
|
2006-05-03 14:51:33 +02:00
|
|
|
|
2006-05-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/27395
|
|
|
|
|
* testsuite/libgomp.fortran/pr27395-1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/pr27395-2.f90: New test.
|
|
|
|
|
|
2006-05-02 22:03:38 +02:00
|
|
|
|
2006-05-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26943
|
|
|
|
|
* testsuite/libgomp.c/pr26943-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-3.c: New test.
|
|
|
|
|
* testsuite/libgomp.c/pr26943-4.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr27337.C: Remove barrier.
|
|
|
|
|
* testsuite/libgomp.c++/pr26943.C: New test.
|
|
|
|
|
|
2006-05-02 12:44:55 +02:00
|
|
|
|
2006-05-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/27337
|
|
|
|
|
* testsuite/libgomp.c++/pr27337.C: New test.
|
|
|
|
|
|
2006-04-26 10:26:06 +02:00
|
|
|
|
2006-04-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/26171
|
|
|
|
|
* testsuite/libgomp.c/pr26171.c: New test.
|
|
|
|
|
|
2006-04-25 22:58:25 +02:00
|
|
|
|
2006-04-25 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25865
|
|
|
|
|
* configure.ac: Use GCC_CHECK_TLS.
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
|
|
|
|
|
* Makefile.in, aclocal.m4, configure: Regenerate.
|
|
|
|
|
|
2006-04-10 23:34:19 +02:00
|
|
|
|
2006-04-10 Matthias Klose <doko@debian.org>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
|
|
|
|
|
directory names containing underscores.
|
|
|
|
|
|
2006-03-21 17:21:24 +01:00
|
|
|
|
2006-03-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26691
|
|
|
|
|
* testsuite/libgomp.c++/pr26691.C: New test.
|
|
|
|
|
|
2006-03-13 22:44:04 +01:00
|
|
|
|
2006-03-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/retval2.f90: New test.
|
|
|
|
|
|
2006-03-09 19:14:39 +01:00
|
|
|
|
2006-03-09 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++: New directory.
|
|
|
|
|
|
2006-02-25 22:23:09 +01:00
|
|
|
|
2006-02-25 Shantonu Sen <ssen@opendarwin.org>
|
|
|
|
|
|
|
|
|
|
* config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
|
|
|
|
|
* config/posix/sem.c: Implement the above.
|
|
|
|
|
|
|
|
|
|
2006-02-25 Andreas Tobler <a.tobler@schweiz.ch>
|
|
|
|
|
|
|
|
|
|
* configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
|
|
|
|
|
define HAVE_BROKEN_POSIX_SEMAPHORES.
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
* config.h.in: Rebuilt.
|
|
|
|
|
|
2006-02-17 20:01:04 +01:00
|
|
|
|
2006-02-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/26161
|
|
|
|
|
* configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
|
|
|
|
|
for the other pthread check.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
|
2006-02-15 08:46:39 +01:00
|
|
|
|
2006-02-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25938
|
|
|
|
|
PR libgomp/25984
|
|
|
|
|
* Makefile.am (fincludedir): New variable.
|
|
|
|
|
(nodist_include_HEADERS): Remove Fortran files.
|
|
|
|
|
(nodist_finclude_HEADERS): New variable.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
|
re PR fortran/25162 (Issue with OpenMP COPYIN and gfortran)
gcc/fortran/
2006-02-14 Jakub Jelinek <jakub@redhat.com>
Richard Henderson <rth@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* invoke.texi: Document -fopenmp.
* gfortran.texi (Extensions): Document OpenMP.
Backport from gomp-20050608-branch
* trans-openmp.c: Call build_omp_clause instead of
make_node when creating OMP_CLAUSE_* trees.
(gfc_trans_omp_reduction_list): Remove argument 'code'.
Adjust all callers.
* trans.h (build4_v): Define.
* trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes.
Call build3_v to create OMP_SECTIONS nodes.
PR fortran/25162
* openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced
on all symbols added to the variable list.
* openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC
procedure symbol in REDUCTION.
* trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add
for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE.
* trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument. If PBLOCK
is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in
that statement block.
(gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do
for non-ordered non-static combined loops.
(gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do.
* openmp.c: Include target.h and toplev.h.
(gfc_match_omp_threadprivate): Emit diagnostic if target does
not support TLS.
* Make-lang.in (fortran/openmp.o): Add dependencies on
target.h and toplev.h.
* trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT.
* trans-openmp.c (gfc_omp_privatize_by_reference): Make
DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT.
(gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT.
(gfc_trans_omp_variable): New function.
(gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it.
* trans.h (GFC_DECL_RESULT): Define.
* trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function.
* f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
* trans.h (gfc_omp_firstprivatize_type_sizes): New prototype.
* trans-openmp.c (gfc_omp_privatize_by_reference): Return
true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set.
(gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New
functions.
(gfc_trans_omp_clauses): Add WHERE argument. Call
gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list
for reductions.
(gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
gfc_trans_omp_sections, gfc_trans_omp_single): Adjust
gfc_trans_omp_clauses callers.
* openmp.c (omp_current_do_code): New var.
(gfc_resolve_omp_do_blocks): New function.
(gfc_resolve_omp_parallel_blocks): Call it.
(gfc_resolve_do_iterator): Add CODE argument. Don't propagate
predetermination if argument is !$omp do or !$omp parallel do
iteration variable.
* resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks
for EXEC_OMP_DO. Adjust gfc_resolve_do_iterator caller.
* fortran.h (gfc_resolve_omp_do_blocks): New prototype.
(gfc_resolve_do_iterator): Add CODE argument.
* trans.h (gfc_omp_predetermined_sharing,
gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
prototypes.
(GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define.
* trans-openmp.c (gfc_omp_predetermined_sharing,
gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
functions.
* trans-common.c (build_equiv_decl, build_common_decl,
create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls.
* trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE
on the decl.
* f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING,
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define.
* openmp.c (resolve_omp_clauses): Remove extraneous comma.
* symbol.c (check_conflict): Add conflict between cray_pointee and
threadprivate.
* openmp.c (gfc_match_omp_threadprivate): Fail if
gfc_add_threadprivate returned FAILURE.
(resolve_omp_clauses): Diagnose Cray pointees in SHARED,
{,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in
{FIRST,LAST}PRIVATE and REDUCTION clauses.
* resolve.c (omp_workshare_flag): New variable.
(resolve_function): Diagnose use of non-ELEMENTAL user defined
function in WORKSHARE construct.
(resolve_code): Cleanup forall_save use. Make sure omp_workshare_flag
is set to correct value in different contexts.
* openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing
variable name.
(resolve_omp_atomic): Likewise.
PR fortran/24493
* scanner.c (skip_free_comments): Set at_bol at the beginning of the
loop, not before it.
(skip_fixed_comments): Handle ! comments in the middle of line here
as well.
(gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if
not at BOL.
(gfc_next_char_literal): Fix expected canonicalized *$omp string.
* trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit
initialization to build OMP_FOR instead of build.
* trans-decl.c (gfc_gimplify_function): Invoke
diagnose_omp_structured_block_errors.
* trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER.
(gfc_trans_omp_ordered): Use OMP_ORDERED.
* gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks,
gfc_resolve_omp_parallel_blocks): New prototypes.
* resolve.c (resolve_blocks): Renamed to...
(gfc_resolve_blocks): ... this. Remove static.
(gfc_resolve_forall): Adjust caller.
(resolve_code): Only call gfc_resolve_blocks if code->block != 0
and not for EXEC_OMP_PARALLEL* directives. Call
gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives.
Call gfc_resolve_do_iterator if resolved successfully EXEC_DO
iterator.
* openmp.c: Include pointer-set.h.
(omp_current_ctx): New variable.
(gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New
functions.
* Make-lang.in (fortran/openmp.o): Depend on pointer-set.h.
* openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor,
look up symbol if it exists, use its name instead and, if it is not
INTRINSIC, issue diagnostics.
* parse.c (parse_omp_do): Handle implied end do properly.
(parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO,
return it instead of continuing.
* trans-openmp.c (gfc_trans_omp_critical): Update for changed
operand numbering.
(gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
gfc_trans_omp_sections, gfc_trans_omp_single): Likewise.
* trans.h (gfc_omp_privatize_by_reference): New prototype.
* f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine
to gfc_omp_privatize_by_reference.
* trans-openmp.c (gfc_omp_privatize_by_reference): New function.
* trans-stmt.h (gfc_trans_omp_directive): Add comment.
* openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument.
Disallow COMMON matching if it is set.
(gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers.
(resolve_omp_clauses): Show locus in error messages. Check that
variable types in reduction clauses are appropriate for reduction
operators.
* resolve.c (resolve_symbol): Don't error if a threadprivate module
variable isn't SAVEd.
* trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY.
Fix typo in condition. Fix DOVAR initialization.
* openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor
rather than .min. etc.
* trans-openmpc.c (omp_not_yet): Remove.
(gfc_trans_omp_parallel_do): Keep listprivate clause on parallel.
Force creation of BIND_EXPR around the workshare construct.
(gfc_trans_omp_parallel_sections): Likewise.
(gfc_trans_omp_parallel_workshare): Likewise.
* types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
* trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT.
(gfc_trans_omp_code): New function.
(gfc_trans_omp_do): Use it, remove omp_not_yet uses.
(gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise.
(gfc_trans_omp_sections): Likewise. Only treat empty last section
specially if lastprivate clause is present.
* f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP
builtin.
* trans-openmp.c (gfc_trans_omp_variable_list): Update for
OMP_CLAUSE_DECL name change.
(gfc_trans_omp_do): Likewise.
* trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION
clauses.
(gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding
sync builtins directly.
(gfc_trans_omp_single): Build OMP_SINGLE statement.
* trans-openmp.c (gfc_trans_add_clause): New.
(gfc_trans_omp_variable_list): Take a tree code and build the clause
node here. Link it to the head of a list.
(gfc_trans_omp_clauses): Update to match.
(gfc_trans_omp_do): Use gfc_trans_add_clause.
* trans-openmp.c (gfc_trans_omp_clauses): Change second argument to
gfc_omp_clauses *. Use gfc_evaluate_now instead of creating
temporaries by hand.
(gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros.
(gfc_trans_omp_do): New function.
(gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL.
(gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller.
Use buildN_v macros.
(gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections,
gfc_trans_omp_single, gfc_trans_omp_workshare): New functions.
(gfc_trans_omp_directive): Use them.
* parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP.
* openmp.c (resolve_omp_clauses): Check for list items present
in multiple clauses.
(resolve_omp_do): Check that iteration variable is not THREADPRIVATE
and is not present in any clause variable lists other than PRIVATE
or LASTPRIVATE.
* gfortran.h (symbol_attribute): Add threadprivate bit.
(gfc_common_head): Add threadprivate member, change use_assoc
and saved into char to save space.
(gfc_add_threadprivate): New prototype.
* symbol.c (check_conflict): Handle threadprivate.
(gfc_add_threadprivate): New function.
(gfc_copy_attr): Copy threadprivate.
* trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary
if IF or NUM_THREADS is constant. Create OMP_CLAUSE_SCHEDULE and
OMP_CLAUSE_ORDERED.
* resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol
outside a module and not in COMMON has is not SAVEd.
(resolve_equivalence): Ensure THREADPRIVATE objects don't get
EQUIVALENCEd.
* trans-common.c: Include target.h and rtl.h.
(build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
* trans-decl.c: Include rtl.h.
(gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
* dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE.
* Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H).
(fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H).
* openmp.c (gfc_match_omp_variable_list): Ensure COMMON block
is from current namespace.
(gfc_match_omp_threadprivate): Rewrite.
(resolve_omp_clauses): Check some clause restrictions.
* module.c (ab_attribute): Add AB_THREADPRIVATE.
(attr_bits): Add THREADPRIVATE.
(mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate.
(load_commons, write_common, write_blank_common): Adjust for type
change of saved, store/load threadprivate bit from the integer
as well.
* types.def (BT_FN_UINT_UINT): New.
(BT_FN_VOID_UINT_UINT): Remove.
* trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier,
gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master,
gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions.
(gfc_trans_omp_directive): Use them.
* openmp.c (expr_references_sym): Add SE argument, don't look
into SE tree.
(is_conversion): New function.
(resolve_omp_atomic): Adjust expr_references_sym callers. Handle
promoted expressions.
* trans-openmp.c (gfc_trans_omp_atomic): New function.
(gfc_trans_omp_directive): Call it.
* f95-lang.c (builtin_type_for_size): New function.
(gfc_init_builtin_functions): Initialize synchronization and
OpenMP builtins.
* types.def: New file.
* Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and
fortran/types.def.
* trans-openmp.c: Rename GOMP_* tree codes into OMP_*.
* dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name
is NULL.
* dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New
functions.
(gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes.
* parse.c (parse_omp_do): Call pop_state before next_statement.
* openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do):
New functions.
(gfc_resolve_omp_directive): Call them.
* match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement
leaves an OpenMP structured block or if EXIT terminates !$omp do
loop.
* Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o.
(F95_OBJS): Add fortran/trans-openmp.o.
(fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS).
* lang.opt: Add -fopenmp option.
* options.c (gfc_init_options): Initialize it.
(gfc_handle_option): Handle it.
* gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL,
ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER,
ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO,
ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE,
ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE,
ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED,
ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS,
ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION,
ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New
statement codes.
(OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE,
OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN,
OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM):
New OpenMP variable list types.
(gfc_omp_clauses): New typedef.
(gfc_get_omp_clauses): Define.
(EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER,
EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO,
EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE,
EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE,
EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT,
EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes.
(struct gfc_code): Add omp_clauses, omp_name, omp_namelist
and omp_bool fields to ext union.
(flag_openmp): Declare.
(gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes.
* scanner.c (openmp_flag, openmp_locus): New variables.
(skip_free_comments, skip_fixed_comments, gfc_next_char_literal):
Handle OpenMP directive lines and conditional compilation magic
comments.
* parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state.
* parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic,
parse_omp_structured_block): New functions.
(next_free, next_fixed): Parse OpenMP directives.
(case_executable, case_exec_markers, case_decl): Add ST_OMP_*
codes.
(gfc_ascii_statement): Handle ST_OMP_* codes.
(parse_executable): Rearrange the loop slightly, so that
parse_omp_do can return next_statement.
* match.h (gfc_match_omp_eos, gfc_match_omp_atomic,
gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do,
gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered,
gfc_match_omp_parallel, gfc_match_omp_parallel_do,
gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
gfc_match_omp_sections, gfc_match_omp_single,
gfc_match_omp_threadprivate, gfc_match_omp_workshare,
gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes.
* resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives.
(resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_*
directives.
* trans.c (gfc_trans_code): Call gfc_trans_omp_directive for
EXEC_OMP_* directives.
* st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing.
* trans-stmt.h (gfc_trans_omp_directive): New prototype.
* openmp.c: New file.
* trans-openmp.c: New file.
gcc/testsuite/
2006-02-14 Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
Uros Bizjak <uros@kss-loka.si>
* gfortran.dg/gomp: New directory.
libgomp/
2006-02-14 Jakub Jelinek <jakub@redhat.com>
* testsuite/libgomp.fortran/vla7.f90: Add -w to options.
Remove tests for returning assumed character length arrays.
Co-Authored-By: Diego Novillo <dnovillo@redhat.com>
Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Uros Bizjak <uros@kss-loka.si>
From-SVN: r110984
2006-02-14 17:38:03 +01:00
|
|
|
|
2006-02-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/vla7.f90: Add -w to options.
|
|
|
|
|
Remove tests for returning assumed character length arrays.
|
|
|
|
|
|
2006-02-13 03:33:37 +01:00
|
|
|
|
2006-02-12 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
John David Anglin <dave@hiauly1.hia.nrc.ca>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25936
|
|
|
|
|
* configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
|
2006-07-05 19:32:41 +02:00
|
|
|
|
|
2006-02-08 23:36:39 +01:00
|
|
|
|
2006-02-08 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
|
|
|
|
|
|
2006-02-07 22:57:38 +01:00
|
|
|
|
2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
|
|
|
|
|
part of LD_LIBRARY_PATH manually.
|
|
|
|
|
|
2006-02-03 19:37:11 +01:00
|
|
|
|
2006-02-03 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25852
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp (blddir): Set it in
|
|
|
|
|
libgomp_init.
|
|
|
|
|
|
re PR libgomp/25884 (libgomp should not require perl to compile)
PR libgomp/25884
* Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
* configure.ac (PERL): Don't set.
(gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
(OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
* omp.h.in: Wrap the new configure substitutions with @ characters.
* omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
* aclocal.m4, configure, Makefile.in: Regenerate.
* mkomp_h.pl: Delete.
From-SVN: r110220
2006-01-25 20:17:57 +01:00
|
|
|
|
2005-01-25 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25884
|
2006-02-03 19:37:11 +01:00
|
|
|
|
* Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
|
|
|
|
|
* configure.ac (PERL): Don't set.
|
|
|
|
|
(gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
|
|
|
|
|
(OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
|
|
|
|
|
OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
|
|
|
|
|
* omp.h.in: Wrap the new configure substitutions with @ characters.
|
|
|
|
|
* omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
|
|
|
|
|
* aclocal.m4, configure, Makefile.in: Regenerate.
|
|
|
|
|
* mkomp_h.pl: Delete.
|
re PR libgomp/25884 (libgomp should not require perl to compile)
PR libgomp/25884
* Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
* configure.ac (PERL): Don't set.
(gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
(OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
* omp.h.in: Wrap the new configure substitutions with @ characters.
* omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
* aclocal.m4, configure, Makefile.in: Regenerate.
* mkomp_h.pl: Delete.
From-SVN: r110220
2006-01-25 20:17:57 +01:00
|
|
|
|
|
2006-01-24 22:06:07 +01:00
|
|
|
|
2005-01-24 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25259
|
|
|
|
|
* configure.ac: Use GCC_HEADER_STDINT.
|
|
|
|
|
* libgomp.h: Include gstdint.h.
|
|
|
|
|
* libgomp_f.h.in: Don't include stdint.h or inttypes.h.
|
|
|
|
|
* configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
|
|
|
|
|
|
2006-01-24 17:52:09 +01:00
|
|
|
|
2006-01-24 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25942
|
|
|
|
|
* configure.ac: Add AM_MAINTAINER_MODE.
|
|
|
|
|
* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
|
|
|
|
|
|
2006-01-24 16:31:32 +01:00
|
|
|
|
2006-01-24 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
|
2006-01-23 19:28:51 +01:00
|
|
|
|
2006-01-23 Andreas Tobler <a.tobler@schweiz.ch>
|
|
|
|
|
|
|
|
|
|
* config/posix/proc.c: Conditional include of sys/loadavg.h for
|
|
|
|
|
Solaris.
|
|
|
|
|
* configure.ac: Add check for loadavg.h.
|
|
|
|
|
(link_gomp): Adjust comment.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
|
2006-01-21 18:57:01 +01:00
|
|
|
|
2006-01-21 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25877
|
|
|
|
|
* configure.ac: Remove check for alloca.h.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* libgomp.h: define gomp_alloca to be __builtin_alloca.
|
|
|
|
|
* team.c: Remove use of alloca.h.
|
|
|
|
|
Call gomp_alloca instead of alloca.
|
|
|
|
|
|
2006-01-20 19:17:28 +01:00
|
|
|
|
2006-01-20 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/25877
|
|
|
|
|
* team.c: Add include of alloca.h.
|
|
|
|
|
* configure.ac: Add check for alloca.h.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
|
[multiple changes]
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* libgomp: New directory.
* Makefile.def: Add target_module libgomp.
* Makefile.in: Regenerate.
* configure.in (target_libraries): Add target-libgomp.
* configure: Regenerate.
contrib/
2006-01-18 Richard Henderson <rth@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* gcc_update (files_and_dependencies): Add libgomp files.
gcc/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* omp-low.c: New file.
* c-omp.c: New file.
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* doc/invoke.texi: Document -fopenmp.
* tree-dump.h (debug_function): Declare.
* hooks.c (hook_bool_tree_bool_false): New function.
(hook_tree_tree_null): Remove.
(hook_tree_tree_tree_null): New.
* hooks.h: Update to match.
* tree-pretty-print.c (debug_tree_chain): New.
(print_generic_expr): Handle TDF_CHAIN.
(dump_generic_node): Handle BLOCK.
Do not abort with incomplete SWITCH_EXPRs.
Do not dump body of an OpenMP directive if TDF_SLIM is given.
<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
print space after directive name.
<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
Handle OMP_MASTER and OMP_ORDERED.
Handle printing of OMP_BODY just in one place, goto
dump_omp_body in the rest of OMP_* nodes that have
OMP_BODY.
Don't handle clause nodes here. Update omp statements to
use dump_omp_clauses.
Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
Adjust output for GOMP_PARALLEL.
(dump_omp_clauses): New.
(print_declaration): Dump DECL_VALUE_EXPR.
(op_symbol_1): Split out of op_symbol.
(dumping_stmts): Remove. Update all users.
* cgraph.c (cgraph_analyze_queue): New.
(cgraph_add_new_function): New.
* cgraph.h (cgraph_analyze_queue): Declare.
(cgraph_add_new_function): Declare.
(cgraph_lower_function): Remove.
* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
and TYPE_P nodes in its default clause.
(empty_body_p): New.
(tree_range_check_failed): New.
(build5_stat): New.
* tree.h (OMP_CLAUSE_REDUCTION_INIT,
OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_REDUCTION_PLACEHOLDER,
OMP_CLAUSE_PRIVATE_DEBUG,
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
(TREE_RANGE_CHECK): New.
(empty_body_p): Declare.
(enum omp_clause_default_kind): New.
(build_string_literal): Declare.
(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
(build5_stat, build5): Declare.
* tree-pass.h (TDF_CHAIN): Define.
* tree-pass.h (PROP_gimple_lomp): Define.
(pass_lower_omp): Declare.
* diagnostic.h (debug_tree_chain): Declare.
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
mode_for_size.
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
* builtins.c (build_string_literal): Make extern.
* gcc.c (include_spec_function): New.
(static_spec_functions): Add it.
(main): Move load of libgomp.spec ...
(LINK_COMMAND_SPEC): ... here.
(link_gomp_spec): New.
(static_specs): Include it.
(LINK_COMMAND_SPEC): Add link_gomp.
(GOMP_SELF_SPECS): New.
(driver_self_specs): Include it.
(switch_matches): Don't mark inline.
(main): Load libgomp.spec.
* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
* tree-gimple.h (enum omp_parallel): Declare.
(determine_parallel_type): Declare.
(omp_firstprivatize_variable): Declare.
(omp_reduction_init): Declare.
(diagnose_omp_structured_block_errors): Declare.
(struct walk_stmt_info): Add want_return_expr.
(struct walk_stmt_info): Add want_bind_expr, want_locations.
(find_omp_clause): Declare.
(insert_field_into_struct): Declare.
(struct walk_stmt_info): Move from tree-nested.c
(walk_stmts): Declare.
* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
to 200505.
* cgraphunit.c (cgraph_lower_function): Make static.
(cgraph_finalize_pending_functions): New.
(cgraph_finalize_function): Call it.
(cgraph_finalize_compilation_unit): Likewise.
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
(BT_FN_UINT_UINT): New.
(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
DEF_FUNCTION_TYPE_VAR_4): Document.
(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
* builtins.def: Update DEF_BUILTIN comment to include COND argument.
Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
into separate files.
(DEF_GOMP_BUILTIN): New.
(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
* sync-builtins.def: New file, moved from builtins.def.
* omp-builtins.def: New file, moved from builtins.def.
* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
* gimple-low.c (lower_function_body): Clear data.
(lower_stmt): Do not handle COMPOUND_EXPR.
Remove call to print_node_brief.
* c-tree.h (c_finish_omp_clauses): New prototype.
(C_DECL_THREADPRIVATE_P): Define.
(lookup_name_no_remap, c_omp_remap_private): Remove
(c_begin_omp_parallel, c_finish_omp_parallel): Update.
(check_for_loop_decls): Update decl.
(lookup_name_no_remap, c_omp_remap_private): Declare.
(build_indirect_ref, build_modify_expr, pushdecl,
pushdecl_top_level): Move to c-common.h.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
before the switch, but just in the 2 places that need it.
* c-decl.c (diagnose_mismatched_decls): Do not check for
mismatched thread-local attributes when OLDDECL is marked
threadprivate and NEWDECL has no thread-local attributes.
(merge_decls): Merge C_DECL_THREADPRIVATE_P.
(c_gimple_diagnostics_recursively): Rename from
c_warn_unused_result_recursively. Invoke
diagnose_omp_structured_block_errors.
(check_for_loop_decls): Return a singular decl found.
* langhooks.c (lhd_omp_predetermined_sharing): Return
OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
(lhd_omp_firstprivatize_type_sizes): New.
(lhd_omp_assignment): New.
(lhd_omp_predetermined_sharing): New.
* langhooks.h (struct gimplify_omp_ctx): Forward declare.
(struct lang_hooks_for_types): Add
omp_firstprivatize_type_sizes, omp_privatize_by_reference,
omp_predetermined_sharing, omp_disregard_value_expr,
omp_private_debug_clause, omp_clause_default_ctor,
omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
(c_finish_omp_clauses): New.
(c_finish_bc_stmt): Diagnose break within omp for.
(c_begin_omp_parallel, c_finish_omp_parallel): New.
(build_unary_op): Return error_mark after reporting
a readonly_error.
(build_modify_expr): Likewise.
* gimplify.c: Include optabs.h and pointer-set.h.
(enum gimplify_omp_var_data): Declare.
(struct gimplify_omp_ctx): Declare.
(struct gimplify_ctx): Add fields prev_context, combined_pre_p
and combined_ctxp.
(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
(push_gimplify_context, pop_gimplify_context): Allow nesting.
(splay_tree_compare_decl_uid): New.
(new_omp_context): New.
(delete_omp_context): New.
(gimple_add_tmp_var): Call omp_add_variable.
(gimplify_bind_expr): Likewise.
(gimplify_var_or_parm_decl): If omp_notice_variable returned
true, disregard DECL_VALUE_EXPR on the decl if any.
(gimplify_expr_in_ctx): New.
(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
omp_add_variable, omp_notice_variable, omp_is_private
gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
gimplify_adjust_omp_clauses, gimplify_omp_parallel
gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
gimplify_omp_atomic_fetch_op, goa_stabilize_expr
gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
gimplify_omp_atomic): New.
(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL and OMP_ATOMIC.
(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
* c-pragma.h (enum pragma_kind): Add
PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
PRAGMA_OMP_THREADPRIVATE.
* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
* tree-ssa-dce.c (find_control_dependence): Do not assume that
ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
OpenMP directives.
(struct nesting_info): Add field_map,
suppress_expansion, debug_var_chain.
(create_nesting_tree): Initialize them.
(lookup_field_for_decl): Use field_map.
(get_nonlocal_debug_decl, get_local_debug_decl): New.
(convert_local_omp_clauses): New.
(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
(walk_body): Split out of walk_function.
(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
(convert_nonlocal_reference): Handle omp statements.
(convert_local_reference): Likewise.
(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
(unnest_nesting_tree): New.
(lower_nested_functions): Call it.
(insert_field_into_struct): Make extern.
(struct walk_stmt_info): Move to tree-gimple.h.
(walk_stmts): Make extern.
* omp-builtins.def: New file.
* tree-iterator.c (expr_only): Clarify comment.
* c-common.h (pushdecl_top_level, pushdecl,
build_modify_expr, build_indirect_ref,
c_finish_omp_master, c_finish_omp_critical,
c_finish_omp_ordered, c_finish_omp_barrier,
c_finish_omp_atomic, c_finish_omp_flush,
c_finish_omp_for, c_split_parallel_clauses,
omp_clause_default_kind, c_omp_sharing_predetermined,
c_omp_remap_decl): Declare.
* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
(OBJS-common): Add omp-low.o.
(c-omp.o, omp-low.o): Add.
(gimplify.o): Add dependency on $(OPTABS_H).
(GTFILES): Add omp-low.c.
(gt-stringpool.h): Add.
* tree-cfg.c (set_bb_for_stmt): Do not update the
block-to-labels map if we are currently expanding to RTL.
(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
checks.
Handle IDENTIFIER_NODE.
(tree_verify_flow_info): Do not ICE when emitting error
messages about invalid labels.
(dump_function_to_file): Reset CFUN before emitting the body
of the function.
(debug_function): New.
* passes.c (init_optimization_passes): Schedule
pass_lower_omp.
* langhooks-def.h (lhd_omp_predetermined_sharing,
lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
Declare.
(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
LANG_HOOKS_OMP_PREDETERMINED_SHARING,
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
(LANG_HOOK_DECLS): Use them.
2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* c-parser.c (pragma_omp_clause): Define.
(c_parser_declaration_or_fndef): Document OpenMP syntax.
(c_parser_compound_statement): Likewise.
(c_parser_statement): Likewise.
(c_parser_pragma): Handle omp pragmas.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
(c_parser_omp_clause_name, check_no_duplicate_clause,
c_parser_omp_variable_list,
c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
c_parser_omp_clause_copyprivate,
c_parser_omp_clause_default,
c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
c_parser_omp_clause_lastprivate,
c_parser_omp_clause_nowait,
c_parser_omp_clause_num_threads,
c_parser_omp_clause_ordered, c_parser_omp_clause_private,
c_parser_omp_clause_reduction,
c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
c_parser_omp_all_clauses, c_parser_omp_structured_block,
c_parser_omp_atomic, c_parser_omp_barrier,
c_parser_omp_critical, c_parser_omp_flush,
c_parser_omp_for_loop, c_parser_omp_for,
c_parser_omp_master, c_parser_omp_ordered,
c_parser_omp_sections_scope, c_parser_omp_sections,
c_parser_omp_parallel, c_parser_omp_single,
c_parser_omp_construct, c_parser_omp_threadprivate): New.
* c-pragma.c (init_pragma): Do omp pragma registration here.
* c.opt (fopenmp): New flag.
2006-01-18 Eric Christopher <echristo@apple.com>
* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
* config/darwin.h (GOMP_SELF_SPECS): Define.
testsuite/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
Uros Bizjak <uros@kss-loka.si>
* testsuite/gcc.dg/gomp: New directory.
From-SVN: r109902
2006-01-18 20:21:25 +01:00
|
|
|
|
2006-01-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/25219
|
|
|
|
|
* testsuite/libgomp.fortran/pr25219.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-12-05 Uros Bizjak <uros@kss-loka.si>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
|
|
|
|
|
testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
|
|
|
|
|
testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
|
|
|
|
|
testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
|
|
|
|
|
testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
|
|
|
|
|
testsuite/libgomp.fortran/threadprivate1.f90,
|
|
|
|
|
testsuite/libgomp.fortran/threadprivate2.f90,
|
|
|
|
|
testsuite/libgomp.fortran/threadprivate3.f90,
|
|
|
|
|
testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
|
|
|
|
|
testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
|
|
|
|
|
testsuite/libgomp.fortran/omp_parse3.f90: Change required
|
|
|
|
|
effective-target to TLS runtime.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/pr25162.f: Require
|
|
|
|
|
effective-target TLS runtime.
|
|
|
|
|
|
|
|
|
|
2005-12-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.c/nestedfn-3.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-11-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/25162
|
|
|
|
|
* testsuite/libgomp.fortran/pr25162.f: New test.
|
|
|
|
|
|
|
|
|
|
2005-11-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
|
|
|
|
|
CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
|
|
|
|
|
|
|
|
|
|
2005-11-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
|
|
|
|
|
libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
|
|
|
|
|
omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
|
|
|
|
|
single.c, team.c, work.c, config/linux/alpha/futex.h,
|
|
|
|
|
config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
|
|
|
|
|
config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
|
|
|
|
|
config/linux/powerpc/futex.h, config/linux/s390/futex.h,
|
|
|
|
|
config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
|
|
|
|
|
config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
|
|
|
|
|
config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
|
|
|
|
|
config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
|
|
|
|
|
FSF address.
|
|
|
|
|
|
|
|
|
|
2005-11-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
|
|
|
|
|
to nodist_noinst_HEADERS.
|
|
|
|
|
* Makefile.in: Rebuilt.
|
|
|
|
|
|
|
|
|
|
* config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
|
|
|
|
|
add integer count field.
|
|
|
|
|
* config/posix/lock.c (omp_destroy_nest_lock): Adjust for
|
|
|
|
|
omp_nest_lock_t type change.
|
|
|
|
|
(omp_init_nest_lock): Likewise. Initialize count to 0.
|
|
|
|
|
(omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
|
|
|
|
|
Increment count.
|
|
|
|
|
(omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
|
|
|
|
|
Decrement count.
|
|
|
|
|
(omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
|
|
|
|
|
Increment count if successful and return the new nesting level.
|
|
|
|
|
* config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
|
|
|
|
|
* omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
|
|
|
|
|
* testsuite/libgomp.c/lib-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/lib1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/lib2.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/lib3.f: New test.
|
|
|
|
|
|
|
|
|
|
2005-11-17 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 24845
|
|
|
|
|
* Makefile.am (nodist_toolexeclib_HEADERS): New.
|
|
|
|
|
* configure.ac (link_gomp): New. Substitute it.
|
|
|
|
|
(AC_CONFIG_FILES): Add libgomp.spec.
|
|
|
|
|
* libgomp.spec.in: New file.
|
|
|
|
|
* Makefile.in, testsuite/Makefile.in, configure: Rebuild.
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
|
|
|
|
|
|
|
|
|
|
2005-11-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reduction1.f90: Adjust for
|
|
|
|
|
reduction(-:var) behaving the same as reduction(+:var).
|
|
|
|
|
* testsuite/libgomp.c/reduction-4.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-11-15 Uros Bizjak <uros@kss-loka.si>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
|
|
|
|
|
testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
|
|
|
|
|
testsuite/libgomp.c/copyin-3.c,
|
|
|
|
|
testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
|
|
|
|
|
testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
|
|
|
|
|
testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
|
|
|
|
|
testsuite/libgomp.c++/pr24455.C,
|
|
|
|
|
testsuite/libgomp.fortran/threadprivate1.f90,
|
|
|
|
|
testsuite/libgomp.fortran/threadprivate2.f90,
|
|
|
|
|
testsuite/libgomp.fortran/threadprivate3.f90,
|
|
|
|
|
testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
|
|
|
|
|
testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
|
|
|
|
|
testsuite/libgomp.fortran/omp_parse3.f90: Require
|
|
|
|
|
effective-target TLS.
|
|
|
|
|
|
|
|
|
|
2005-11-14 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* HEADER: Remove.
|
|
|
|
|
|
|
|
|
|
2005-11-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgomp/24797
|
|
|
|
|
* team.c (initialize_team): Pass NULL rather than free as
|
|
|
|
|
pthread_key_create destructor. Initialize thread specific data
|
|
|
|
|
pointer in initial thread to a static local variable rather than
|
|
|
|
|
malloced memory.
|
|
|
|
|
|
|
|
|
|
2005-11-11 Uros Bizjak <uros@kss-loka.si>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
|
|
|
|
|
its location to ld_library_path.
|
|
|
|
|
|
|
|
|
|
2005-11-10 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c/c.exp: Rename from dg.exp.
|
|
|
|
|
|
|
|
|
|
2005-11-10 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c: Rename from libgomp.dg.
|
|
|
|
|
|
|
|
|
|
2005-11-09 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/pr24455.C: Add copyin clause for
|
|
|
|
|
threadprivate variable 'i'.
|
|
|
|
|
|
|
|
|
|
2005-11-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/s390/futex.h: New file.
|
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
|
|
|
|
|
before the parallel.
|
|
|
|
|
|
|
|
|
|
2005-11-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24734
|
|
|
|
|
* testsuite/libgomp.c++/master-1.C: New test.
|
|
|
|
|
|
|
|
|
|
2005-11-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/copyin-3.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-11-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/retval1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/vla7.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-11-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/vla2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/vla3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/vla4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/vla5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/vla6.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-11-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/sparc/futex.h: New file.
|
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
|
|
|
|
|
|
|
|
|
|
* critical.c: Include stdlib.h.
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
|
|
|
|
|
ignoring return value.
|
|
|
|
|
* configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
|
|
|
|
|
LIBGOMP_CHECK_SYNC_BUILTINS check.
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
|
|
|
|
|
2005-10-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/vla1.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-31 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/character2.f90: Fix race condition
|
|
|
|
|
setting 's' in different threads.
|
|
|
|
|
|
|
|
|
|
2005-10-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (attribute_hidden, ialias): Define.
|
|
|
|
|
* config/posix/proc.c (omp_get_num_procs): Add ialias.
|
|
|
|
|
* config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
|
|
|
|
|
* config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
|
|
|
|
|
omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
|
|
|
|
|
omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
|
|
|
|
|
omp_test_lock, omp_test_nest_lock): Likewise.
|
|
|
|
|
* config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
|
|
|
|
|
omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
|
|
|
|
|
omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
|
|
|
|
|
omp_test_lock, omp_test_nest_lock): Likewise.
|
|
|
|
|
* env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
|
|
|
|
|
omp_get_dynamic, omp_get_nested): Likewise.
|
|
|
|
|
* parallel.c (omp_get_num_threads, omp_get_max_threads,
|
|
|
|
|
omp_get_thread_num, omp_in_parallel): Likewise.
|
|
|
|
|
* fortran.c (ialias_redirect): Define.
|
|
|
|
|
(omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
|
|
|
|
|
omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
|
|
|
|
|
omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
|
|
|
|
|
omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
|
|
|
|
|
omp_set_num_threads, omp_get_dynamic, omp_get_nested,
|
|
|
|
|
omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
|
|
|
|
|
omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
|
|
|
|
|
omp_get_wtime): Add ialias_redirect.
|
|
|
|
|
|
|
|
|
|
2005-10-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* fortran.c: Include stdlib.h.
|
|
|
|
|
|
|
|
|
|
2005-10-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
|
|
|
|
|
2005-10-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
|
|
|
|
|
* libgomp_f.h.in (omp_check_defines): New function.
|
|
|
|
|
* env.c: Include libgomp_f.h.
|
|
|
|
|
(initialize_env): Call omp_check_defines.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/copyin-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/copyin-2.C: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate3.f90: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/sharing2.f90: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/copyin-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.c++/copyin-1.C: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/crayptr1.f90: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/workshare1.f90: New test.
|
|
|
|
|
|
|
|
|
|
* libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
|
|
|
|
|
only test.
|
|
|
|
|
* libgomp.fortran/sharing1.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24502
|
|
|
|
|
* testsuite/libgomp.c++/loop-7.C: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/nestedfn-2.c: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/nestedfn-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction6.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/nestedfn1.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-23 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/ctor-1.C: New.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-2.C: New.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-3.C: New.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-4.C: New.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-5.C: New.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-6.C: New.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-7.C: New.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-8.C: New.
|
|
|
|
|
* testsuite/libgomp.c++/ctor-9.C: New.
|
|
|
|
|
|
|
|
|
|
2005-10-21 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 24455
|
|
|
|
|
* testsuite/libgomp.c++/pr24455-1.C: New test.
|
|
|
|
|
* testsuite/libgomp.c++/pr24455.C: New test.
|
|
|
|
|
* testsuite/libgomp.dg/pr24455-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/pr24455.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-20 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/loop-6.C: New.
|
|
|
|
|
* testsuite/libgomp.dg/loop-3.c: New.
|
|
|
|
|
|
|
|
|
|
2005-10-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/jacobi.f: Don't make i and j
|
|
|
|
|
explicitly private.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
|
|
|
|
|
explicitly shared.
|
|
|
|
|
|
|
|
|
|
2005-10-19 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/jacobi.f: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-19 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (i?86-linux): Default to with_arch instead of
|
|
|
|
|
CFLAGS. Add -mtune to match target_cpu.
|
|
|
|
|
(x86_64-linux): Tune to i686.
|
|
|
|
|
|
|
|
|
|
* fortran.c (omp_test_nest_lock_): Fix typo.
|
|
|
|
|
|
|
|
|
|
2005-10-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
|
|
|
|
|
gomp_ordered_sync): Do nothing if team->nthreads == 1.
|
|
|
|
|
* testsuite/libgomp.dg/ordered-3.c: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
|
|
|
|
|
Remove volatile keyword.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
|
|
|
|
|
in COMMON block to avoid warnings on 64-bit targets.
|
|
|
|
|
|
|
|
|
|
2005-10-18 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/shared-3.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction5.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
|
|
|
|
|
dg-options.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise. Enable
|
|
|
|
|
flush loop now that __sync_synchronize has proper memory barrier.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
|
|
|
|
|
Add -ffixed-form to dg-options.
|
|
|
|
|
|
|
|
|
|
2005-10-17 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: Also gather tests
|
|
|
|
|
from subdirectories.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/dg.exp: Only unset lang_* if
|
|
|
|
|
lang_library_path exists. Use find instead of glob to gather tests.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
|
|
|
|
|
|
|
|
|
|
2005-10-17 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
|
|
|
|
|
|
|
|
|
|
2005-10-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/vla-1.c: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reference2.f90: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/character2.f90: Remove explicit
|
|
|
|
|
declaration of omp_get_thread_num.
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate1.f90: Likewise. Add
|
|
|
|
|
use omp_lib.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reduction1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/reduction4.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-13 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add bar.c.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* barrier.c (GOMP_barrier): Use gomp_barrier_wait.
|
|
|
|
|
* libgomp.h: Include bar.h.
|
|
|
|
|
(struct gomp_barrier): Remove.
|
|
|
|
|
(struct gomp_team): Add barrier. Replace master_barrier with
|
|
|
|
|
master_release. Replace threads with ordered_release.
|
|
|
|
|
(struct gomp_thread): Replace barrier with release.
|
|
|
|
|
* ordered.c (gomp_ordered_first): Update for ordered_release change.
|
|
|
|
|
(gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
|
|
|
|
|
gomp_ordered_static_next, gomp_ordered_sync): Likewise.
|
|
|
|
|
* single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
|
|
|
|
|
(GOMP_single_copy_end): Likewise.
|
|
|
|
|
* team.c (gomp_threads_dock): New.
|
|
|
|
|
(gomp_barrier_init, gomp_barrier_destroy): Remove.
|
|
|
|
|
(gomp_thread_start): Use gomp_barrier_wait.
|
|
|
|
|
(new_team, free_team): Update for gomp_team changes.
|
|
|
|
|
(gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
|
|
|
|
|
(gomp_team_end): Use gomp_barrier_wait.
|
|
|
|
|
(initialize_team): Update for gomp_thread changes.
|
|
|
|
|
* work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
|
|
|
|
|
(gomp_work_share_end_nowait): Use atomic ops when available.
|
|
|
|
|
* config/linux/bar.c, config/linux/bar.h: New files.
|
|
|
|
|
* config/posix/bar.c, config/posix/bar.h: New files.
|
|
|
|
|
|
|
|
|
|
2005-10-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
|
|
|
|
|
* testsuite/libgomp.dg/single-2.c: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
|
|
|
|
|
lang_link_flags): Unset, so that they aren't inherited from previously
|
|
|
|
|
sourced *.exp.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/threadprivate1.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-12 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
|
|
|
|
|
(libgomp_init): Use lang_test_file, lang_library_path, and
|
|
|
|
|
lang_link_flags, set by the subdirectory files. Add -fopenmp here.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
|
|
|
|
|
(lang_test_file, lang_link_flags): New.
|
|
|
|
|
(DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
|
|
|
|
|
testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
|
|
|
|
|
testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
|
|
|
|
|
testsuite/libgomp.c++/parallel-1.C,
|
|
|
|
|
testsuite/libgomp.c++/reduction-1.C,
|
|
|
|
|
testsuite/libgomp.c++/reduction-2.C,
|
|
|
|
|
testsuite/libgomp.c++/reduction-3.C,
|
|
|
|
|
testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
|
|
|
|
|
testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
|
|
|
|
|
testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
|
|
|
|
|
New files, largely cribbed from the C testsuite.
|
|
|
|
|
|
|
|
|
|
2005-10-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/character1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/character2.f90: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/nested-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/nested-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/do1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/do2.f90: New test.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/reference1.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/reduction-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/reduction-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/reduction-3.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/atomic-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/atomic-2.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-10-09 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* critical.c (atomic_lock): New.
|
|
|
|
|
(initialize_critical): Initialize it.
|
|
|
|
|
(GOMP_atomic_start, GOMP_atomic_end): New.
|
|
|
|
|
* libgomp.map: Export them.
|
|
|
|
|
* libgomp_g.h: Declare them.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
|
|
|
|
|
|
|
|
|
|
2005-10-02 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Move save_CFLAGS hack earlier. Append -Wall/-Werror
|
|
|
|
|
to XCFLAGS instead of CFLAGS.
|
|
|
|
|
|
|
|
|
|
2005-09-30 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Determine whether -pthread or -lpthread is needed.
|
|
|
|
|
* Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
|
|
|
|
|
* Makefine.in, configure: Rebuild.
|
|
|
|
|
|
|
|
|
|
2005-09-28 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop03.c: Fix return code.
|
|
|
|
|
* testsuite/libgomp.dg/omp-single-3.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-09-28 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-single-2.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/shared-2.c: Fix return code.
|
|
|
|
|
|
|
|
|
|
2005-09-27 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
|
|
|
|
|
* testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
|
|
|
|
|
|
|
|
|
|
2005-09-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop03.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-09-27 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-parallel-for.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-09-27 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-single-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/shared-1.c: Return 0.
|
|
|
|
|
Add prototype for abort.
|
|
|
|
|
* testsuite/libgomp.dg/shared-2.c: Likewise.
|
|
|
|
|
|
|
|
|
|
2005-09-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
|
|
|
|
|
constructs.
|
|
|
|
|
|
|
|
|
|
2005-09-26 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/shared-1.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/shared-2.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-09-24 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
|
|
|
|
|
|
|
|
|
|
2005-09-24 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_static_next): Round up when computing number
|
|
|
|
|
of iterations. Don't bother distributing a remainder equally.
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
|
|
|
|
|
Don't call srand. Zero b before testing.
|
|
|
|
|
(main): New.
|
|
|
|
|
|
|
|
|
|
2005-09-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_atomic2.f90: New test.
|
|
|
|
|
|
|
|
|
|
2005-09-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
|
|
|
|
|
without !$omp end do, followed immediately by subroutine end.
|
|
|
|
|
|
|
|
|
|
2005-09-23 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-parallel-if.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-09-22 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* critical.c (GOMP_critical_name_start): Change argument to void**.
|
|
|
|
|
Reuse the pointer space if the mutex fits.
|
|
|
|
|
(GOMP_critical_name_end): Likewise.
|
|
|
|
|
(initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
|
|
|
|
|
* libgomp_g.h (GOMP_critical_name_start): Update decl.
|
|
|
|
|
(GOMP_critical_name_end): Likewise.
|
|
|
|
|
* config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
|
|
|
|
|
* config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
|
|
|
|
|
|
|
|
|
|
2005-09-20 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
|
|
|
|
|
(create_lock_lock): New.
|
|
|
|
|
(initialize_critical): Initialize it.
|
|
|
|
|
* libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
|
|
|
|
|
* libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
|
|
|
|
|
|
|
|
|
|
2005-09-20 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
|
|
|
|
|
|
|
|
|
|
2005-09-20 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop01.c: New test.
|
|
|
|
|
* testsuite/libgomp.dg/omp-loop02.c: New test.
|
|
|
|
|
|
|
|
|
|
2005-09-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac (AC_PROG_FC): Add.
|
|
|
|
|
(USE_FORTRAN): New automake conditional.
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
* Makefile.am (libgomp_la_SOURCES): Add fortran.c.
|
|
|
|
|
(nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
|
|
|
|
|
If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
|
|
|
|
|
Add rules to build them.
|
|
|
|
|
* Makefile.in: Rebuilt.
|
|
|
|
|
* mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
|
|
|
|
|
OMP_NEST_LOCK_KIND.
|
|
|
|
|
* libgomp.map: Add Fortran wrappers.
|
|
|
|
|
* libgomp_f.h.in: New file.
|
|
|
|
|
* omp_lib.h.in: New file.
|
|
|
|
|
* omp_lib.f90.in: New file.
|
|
|
|
|
* fortran.c: New file.
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
|
|
|
|
|
Append libgfortran directory to LD_LIBRARY_PATH if it exists.
|
|
|
|
|
Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
|
|
|
|
|
libgfortran has been built.
|
|
|
|
|
* testsuite/libgomp.fortran/fortran.exp: New file.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond1.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond2.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond3.F90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_cond4.F90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_hello.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_orphan.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse1.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse2.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse3.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_parse4.f90: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_reduction.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_workshare1.f: New test.
|
|
|
|
|
* testsuite/libgomp.fortran/omp_workshare2.f: New test.
|
|
|
|
|
|
|
|
|
|
2005-08-30 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* loop.c (GOMP_loop_static_start): Provide fallback wrapper
|
|
|
|
|
function for when aliases are not usable.
|
|
|
|
|
(GOMP_loop_dynamic_start, GOMP_loop_guided_start,
|
|
|
|
|
GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
|
|
|
|
|
GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
|
|
|
|
|
GOMP_loop_dynamic_next, GOMP_loop_guided_next,
|
|
|
|
|
GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
|
|
|
|
|
GOMP_loop_ordered_guided_next): Likewise.
|
|
|
|
|
* ordered.c (GOMP_ordered_start): Likewise.
|
|
|
|
|
|
|
|
|
|
2005-08-01 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/dg.exp: Use -O2 for now.
|
|
|
|
|
* testsuite/libgomp.dg/omp_hello.c: Fix return code
|
|
|
|
|
* testsuite/libgomp.dg/omp_matvec.c: Likewise.
|
|
|
|
|
* testsuite/libgomp.dg/omp_orphan.c: Likewise
|
|
|
|
|
* testsuite/libgomp.dg/omp_reduction.c: Likewise
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare1.c: Likewise
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare2.c: Likewise
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare3.c: Likewise
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare4.c: Likewise
|
|
|
|
|
|
|
|
|
|
2005-07-07 Eric Christopher <echristo@redhat.com>
|
|
|
|
|
Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
|
|
|
|
|
* testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
|
|
|
|
|
up code.
|
|
|
|
|
* testsuite/libgomp.dg/omp_matvec.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.dg/omp_orphan.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.dg/omp_reduction.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare1.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare2.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare3.c: Ditto.
|
|
|
|
|
* testsuite/libgomp.dg/omp_workshare4.c: Ditto.
|
|
|
|
|
|
|
|
|
|
2005-06-13 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* TOPLEVEL.patch: Remove.
|
|
|
|
|
|
|
|
|
|
2005-05-16 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Test for clock_gettime.
|
|
|
|
|
* config.h.in, configure: Rebuild.
|
|
|
|
|
* config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
|
|
|
|
|
(omp_get_wtime): Use clock_gettime if available.
|
|
|
|
|
(omp_get_wtick): Use clock_getres if available.
|
|
|
|
|
|
|
|
|
|
2005-05-11 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/ia64/futex.h: New file.
|
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
|
|
|
|
|
|
* team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
|
|
|
|
|
|
|
|
|
|
2005-05-07 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/powerpc/futex.h: New file.
|
|
|
|
|
* configure.tgt: Use it.
|
|
|
|
|
|
|
|
|
|
* config/linux/i486/futex.h: Merge ...
|
|
|
|
|
* config/linux/x86_64/futex.h: ... into ...
|
|
|
|
|
* config/linux/x86/futex.h: ... here.
|
|
|
|
|
* configure.tgt: Update to match.
|
|
|
|
|
|
|
|
|
|
2005-05-06 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/alpha/futex.h: Conditionally define SYS_futex.
|
|
|
|
|
* config/linux/i486/futex.h: Likewise.
|
|
|
|
|
* config/linux/x86_64/futex.h: Likewise.
|
|
|
|
|
|
|
|
|
|
* config/linux/lock.c: New file.
|
|
|
|
|
* config/linux/omp-lock.h: New file.
|
|
|
|
|
|
|
|
|
|
* critical.c, env.h: Don't include omp.h
|
|
|
|
|
* config/posix/lock.c: Include libgomp.h instead of omp.h.
|
|
|
|
|
* config/posix/time.c: Likewise.
|
|
|
|
|
* config/posix/omp-lock.h: New file.
|
|
|
|
|
* libgomp.h: Include omp-lock.h and omp.h.
|
|
|
|
|
* Makefile.am (nodist_include_HEADERS): New.
|
|
|
|
|
(omp.h): New rule.
|
|
|
|
|
* configure.ac (PERL): New.
|
|
|
|
|
* mkomp_h.pl: New file.
|
|
|
|
|
* omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
|
|
|
|
|
with templates.
|
|
|
|
|
* Makefile.in, configure, testsuite/Makefile.in: Rebuild.
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
|
|
|
|
|
build directory. Re-add -march=i486 hack.
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
|
|
|
|
|
(libgomp_link_flags): Remove.
|
|
|
|
|
(libgomp_initialized): Remove.
|
|
|
|
|
(libgomp_init): Don't protect from reinitialization. Copy code
|
|
|
|
|
from libstdc++ for getting the multilib set correctly.
|
|
|
|
|
|
|
|
|
|
2005-05-05 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/linux/alpha/futex.h: New file.
|
|
|
|
|
* configure.tgt (alpha*-*-linux*): Use it.
|
|
|
|
|
|
|
|
|
|
* config/posix/mutex.c: New file.
|
|
|
|
|
* config/posix/sem.c: Use libgomp.h.
|
|
|
|
|
|
|
|
|
|
* configure.tgt (x86_64-linux): Also test CC for -m32.
|
|
|
|
|
* config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
|
|
|
|
|
|
2006-07-05 19:32:41 +02:00
|
|
|
|
* testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
|
[multiple changes]
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* libgomp: New directory.
* Makefile.def: Add target_module libgomp.
* Makefile.in: Regenerate.
* configure.in (target_libraries): Add target-libgomp.
* configure: Regenerate.
contrib/
2006-01-18 Richard Henderson <rth@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* gcc_update (files_and_dependencies): Add libgomp files.
gcc/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* omp-low.c: New file.
* c-omp.c: New file.
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* doc/invoke.texi: Document -fopenmp.
* tree-dump.h (debug_function): Declare.
* hooks.c (hook_bool_tree_bool_false): New function.
(hook_tree_tree_null): Remove.
(hook_tree_tree_tree_null): New.
* hooks.h: Update to match.
* tree-pretty-print.c (debug_tree_chain): New.
(print_generic_expr): Handle TDF_CHAIN.
(dump_generic_node): Handle BLOCK.
Do not abort with incomplete SWITCH_EXPRs.
Do not dump body of an OpenMP directive if TDF_SLIM is given.
<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
print space after directive name.
<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
Handle OMP_MASTER and OMP_ORDERED.
Handle printing of OMP_BODY just in one place, goto
dump_omp_body in the rest of OMP_* nodes that have
OMP_BODY.
Don't handle clause nodes here. Update omp statements to
use dump_omp_clauses.
Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
Adjust output for GOMP_PARALLEL.
(dump_omp_clauses): New.
(print_declaration): Dump DECL_VALUE_EXPR.
(op_symbol_1): Split out of op_symbol.
(dumping_stmts): Remove. Update all users.
* cgraph.c (cgraph_analyze_queue): New.
(cgraph_add_new_function): New.
* cgraph.h (cgraph_analyze_queue): Declare.
(cgraph_add_new_function): Declare.
(cgraph_lower_function): Remove.
* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
and TYPE_P nodes in its default clause.
(empty_body_p): New.
(tree_range_check_failed): New.
(build5_stat): New.
* tree.h (OMP_CLAUSE_REDUCTION_INIT,
OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_REDUCTION_PLACEHOLDER,
OMP_CLAUSE_PRIVATE_DEBUG,
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
(TREE_RANGE_CHECK): New.
(empty_body_p): Declare.
(enum omp_clause_default_kind): New.
(build_string_literal): Declare.
(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
(build5_stat, build5): Declare.
* tree-pass.h (TDF_CHAIN): Define.
* tree-pass.h (PROP_gimple_lomp): Define.
(pass_lower_omp): Declare.
* diagnostic.h (debug_tree_chain): Declare.
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
mode_for_size.
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
* builtins.c (build_string_literal): Make extern.
* gcc.c (include_spec_function): New.
(static_spec_functions): Add it.
(main): Move load of libgomp.spec ...
(LINK_COMMAND_SPEC): ... here.
(link_gomp_spec): New.
(static_specs): Include it.
(LINK_COMMAND_SPEC): Add link_gomp.
(GOMP_SELF_SPECS): New.
(driver_self_specs): Include it.
(switch_matches): Don't mark inline.
(main): Load libgomp.spec.
* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
* tree-gimple.h (enum omp_parallel): Declare.
(determine_parallel_type): Declare.
(omp_firstprivatize_variable): Declare.
(omp_reduction_init): Declare.
(diagnose_omp_structured_block_errors): Declare.
(struct walk_stmt_info): Add want_return_expr.
(struct walk_stmt_info): Add want_bind_expr, want_locations.
(find_omp_clause): Declare.
(insert_field_into_struct): Declare.
(struct walk_stmt_info): Move from tree-nested.c
(walk_stmts): Declare.
* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
to 200505.
* cgraphunit.c (cgraph_lower_function): Make static.
(cgraph_finalize_pending_functions): New.
(cgraph_finalize_function): Call it.
(cgraph_finalize_compilation_unit): Likewise.
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
(BT_FN_UINT_UINT): New.
(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
DEF_FUNCTION_TYPE_VAR_4): Document.
(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
* builtins.def: Update DEF_BUILTIN comment to include COND argument.
Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
into separate files.
(DEF_GOMP_BUILTIN): New.
(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
* sync-builtins.def: New file, moved from builtins.def.
* omp-builtins.def: New file, moved from builtins.def.
* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
* gimple-low.c (lower_function_body): Clear data.
(lower_stmt): Do not handle COMPOUND_EXPR.
Remove call to print_node_brief.
* c-tree.h (c_finish_omp_clauses): New prototype.
(C_DECL_THREADPRIVATE_P): Define.
(lookup_name_no_remap, c_omp_remap_private): Remove
(c_begin_omp_parallel, c_finish_omp_parallel): Update.
(check_for_loop_decls): Update decl.
(lookup_name_no_remap, c_omp_remap_private): Declare.
(build_indirect_ref, build_modify_expr, pushdecl,
pushdecl_top_level): Move to c-common.h.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
before the switch, but just in the 2 places that need it.
* c-decl.c (diagnose_mismatched_decls): Do not check for
mismatched thread-local attributes when OLDDECL is marked
threadprivate and NEWDECL has no thread-local attributes.
(merge_decls): Merge C_DECL_THREADPRIVATE_P.
(c_gimple_diagnostics_recursively): Rename from
c_warn_unused_result_recursively. Invoke
diagnose_omp_structured_block_errors.
(check_for_loop_decls): Return a singular decl found.
* langhooks.c (lhd_omp_predetermined_sharing): Return
OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
(lhd_omp_firstprivatize_type_sizes): New.
(lhd_omp_assignment): New.
(lhd_omp_predetermined_sharing): New.
* langhooks.h (struct gimplify_omp_ctx): Forward declare.
(struct lang_hooks_for_types): Add
omp_firstprivatize_type_sizes, omp_privatize_by_reference,
omp_predetermined_sharing, omp_disregard_value_expr,
omp_private_debug_clause, omp_clause_default_ctor,
omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
(c_finish_omp_clauses): New.
(c_finish_bc_stmt): Diagnose break within omp for.
(c_begin_omp_parallel, c_finish_omp_parallel): New.
(build_unary_op): Return error_mark after reporting
a readonly_error.
(build_modify_expr): Likewise.
* gimplify.c: Include optabs.h and pointer-set.h.
(enum gimplify_omp_var_data): Declare.
(struct gimplify_omp_ctx): Declare.
(struct gimplify_ctx): Add fields prev_context, combined_pre_p
and combined_ctxp.
(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
(push_gimplify_context, pop_gimplify_context): Allow nesting.
(splay_tree_compare_decl_uid): New.
(new_omp_context): New.
(delete_omp_context): New.
(gimple_add_tmp_var): Call omp_add_variable.
(gimplify_bind_expr): Likewise.
(gimplify_var_or_parm_decl): If omp_notice_variable returned
true, disregard DECL_VALUE_EXPR on the decl if any.
(gimplify_expr_in_ctx): New.
(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
omp_add_variable, omp_notice_variable, omp_is_private
gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
gimplify_adjust_omp_clauses, gimplify_omp_parallel
gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
gimplify_omp_atomic_fetch_op, goa_stabilize_expr
gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
gimplify_omp_atomic): New.
(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL and OMP_ATOMIC.
(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
* c-pragma.h (enum pragma_kind): Add
PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
PRAGMA_OMP_THREADPRIVATE.
* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
* tree-ssa-dce.c (find_control_dependence): Do not assume that
ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
OpenMP directives.
(struct nesting_info): Add field_map,
suppress_expansion, debug_var_chain.
(create_nesting_tree): Initialize them.
(lookup_field_for_decl): Use field_map.
(get_nonlocal_debug_decl, get_local_debug_decl): New.
(convert_local_omp_clauses): New.
(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
(walk_body): Split out of walk_function.
(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
(convert_nonlocal_reference): Handle omp statements.
(convert_local_reference): Likewise.
(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
(unnest_nesting_tree): New.
(lower_nested_functions): Call it.
(insert_field_into_struct): Make extern.
(struct walk_stmt_info): Move to tree-gimple.h.
(walk_stmts): Make extern.
* omp-builtins.def: New file.
* tree-iterator.c (expr_only): Clarify comment.
* c-common.h (pushdecl_top_level, pushdecl,
build_modify_expr, build_indirect_ref,
c_finish_omp_master, c_finish_omp_critical,
c_finish_omp_ordered, c_finish_omp_barrier,
c_finish_omp_atomic, c_finish_omp_flush,
c_finish_omp_for, c_split_parallel_clauses,
omp_clause_default_kind, c_omp_sharing_predetermined,
c_omp_remap_decl): Declare.
* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
(OBJS-common): Add omp-low.o.
(c-omp.o, omp-low.o): Add.
(gimplify.o): Add dependency on $(OPTABS_H).
(GTFILES): Add omp-low.c.
(gt-stringpool.h): Add.
* tree-cfg.c (set_bb_for_stmt): Do not update the
block-to-labels map if we are currently expanding to RTL.
(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
checks.
Handle IDENTIFIER_NODE.
(tree_verify_flow_info): Do not ICE when emitting error
messages about invalid labels.
(dump_function_to_file): Reset CFUN before emitting the body
of the function.
(debug_function): New.
* passes.c (init_optimization_passes): Schedule
pass_lower_omp.
* langhooks-def.h (lhd_omp_predetermined_sharing,
lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
Declare.
(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
LANG_HOOKS_OMP_PREDETERMINED_SHARING,
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
(LANG_HOOK_DECLS): Use them.
2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* c-parser.c (pragma_omp_clause): Define.
(c_parser_declaration_or_fndef): Document OpenMP syntax.
(c_parser_compound_statement): Likewise.
(c_parser_statement): Likewise.
(c_parser_pragma): Handle omp pragmas.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
(c_parser_omp_clause_name, check_no_duplicate_clause,
c_parser_omp_variable_list,
c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
c_parser_omp_clause_copyprivate,
c_parser_omp_clause_default,
c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
c_parser_omp_clause_lastprivate,
c_parser_omp_clause_nowait,
c_parser_omp_clause_num_threads,
c_parser_omp_clause_ordered, c_parser_omp_clause_private,
c_parser_omp_clause_reduction,
c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
c_parser_omp_all_clauses, c_parser_omp_structured_block,
c_parser_omp_atomic, c_parser_omp_barrier,
c_parser_omp_critical, c_parser_omp_flush,
c_parser_omp_for_loop, c_parser_omp_for,
c_parser_omp_master, c_parser_omp_ordered,
c_parser_omp_sections_scope, c_parser_omp_sections,
c_parser_omp_parallel, c_parser_omp_single,
c_parser_omp_construct, c_parser_omp_threadprivate): New.
* c-pragma.c (init_pragma): Do omp pragma registration here.
* c.opt (fopenmp): New flag.
2006-01-18 Eric Christopher <echristo@apple.com>
* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
* config/darwin.h (GOMP_SELF_SPECS): Define.
testsuite/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
Uros Bizjak <uros@kss-loka.si>
* testsuite/gcc.dg/gomp: New directory.
From-SVN: r109902
2006-01-18 20:21:25 +01:00
|
|
|
|
after $gccpath.
|
|
|
|
|
|
|
|
|
|
* Makefile.am (SUBDIRS): New.
|
|
|
|
|
(libgomp_la_LDFLAGS): Add -lpthread.
|
|
|
|
|
* configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
|
|
|
|
|
* Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
|
|
|
|
|
|
|
|
|
|
* libgomp_g.h: New file.
|
|
|
|
|
* libgomp.h: Split out all public declarations to libgomp_g.h.
|
|
|
|
|
Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
|
|
|
|
|
* config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
|
|
|
|
|
* config/linux/sem.h: Likewise.
|
|
|
|
|
* config/posix/sem.h: Likewise.
|
|
|
|
|
|
|
|
|
|
* Makefile.am (AM_LDFLAGS): New.
|
|
|
|
|
(libgomp_version_script): Split out from ...
|
|
|
|
|
(libgomp_la_LDFLAGS): ... here.
|
|
|
|
|
(libgomp_version_info): New.
|
|
|
|
|
* acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
|
|
|
|
|
(LIBGOMP_ENABLE): New.
|
|
|
|
|
(LIBGOMP_CHECK_LINKER_FEATURES): New.
|
|
|
|
|
(LIBGOMP_ENABLE_SYMVERS): New.
|
|
|
|
|
* configure.ac (AC_INIT): Version 1.0.
|
|
|
|
|
(enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
|
|
|
|
|
(enable-linux-futex): Likewise. Rename from enable-futex.
|
|
|
|
|
(libtool_VERSION): New.
|
|
|
|
|
(LIBGOMP_ENABLE_SYMVERS): Use it.
|
|
|
|
|
* configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
|
|
|
|
|
* Makefile.in, aclocal.m4, configure: Rebuild.
|
|
|
|
|
|
|
|
|
|
* config/linux/mutex.c: Include libgomp.h instead of mutex.h.
|
|
|
|
|
(gomp_mutex_unlock_slow): Fix typo.
|
|
|
|
|
* config/linux/sem.c: Similarly.
|
|
|
|
|
(gomp_sem_post_slow): Fix typo.
|
|
|
|
|
* config/linux/sem.h (gomp_sem_post_slow): Fix typo.
|
|
|
|
|
* config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
|
|
|
|
|
[__PIC__] (sys_futex0): Don't use tmp output in asm.
|
|
|
|
|
|
|
|
|
|
* Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
|
|
|
|
|
(libgomp_la_LDFLAGS): Add top_srcdir to path.
|
|
|
|
|
* acinclude.m4: Copy libtool.m4 stuff from libgfortran.
|
|
|
|
|
* configure.ac: Check for getloadavg. Substitute XCFLAGS and
|
|
|
|
|
XLDFLAGS. Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
|
|
|
|
|
* configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
|
|
|
|
|
LDFLAGS. Pull enable_futex check to top-level.
|
|
|
|
|
* libgomp.h: Fix sem.h and mutex.h includes. Define ATTRIBUTE_HIDDEN.
|
|
|
|
|
* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
|
|
|
|
|
|
|
|
|
|
First attempt at real configury.
|
|
|
|
|
* Makefile, config.h: Remove file.
|
|
|
|
|
* Makefile.am, Makefile.in: New file.
|
|
|
|
|
* acinclude.m4 aclocal.m4: New file.
|
|
|
|
|
* configure.ac, configure.tgt, configure: New file.
|
|
|
|
|
|
|
|
|
|
* config/posix/lock.c: Rename from sys-lock.c.
|
|
|
|
|
* config/posix/mutex.h: Rename from sys-mutex.h.
|
|
|
|
|
* config/posix/sem.c: Rename from sys-sem.c.
|
|
|
|
|
* config/posix/sem.h: Rename from sys-sem.h.
|
|
|
|
|
* config/posix/proc.c: Rename from sys-proc.c.
|
|
|
|
|
* config/posix/time.c: Rename from sys-proc.c.
|
|
|
|
|
|
|
|
|
|
* config/linux/mutex.c: New file.
|
|
|
|
|
* config/linux/mutex.h: New file.
|
|
|
|
|
* config/linux/sem.c: New file.
|
|
|
|
|
* config/linux/sem.h: New file.
|
|
|
|
|
* config/linux/i486/futex.h: New file.
|
|
|
|
|
* config/linux/x86_64/futex.h: New file.
|
|
|
|
|
|
|
|
|
|
2005-05-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
|
|
|
|
|
* libgomp.h: Declare them.
|
|
|
|
|
* loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
|
|
|
|
|
gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
|
|
|
|
|
|
|
|
|
|
2005-05-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp-1 code drop
|
|
|
|
|
|
|
|
|
|
2005-05-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_static_next): Return tri-state on 0.
|
|
|
|
|
* ordered.c (gomp_ordered_static_next): Remove not_last argument.
|
|
|
|
|
* libgomp.h (struct gomp_team_state): Make static_trip unsigned.
|
|
|
|
|
(gomp_iter_static_next): Update.
|
|
|
|
|
(gomp_ordered_static_next): Update.
|
|
|
|
|
* loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
|
|
|
|
|
(gomp_loop_ordered_static_start): Likewise. Exit early for a
|
|
|
|
|
totally empty range.
|
|
|
|
|
(gomp_loop_ordered_static_next): Refine test for calling
|
|
|
|
|
gomp_ordered_static_next.
|
|
|
|
|
* testsuite/ordered-1.c: Add case for more threads than iterations.
|
|
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_runtime_next_locked): Remove.
|
|
|
|
|
* loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
|
2006-07-05 19:32:41 +02:00
|
|
|
|
gomp_loop_guided_start, gomp_loop_ordered_static_start,
|
[multiple changes]
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* libgomp: New directory.
* Makefile.def: Add target_module libgomp.
* Makefile.in: Regenerate.
* configure.in (target_libraries): Add target-libgomp.
* configure: Regenerate.
contrib/
2006-01-18 Richard Henderson <rth@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* gcc_update (files_and_dependencies): Add libgomp files.
gcc/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* omp-low.c: New file.
* c-omp.c: New file.
2006-01-18 Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* doc/invoke.texi: Document -fopenmp.
* tree-dump.h (debug_function): Declare.
* hooks.c (hook_bool_tree_bool_false): New function.
(hook_tree_tree_null): Remove.
(hook_tree_tree_tree_null): New.
* hooks.h: Update to match.
* tree-pretty-print.c (debug_tree_chain): New.
(print_generic_expr): Handle TDF_CHAIN.
(dump_generic_node): Handle BLOCK.
Do not abort with incomplete SWITCH_EXPRs.
Do not dump body of an OpenMP directive if TDF_SLIM is given.
<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
print space after directive name.
<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
Handle OMP_MASTER and OMP_ORDERED.
Handle printing of OMP_BODY just in one place, goto
dump_omp_body in the rest of OMP_* nodes that have
OMP_BODY.
Don't handle clause nodes here. Update omp statements to
use dump_omp_clauses.
Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
Adjust output for GOMP_PARALLEL.
(dump_omp_clauses): New.
(print_declaration): Dump DECL_VALUE_EXPR.
(op_symbol_1): Split out of op_symbol.
(dumping_stmts): Remove. Update all users.
* cgraph.c (cgraph_analyze_queue): New.
(cgraph_add_new_function): New.
* cgraph.h (cgraph_analyze_queue): Declare.
(cgraph_add_new_function): Declare.
(cgraph_lower_function): Remove.
* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
and TYPE_P nodes in its default clause.
(empty_body_p): New.
(tree_range_check_failed): New.
(build5_stat): New.
* tree.h (OMP_CLAUSE_REDUCTION_INIT,
OMP_CLAUSE_REDUCTION_MERGE,
OMP_CLAUSE_REDUCTION_PLACEHOLDER,
OMP_CLAUSE_PRIVATE_DEBUG,
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
(TREE_RANGE_CHECK): New.
(empty_body_p): Declare.
(enum omp_clause_default_kind): New.
(build_string_literal): Declare.
(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
(build5_stat, build5): Declare.
* tree-pass.h (TDF_CHAIN): Define.
* tree-pass.h (PROP_gimple_lomp): Define.
(pass_lower_omp): Declare.
* diagnostic.h (debug_tree_chain): Declare.
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
mode_for_size.
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
* builtins.c (build_string_literal): Make extern.
* gcc.c (include_spec_function): New.
(static_spec_functions): Add it.
(main): Move load of libgomp.spec ...
(LINK_COMMAND_SPEC): ... here.
(link_gomp_spec): New.
(static_specs): Include it.
(LINK_COMMAND_SPEC): Add link_gomp.
(GOMP_SELF_SPECS): New.
(driver_self_specs): Include it.
(switch_matches): Don't mark inline.
(main): Load libgomp.spec.
* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
* tree-gimple.h (enum omp_parallel): Declare.
(determine_parallel_type): Declare.
(omp_firstprivatize_variable): Declare.
(omp_reduction_init): Declare.
(diagnose_omp_structured_block_errors): Declare.
(struct walk_stmt_info): Add want_return_expr.
(struct walk_stmt_info): Add want_bind_expr, want_locations.
(find_omp_clause): Declare.
(insert_field_into_struct): Declare.
(struct walk_stmt_info): Move from tree-nested.c
(walk_stmts): Declare.
* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
to 200505.
* cgraphunit.c (cgraph_lower_function): Make static.
(cgraph_finalize_pending_functions): New.
(cgraph_finalize_function): Call it.
(cgraph_finalize_compilation_unit): Likewise.
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
(BT_FN_UINT_UINT): New.
(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
DEF_FUNCTION_TYPE_VAR_4): Document.
(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
BT_FN_VOID_OMPFN_PTR_UINT_UINT,
BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
* builtins.def: Update DEF_BUILTIN comment to include COND argument.
Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
into separate files.
(DEF_GOMP_BUILTIN): New.
(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
* sync-builtins.def: New file, moved from builtins.def.
* omp-builtins.def: New file, moved from builtins.def.
* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
* gimple-low.c (lower_function_body): Clear data.
(lower_stmt): Do not handle COMPOUND_EXPR.
Remove call to print_node_brief.
* c-tree.h (c_finish_omp_clauses): New prototype.
(C_DECL_THREADPRIVATE_P): Define.
(lookup_name_no_remap, c_omp_remap_private): Remove
(c_begin_omp_parallel, c_finish_omp_parallel): Update.
(check_for_loop_decls): Update decl.
(lookup_name_no_remap, c_omp_remap_private): Declare.
(build_indirect_ref, build_modify_expr, pushdecl,
pushdecl_top_level): Move to c-common.h.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
before the switch, but just in the 2 places that need it.
* c-decl.c (diagnose_mismatched_decls): Do not check for
mismatched thread-local attributes when OLDDECL is marked
threadprivate and NEWDECL has no thread-local attributes.
(merge_decls): Merge C_DECL_THREADPRIVATE_P.
(c_gimple_diagnostics_recursively): Rename from
c_warn_unused_result_recursively. Invoke
diagnose_omp_structured_block_errors.
(check_for_loop_decls): Return a singular decl found.
* langhooks.c (lhd_omp_predetermined_sharing): Return
OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
(lhd_omp_firstprivatize_type_sizes): New.
(lhd_omp_assignment): New.
(lhd_omp_predetermined_sharing): New.
* langhooks.h (struct gimplify_omp_ctx): Forward declare.
(struct lang_hooks_for_types): Add
omp_firstprivatize_type_sizes, omp_privatize_by_reference,
omp_predetermined_sharing, omp_disregard_value_expr,
omp_private_debug_clause, omp_clause_default_ctor,
omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
(c_finish_omp_clauses): New.
(c_finish_bc_stmt): Diagnose break within omp for.
(c_begin_omp_parallel, c_finish_omp_parallel): New.
(build_unary_op): Return error_mark after reporting
a readonly_error.
(build_modify_expr): Likewise.
* gimplify.c: Include optabs.h and pointer-set.h.
(enum gimplify_omp_var_data): Declare.
(struct gimplify_omp_ctx): Declare.
(struct gimplify_ctx): Add fields prev_context, combined_pre_p
and combined_ctxp.
(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
(push_gimplify_context, pop_gimplify_context): Allow nesting.
(splay_tree_compare_decl_uid): New.
(new_omp_context): New.
(delete_omp_context): New.
(gimple_add_tmp_var): Call omp_add_variable.
(gimplify_bind_expr): Likewise.
(gimplify_var_or_parm_decl): If omp_notice_variable returned
true, disregard DECL_VALUE_EXPR on the decl if any.
(gimplify_expr_in_ctx): New.
(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
omp_add_variable, omp_notice_variable, omp_is_private
gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
gimplify_adjust_omp_clauses, gimplify_omp_parallel
gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
gimplify_omp_atomic_fetch_op, goa_stabilize_expr
gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
gimplify_omp_atomic): New.
(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL and OMP_ATOMIC.
(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
* c-pragma.h (enum pragma_kind): Add
PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
PRAGMA_OMP_THREADPRIVATE.
* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
* tree-ssa-dce.c (find_control_dependence): Do not assume that
ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
OpenMP directives.
(struct nesting_info): Add field_map,
suppress_expansion, debug_var_chain.
(create_nesting_tree): Initialize them.
(lookup_field_for_decl): Use field_map.
(get_nonlocal_debug_decl, get_local_debug_decl): New.
(convert_local_omp_clauses): New.
(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
(walk_body): Split out of walk_function.
(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
(convert_nonlocal_reference): Handle omp statements.
(convert_local_reference): Likewise.
(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
(unnest_nesting_tree): New.
(lower_nested_functions): Call it.
(insert_field_into_struct): Make extern.
(struct walk_stmt_info): Move to tree-gimple.h.
(walk_stmts): Make extern.
* omp-builtins.def: New file.
* tree-iterator.c (expr_only): Clarify comment.
* c-common.h (pushdecl_top_level, pushdecl,
build_modify_expr, build_indirect_ref,
c_finish_omp_master, c_finish_omp_critical,
c_finish_omp_ordered, c_finish_omp_barrier,
c_finish_omp_atomic, c_finish_omp_flush,
c_finish_omp_for, c_split_parallel_clauses,
omp_clause_default_kind, c_omp_sharing_predetermined,
c_omp_remap_decl): Declare.
* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
(OBJS-common): Add omp-low.o.
(c-omp.o, omp-low.o): Add.
(gimplify.o): Add dependency on $(OPTABS_H).
(GTFILES): Add omp-low.c.
(gt-stringpool.h): Add.
* tree-cfg.c (set_bb_for_stmt): Do not update the
block-to-labels map if we are currently expanding to RTL.
(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
checks.
Handle IDENTIFIER_NODE.
(tree_verify_flow_info): Do not ICE when emitting error
messages about invalid labels.
(dump_function_to_file): Reset CFUN before emitting the body
of the function.
(debug_function): New.
* passes.c (init_optimization_passes): Schedule
pass_lower_omp.
* langhooks-def.h (lhd_omp_predetermined_sharing,
lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
Declare.
(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
LANG_HOOKS_OMP_PREDETERMINED_SHARING,
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
(LANG_HOOK_DECLS): Use them.
2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
Richard Henderson <rth@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
* c-parser.c (pragma_omp_clause): Define.
(c_parser_declaration_or_fndef): Document OpenMP syntax.
(c_parser_compound_statement): Likewise.
(c_parser_statement): Likewise.
(c_parser_pragma): Handle omp pragmas.
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
(c_parser_omp_clause_name, check_no_duplicate_clause,
c_parser_omp_variable_list,
c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
c_parser_omp_clause_copyprivate,
c_parser_omp_clause_default,
c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
c_parser_omp_clause_lastprivate,
c_parser_omp_clause_nowait,
c_parser_omp_clause_num_threads,
c_parser_omp_clause_ordered, c_parser_omp_clause_private,
c_parser_omp_clause_reduction,
c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
c_parser_omp_all_clauses, c_parser_omp_structured_block,
c_parser_omp_atomic, c_parser_omp_barrier,
c_parser_omp_critical, c_parser_omp_flush,
c_parser_omp_for_loop, c_parser_omp_for,
c_parser_omp_master, c_parser_omp_ordered,
c_parser_omp_sections_scope, c_parser_omp_sections,
c_parser_omp_parallel, c_parser_omp_single,
c_parser_omp_construct, c_parser_omp_threadprivate): New.
* c-pragma.c (init_pragma): Do omp pragma registration here.
* c.opt (fopenmp): New flag.
2006-01-18 Eric Christopher <echristo@apple.com>
* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
* config/darwin.h (GOMP_SELF_SPECS): Define.
testsuite/
2006-01-18 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Diego Novillo <dnovillo@redhat.com>
Uros Bizjak <uros@kss-loka.si>
* testsuite/gcc.dg/gomp: New directory.
From-SVN: r109902
2006-01-18 20:21:25 +01:00
|
|
|
|
gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
|
|
|
|
|
gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
|
|
|
|
|
gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
|
|
|
|
|
gomp_loop_ordered_guided_next): Downcase name, make static, add
|
|
|
|
|
an external alias with the old name.
|
|
|
|
|
(GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
|
|
|
|
|
GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
|
|
|
|
|
switch and call one of the above static functions.
|
|
|
|
|
* libgomp.h: Update.
|
|
|
|
|
|
|
|
|
|
* work.c (gomp_work_share_start): Lock the mutex for !first too.
|
|
|
|
|
* loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
|
|
|
|
|
GOMP_loop_guided_start, GOMP_loop_runtime_start,
|
|
|
|
|
GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
|
|
|
|
|
GOMP_loop_ordered_guided_start): Update to match.
|
|
|
|
|
* sections.c (GOMP_sections_start): Likewise.
|
|
|
|
|
* single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
|
|
|
|
|
|
|
|
|
|
* ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
|
|
|
|
|
gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
|
|
|
|
|
Use bounds check instead of modulus.
|
|
|
|
|
(gomp_ordered_sync): Split out of GOMP_ordered_start.
|
|
|
|
|
(gomp_ordered_last): Don't sync with ordered_owner here.
|
|
|
|
|
(gomp_ordered_next): Likewise.
|
|
|
|
|
(gomp_ordered_static_loop_next): Likewise.
|
|
|
|
|
* loop.c, libgomp.h: Update to match.
|
|
|
|
|
|
|
|
|
|
* libgomp.h (GOMP_barrier): Declare.
|
|
|
|
|
|
|
|
|
|
* testsuite/barrier-1.c: New file.
|
|
|
|
|
* testsuite/critical-1.c: New file.
|
|
|
|
|
* testsuite/ordered-2.c: New file.
|
|
|
|
|
* testsuite/ordered-1.c: New file.
|
|
|
|
|
* testsuite/sections-1.c: New file.
|
|
|
|
|
* testsuite/single-1.c: New file.
|
|
|
|
|
* testsuite/Makefile (TESTS): Add them.
|
|
|
|
|
|
|
|
|
|
2005-05-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* libgomp.h (struct gomp_work_share): Add ordered_owner.
|
|
|
|
|
* loop.c (GOMP_loop_static_start): If not the startup thread,
|
|
|
|
|
acquire the mutex to wait for initialization complete.
|
|
|
|
|
(GOMP_loop_ordered_static_start): Likewise.
|
|
|
|
|
(GOMP_loop_ordered_runtime_start): Likewise.
|
|
|
|
|
(GOMP_loop_ordered_static_first): Remove.
|
|
|
|
|
(GOMP_loop_ordered_dynamic_first): Remove.
|
|
|
|
|
(GOMP_loop_ordered_guided_first): Remove.
|
|
|
|
|
(GOMP_loop_ordered_runtime_first): Remove.
|
|
|
|
|
* ordered.c (gomp_ordered_loop_first): Post to own release when
|
|
|
|
|
we're the first thread.
|
|
|
|
|
(gomp_ordered_loop_last): Wait on release if not owner.
|
|
|
|
|
(gomp_ordered_loop_next): Likewise.
|
|
|
|
|
(gomp_ordered_static_loop_init): New.
|
|
|
|
|
(gomp_ordered_static_loop_next): Use ordered_owner.
|
|
|
|
|
(GOMP_ordered_start): Likewise.
|
|
|
|
|
* work.c (gomp_new_work_share): Initialize ordered_owner.
|
|
|
|
|
|
|
|
|
|
2005-05-03 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile (OPT): New.
|
|
|
|
|
(CFLAGS): Use it.
|
|
|
|
|
|
|
|
|
|
* loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
|
|
|
|
|
* sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
|
|
|
|
|
* libgomp.h, libgomp.map, NOTES: Update to match.
|
|
|
|
|
|
|
|
|
|
* team.c (struct gomp_thread_start_data): Remove ts, fn, data.
|
|
|
|
|
Add initialized and thr members.
|
|
|
|
|
(gomp_thread_start): Pause when initially spawned to wait for
|
|
|
|
|
the whole team to be created.
|
|
|
|
|
(gomp_team_start): Release team members at the end.
|
|
|
|
|
|
|
|
|
|
* testsuite/loop-1.c (N): New. Use it instead of hardcoded 100.
|
|
|
|
|
(f_foo_1): Use GOMP_loop_end.
|
|
|
|
|
(f_foo_2): Use GOMP_loop_end_nowait.
|
|
|
|
|
|
|
|
|
|
* testsuite/loop-2.c: New file.
|
|
|
|
|
* testsuite/Makefile (TESTS): Add it.
|
|
|
|
|
|
|
|
|
|
2005-05-03 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* iter.c (gomp_iter_static_next): Fix overflow check typo.
|
|
|
|
|
(gomp_iter_dynamic_next_locked): Fix overflow check thinko.
|
|
|
|
|
* team.c (new_team): Initialize oldest_live_gen to 1 if no
|
|
|
|
|
initial work_share.
|
|
|
|
|
|
|
|
|
|
* testsuite/Makefile: New file.
|
|
|
|
|
* testsuite/loop-1.c: New file.
|
|
|
|
|
|
|
|
|
|
2005-05-03 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
Initial implementation and checkin.
|
2016-01-04 14:03:35 +01:00
|
|
|
|
|
2019-01-01 13:31:55 +01:00
|
|
|
|
Copyright (C) 2005-2019 Free Software Foundation, Inc.
|
2016-01-04 14:03:35 +01:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|