1. 04 Aug, 2014 1 commit
    • task.c (GOMP_taskgroup_end): If taskgroup->num_children is not zero... · 3696163c
      	* 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.
      
      From-SVN: r213592
      Jakub Jelinek committed
  2. 01 Aug, 2014 1 commit
    • libgomp.h (struct gomp_task_depend_entry): Add redundant_out field. · 0494285a
      	* 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.
      
      From-SVN: r213408
      Jakub Jelinek committed
  3. 13 Jul, 2014 1 commit
  4. 06 Jul, 2014 1 commit
    • re PR c/6940 (taking sizeof array parameter should trigger a warning) · 773ec47f
      	PR c/6940
      	* doc/invoke.texi: Document -Wsizeof-array-argument.
      c-family/
      	* c.opt (Wsizeof-array-argument): New option.
      c/
      	* c-decl.c (grokdeclarator): Set C_ARRAY_PARAMETER.
      	* c-tree.h (C_ARRAY_PARAMETER): Define.
      	* c-typeck.c (c_expr_sizeof_expr): Warn when using sizeof on an array
      	function parameter.
      cp/
      	* cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
      	* decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
      	* typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
      	function parameter.
      testsuite/
      	* c-c++-common/Wsizeof-pointer-memaccess1.c: Use
      	-Wno-sizeof-array-argument.
      	* c-c++-common/Wsizeof-pointer-memaccess2.c: Likewise.
      	* g++.dg/warn/Wsizeof-pointer-memaccess-1.C: Likewise.
      	* gcc.dg/Wsizeof-pointer-memaccess1.c: Likewise.
      	* g++.dg/torture/Wsizeof-pointer-memaccess1.C: Likewise.
      	* g++.dg/torture/Wsizeof-pointer-memaccess2.C: Likewise.
      	* gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Likewise.
      	* c-c++-common/sizeof-array-argument.c: New test.
      	* gcc.dg/vla-5.c: Add dg-warnings.
      ../libgomp/	* testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
      
      From-SVN: r212312
      Marek Polacek committed
  5. 04 Jul, 2014 1 commit
    • Normalize interface for all *-dg-runtest. · a03bd005
      	gcc/testsuite/
      	* lib/g++-dg.exp (g++-dg-runtest): Change interface to match
      	dg-runtest's.  Adapt all callers.
      	* lib/gcc-dg.exp (gcc-dg-runtest): Likewise.
      	* lib/gfortran-dg.exp (gfortran-dg-runtest): Likewise.
      	* lib/go-dg.exp (go-dg-runtest): Likewise.
      	* lib/obj-c++-dg.exp (obj-c++-dg-runtest): Likewise.
      	* lib/objc-dg.exp (objc-dg-runtest): Likewise.
      	libffi/
      	* testsuite/lib/libffi.exp (libffi-dg-runtest): Change interface
      	match to dg-runtest's.
      
      From-SVN: r212278
      Thomas Schwinge committed
  6. 03 Jul, 2014 2 commits
  7. 25 Jun, 2014 1 commit
    • langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define. · da6f124d
      	* langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
      	(LANG_HOOKS_DECLS): Add it.
      	* gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
      	has correct type.
      	* tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
      	* langhooks.h (struct lang_hooks_for_decls): Add
      	omp_clause_linear_ctor hook.
      	* omp-low.c (lower_rec_input_clauses): Set max_vf even if
      	OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
      	OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
      	combined simd loop use omp_clause_linear_ctor hook.
      gcc/c/
      	* c-typeck.c (c_finish_omp_clauses): Make sure
      	OMP_CLAUSE_LINEAR_STEP has correct type.
      gcc/cp/
      	* semantics.c (finish_omp_clauses): Make sure
      	OMP_CLAUSE_LINEAR_STEP has correct type.
      gcc/fortran/
      	* trans.h (gfc_omp_clause_linear_ctor): New prototype.
      	* trans-openmp.c (gfc_omp_linear_clause_add_loop,
      	gfc_omp_clause_linear_ctor): New functions.
      	(gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
      	correct type.  Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
      	* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
      libgomp/
      	* testsuite/libgomp.fortran/simd5.f90: New test.
      	* testsuite/libgomp.fortran/simd6.f90: New test.
      	* testsuite/libgomp.fortran/simd7.f90: New test.
      
      From-SVN: r211971
      Jakub Jelinek committed
  8. 24 Jun, 2014 2 commits
    • gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator not mentioned… · 56ad0e38
      gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator not mentioned in clauses use private clause if...
      
      	* gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
      	not mentioned in clauses use private clause if the iterator is
      	declared in #pragma omp for simd, and when adding lastprivate
      	instead, add it to the outer #pragma omp for too.  Diagnose
      	if the variable is private in outer context.  For simd collapse > 1
      	loops, replace all iterators with temporaries.
      	* omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
      	same even in collapse > 1 loops.
      gcc/c/
      	* c-parser.c (c_parser_omp_for_loop): For
      	#pragma omp parallel for simd move lastprivate clause from parallel
      	to for rather than simd.
      gcc/cp/
      	* parser.c (cp_parser_omp_for_loop): For
      	#pragma omp parallel for simd move lastprivate clause from parallel
      	to for rather than simd.
      libgomp/
      	* 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.
      
      From-SVN: r211930
      Jakub Jelinek committed
    • gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP, [...]): Make sure… · b46ebd6c
      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
      Jakub Jelinek committed
  9. 18 Jun, 2014 1 commit
    • gimplify.c (omp_notice_variable): If n is non-NULL and no flags change in… · f014c653
      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
      Jakub Jelinek committed
  10. 10 Jun, 2014 1 commit
    • re PR fortran/60928 (gfortran issue with allocatable components and OpenMP) · 92d28cbb
      	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
      Jakub Jelinek committed
  11. 06 Jun, 2014 1 commit
    • dump-parse-tree.c (show_omp_namelist): Dump reduction id in each list item. · 5f23671d
      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
      Jakub Jelinek committed
  12. 27 May, 2014 1 commit
  13. 21 May, 2014 1 commit
  14. 18 May, 2014 1 commit
  15. 11 May, 2014 1 commit
    • tree.h (OMP_CLAUSE_LINEAR_STMT): Define. · dd2fc525
      	* 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
      Jakub Jelinek committed
  16. 02 May, 2014 1 commit
    • gimplify.c (gimplify_adjust_omp_clauses_1): Handle GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE. · 95782571
      	* gimplify.c (gimplify_adjust_omp_clauses_1): Handle
      	GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
      	(gimplify_adjust_omp_clauses): Simd region is never
      	directly nested in combined parallel.  Instead, for linear
      	with copyin/copyout, if in combined for simd loop, make decl
      	firstprivate/lastprivate on OMP_FOR.
      	* omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
      	expand_omp_for_static_chunk): When setting endvar, also set
      	fd->loop.v to the same value.
      libgomp/
      	* 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.
      
      From-SVN: r210009
      Jakub Jelinek committed
  17. 24 Apr, 2014 2 commits
    • c-parser.c (c_parser_omp_atomic): Allow seq_cst before atomic-clause... · 42056eac
      gcc/c/
      	* c-parser.c (c_parser_omp_atomic): Allow seq_cst before
      	atomic-clause, allow comma in between atomic-clause and
      	seq_cst.
      gcc/cp/
      	* parser.c (cp_parser_omp_atomic): Allow seq_cst before
      	atomic-clause, allow comma in between atomic-clause and
      	seq_cst.
      gcc/testsuite/
      	* c-c++-common/gomp/atomic-16.c: Remove all dg-error directives.
      	Replace load with read and store with write.
      libgomp/
      	* 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.
      
      From-SVN: r209762
      Jakub Jelinek committed
    • tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define. · f7468577
      	* tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
      	* gimplify.c (omp_is_private): Change last argument's type to int.
      	Only diagnose lastprivate if the simd argument is 1, only diagnose
      	linear if the simd argument is 2.
      	(gimplify_omp_for): Adjust omp_is_private callers.  When adding
      	lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
      	GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
      	create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
      	If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
      	increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
      	* omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
      	OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
      	* tree-nested.c (convert_nonlocal_omp_clauses,
      	convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
      
      	* 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.
      
      From-SVN: r209760
      Jakub Jelinek committed
  18. 02 Apr, 2014 1 commit
  19. 25 Mar, 2014 1 commit
    • re PR c++/60331 (ICE with OpenMP #pragma omp declare reduction in template class) · 8bcc90b0
      	PR c++/60331
      	* semantics.c (potential_constant_expression_1): Handle
      	DECL_EXPR.
      
      	* 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.
      
      From-SVN: r208806
      Jakub Jelinek committed
  20. 02 Jan, 2014 3 commits
    • Update copyright years in libgomp/ · 18d73c7f
      From-SVN: r206297
      Richard Sandiford committed
    • arc-common.c, [...]: Use the standard form for the copyright notice. · f9030485
      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
      Richard Sandiford committed
    • gnat_ugn.texi: Bump @copying's copyright year. · 98db73df
      2014-01-02  Tobias Burnus  <burnus@net-b.de>
      
      gcc/ada/
              * gnat_ugn.texi: Bump @copying's copyright year.
      
      gcc/
              * gcc.c (process_command): Update copyright notice dates.
              * gcov-dump.c: Ditto.
              * gcov.c: Ditto.
              * doc/cpp.texi: Bump @copying's copyright year.
              * doc/cppinternals.texi: Ditto.
              * doc/gcc.texi: Ditto.
              * doc/gccint.texi: Ditto.
              * doc/gcov.texi: Ditto.
              * doc/install.texi: Ditto.
              * doc/invoke.texi: Ditto.
      
      gcc/fortran/
              * gfortranspec.c (lang_specific_driver): Update copyright notice
              dates.
              * gfc-internals.texi: Bump @copying's copyright year.
              * gfortran.texi: Ditto.
              * intrinsic.texi: Ditto.
              * invoke.texi: Ditto.
      
      gcc/go/
              * gcc/go/gccgo.texi: Ditto.
      
      gcc/java/
              * jcf-dump.c (version): Update copyright notice dates.
              * gcj.texi: Bump @copying's copyright year.
      
      libgomp/
              * libgomp.texi: Bump @copying's copyright year.
      
      libitm/
              * libitm.texi: Bump @copying's copyright year.
      
      libjava/
              * classpath/gnu/java/rmi/registry/RegistryImpl.java (version):
              * Update
              copyright notice dates.
              * classpath/tools/gnu/classpath/tools/orbd/Main.java (run):
              * Ditto.
              * gnu/gcj/convert/Convert.java (version): Update copyright
              * notice
              dates.
              * gnu/gcj/tools/gcj_dbtool/Main.java (main): Ditto.
      
      libquadmath/
              * libquadmath.texi: Bump @copying's copyright year.
      
      From-SVN: r206286
      Tobias Burnus committed
  21. 17 Dec, 2013 2 commits
  22. 16 Dec, 2013 1 commit
  23. 12 Dec, 2013 1 commit
    • re PR libgomp/59467 (copyprivate in the fortran testsuite) · cab37c89
      	PR libgomp/59467
      	* gimplify.c (omp_check_private): Add copyprivate argument, if it
      	is true, don't check omp_privatize_by_reference.
      	(gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify
      	decl is private in outer context.  Adjust omp_check_private caller.
      
      	* gfortran.dg/gomp/pr59467.f90: New test.
      	* c-c++-common/gomp/pr59467.c: New test.
      
      	* testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
      	!$omp parallel.
      
      From-SVN: r205922
      Jakub Jelinek committed
  24. 07 Nov, 2013 3 commits
    • libgomp: Prepare for testcases without -fopenmp. · 1707a5de
      	libgomp/
      	* 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.
      
      From-SVN: r204519
      Thomas Schwinge committed
    • Add missing include. · 70f05c43
      	libgomp/
      	* libgomp_g.h: Include <stddef.h> for size_t.
      
      From-SVN: r204518
      Thomas Schwinge committed
    • Generally link to libgomp for -ftree-parallelize-loops=*. · de14871c
      	gcc/
      	* config/arc/arc.h (LINK_COMMAND_SPEC): For
      	-ftree-parallelize-loops=*, link to libgomp and its dependencies.
      	* config/ia64/hpux.h (LIB_SPEC): Likewise.
      	* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
      	* config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
      	* gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's
      	dependencies.
      	libgomp/
      	* libgomp.spec.in: Update comment about libgomp's dependencies.
      	* configure.ac: Likewise.
      	* configure: Regenerate.
      
      From-SVN: r204517
      Thomas Schwinge committed
  25. 15 Oct, 2013 1 commit
    • intrinsic.texi (OpenMP Modules): Update to OpenMPv4. · 83fd6c5b
      gcc/fortran/
      2013-10-16  Tobias Burnus  <burnus@net-b.de>
      
              * intrinsic.texi (OpenMP Modules): Update to OpenMPv4.
              Document omp_proc_bind_kind.
      
      libgomp/
      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.
      
      From-SVN: r203635
      Tobias Burnus committed
  26. 14 Oct, 2013 1 commit
  27. 12 Oct, 2013 1 commit
    • re PR libgomp/58691 (OpenMP 4: Surprising results with OMP_PLACES=) · f89163fd
      	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.
      
      From-SVN: r203479
      Jakub Jelinek committed
  28. 11 Oct, 2013 5 commits