Skip to content
Snippets Groups Projects
  1. Oct 06, 2006
  2. Sep 26, 2006
    • jakub's avatar
      PR middle-end/25261 · 76d042ab
      jakub authored
      	PR middle-end/28790
      	* tree-nested.c (struct nesting_info): Added static_chain_added.
      	(convert_call_expr): Set static_chain_added when adding static
      	chain.  Handle OMP_PARALLEL and OMP_SECTION.
      
      	* gcc.dg/gomp/nestedfn-1.c: New test.
      
      	* testsuite/libgomp.c/nestedfn-4.c: New test.
      	* testsuite/libgomp.c/nestedfn-5.c: New test.
      	* testsuite/libgomp.fortran/nestedfn3.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117235 138bc75d-0d04-0410-961f-82ee72b054a4
      76d042ab
    • jakub's avatar
      PR fortran/29097 · a5297f53
      jakub authored
      	* scanner.c (include_line): Handle conditional include.
      
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117234 138bc75d-0d04-0410-961f-82ee72b054a4
      a5297f53
  3. Sep 19, 2006
    • tromey's avatar
      config · e564ddd8
      tromey authored
      	* tls.m4 (GCC_CHECK_TLS): Pass empty argument as "help arg" to
      	GCC_ENABLE.
      libgomp
      	* configure: Rebuilt.
      libstdc++-v3
      	* configure: Rebuilt.
      libmudflap
      	* configure: Rebuilt.
      libjava
      	* configure: Rebuilt.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117049 138bc75d-0d04-0410-961f-82ee72b054a4
      e564ddd8
  4. Sep 13, 2006
    • jsm28's avatar
      libcpp: · 0b67f687
      jsm28 authored
      	PR c/28768
      	PR preprocessor/14634
      	* lex.c (lex_string): Pedwarn for unterminated literals.
      
      libgomp:
      	* configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
      	to AC_DEFINE.
      	* configure: Regenerate.
      
      gcc/testsuite:
      	* gcc.dg/cpp/include2.c, gcc.dg/cpp/macspace1.c,
      	gcc.dg/cpp/macspace2.c, gcc.dg/cpp/multiline.c,
      	gcc.dg/cpp/trad/literals-2.c: Update expected diagnostics.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116915 138bc75d-0d04-0410-961f-82ee72b054a4
      0b67f687
  5. Sep 08, 2006
  6. Aug 26, 2006
  7. Aug 17, 2006
  8. Jul 16, 2006
    • jakub's avatar
      PR fortran/28390 · fadc302e
      jakub authored
      	* trans-openmp.c (gfc_trans_omp_do): Look for LASTPRIVATE in
      	code->exp.omp_clauses rather than in the 3rd function argument.
      
      	* testsuite/libgomp.fortran/pr28390.f: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115504 138bc75d-0d04-0410-961f-82ee72b054a4
      fadc302e
  9. Jul 05, 2006
  10. Jun 21, 2006
  11. Jun 20, 2006
    • jakub's avatar
      PR libgomp/26175 · 2eca990d
      jakub authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114809 138bc75d-0d04-0410-961f-82ee72b054a4
      2eca990d
  12. Jun 14, 2006
  13. Jun 09, 2006
    • rth's avatar
      * env.c (gomp_nthreads_var): Change to unsigned long. · ba893327
      rth authored
              (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.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114525 138bc75d-0d04-0410-961f-82ee72b054a4
      ba893327
    • jakub's avatar
      PR fortran/27916 · d678a061
      jakub authored
      	* trans-openmp.c (gfc_omp_clause_default_ctor): New function.
      	* trans.h (gfc_omp_clause_default_ctor): New prototype.
      	* f95-lang.c (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Define.
      
      	* testsuite/libgomp.fortran/pr27916-1.f90: New test.
      	* testsuite/libgomp.fortran/pr27916-2.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114520 138bc75d-0d04-0410-961f-82ee72b054a4
      d678a061
  14. Jun 06, 2006
  15. May 24, 2006
    • carlos's avatar
      · b03c1c38
      carlos authored
      2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
      
      	* Makefile.am: Add install-html target. Add install-html to .PHONY
      	* Makefile.in: Regenerate.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114032 138bc75d-0d04-0410-961f-82ee72b054a4
      b03c1c38
  16. May 22, 2006
    • danglin's avatar
      PR libgomp/27612 · 3e790634
      danglin authored
      	* 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.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113988 138bc75d-0d04-0410-961f-82ee72b054a4
      3e790634
  17. May 15, 2006
  18. May 03, 2006
    • jakub's avatar
      PR fortran/27395 · 0f9d10d4
      jakub authored
      	* gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
      	rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
      	bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
      
      	* testsuite/libgomp.fortran/pr27395-1.f90: New test.
      	* testsuite/libgomp.fortran/pr27395-2.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113494 138bc75d-0d04-0410-961f-82ee72b054a4
      0f9d10d4
  19. May 02, 2006
    • jakub's avatar
      PR c++/26943 · f49d7bb5
      jakub authored
      	* omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
      	(build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
      	to find if var will be a global variable even in the nested context.
      	(omp_copy_decl): Only check for global variable at the end, it might
      	be overridden in outer contexts.
      	(scan_sharing_clauses): For global variables don't create a field.
      	(lower_rec_input_clauses): Do nothing for global shared variables.
      	Emit a barrier at the end of ILIST if there were any decls in both
      	firstprivate and lastprivate clauses.
      	(lower_send_clauses): Do nothing for global variables except for
      	COPYIN.
      
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113483 138bc75d-0d04-0410-961f-82ee72b054a4
      f49d7bb5
    • jakub's avatar
      PR middle-end/27337 · df2c34fc
      jakub authored
      	* gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
      	around RESULT_DECL for result passed by reference.
      	(gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
      	* omp-low.c (use_pointer_for_field): Don't look at
      	DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
      	(scan_omp_1): Call remap_decl on RESULT_DECLs.
      	(lower_rec_input_clauses): Don't allocate VLA memory for the second
      	time or var for passing by reference for
      	OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
      	TREE_ADDRESSABLE variables when passing by reference.
      
      	* omp-low.c (dump_omp_region): Fix output formatting.
      cp/
      	* cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
      	* cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
      	* cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
      testsuite/
      	* g++.dg/gomp/pr27337-1.C: New test.
      	* g++.dg/gomp/pr27337-2.C: New test.
      libgomp/
      	* testsuite/libgomp.c++/pr27337.C: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113456 138bc75d-0d04-0410-961f-82ee72b054a4
      df2c34fc
  20. Apr 26, 2006
    • jakub's avatar
      PR c/26171 · d91321f0
      jakub authored
      	* cgraph.c (cgraph_varpool_finalize_decl): Don't call
      	cgraph_varpool_assemble_pending_decls if -fopenmp, unless
      	cgraph_global_info_ready.
      
      	* testsuite/libgomp.c/pr26171.c: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113271 138bc75d-0d04-0410-961f-82ee72b054a4
      d91321f0
  21. Apr 25, 2006
  22. Apr 10, 2006
    • doko's avatar
      gcc/testsuite: · d35f63a9
      doko authored
      2006-04-10  Matthias Klose  <doko@debian.org>
      
      	* testsuite/lib/libjava.exp (libjava_init): Recognize multilib
      	directory names containing underscores.
      
      libffi:
      2006-04-10  Matthias Klose  <doko@debian.org>
      
      	* testsuite/lib/libjava.exp (libjava_init): Recognize multilib
      	directory names containing underscores.
      
      libgomp:
      2006-04-10  Matthias Klose  <doko@debian.org>
      
      	* testsuite/lib/libjava.exp (libjava_init): Recognize multilib
      	directory names containing underscores.
      
      libjava:
      2006-04-10  Matthias Klose  <doko@debian.org>
      
      	* testsuite/lib/libjava.exp (libjava_init): Recognize multilib
      	directory names containing underscores.
      
      libmudflap:
      2006-04-10  Matthias Klose  <doko@debian.org>
      
      	* testsuite/lib/libjava.exp (libjava_init): Recognize multilib
      	directory names containing underscores.
      
      libstdc++:
      2006-04-10  Matthias Klose  <doko@debian.org>
      
      	* testsuite/lib/libjava.exp (libjava_init): Recognize multilib
      	directory names containing underscores.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112833 138bc75d-0d04-0410-961f-82ee72b054a4
      d35f63a9
  23. Mar 21, 2006
  24. Mar 13, 2006
  25. Mar 09, 2006
  26. Feb 25, 2006
    • andreast's avatar
      2006-02-25 Shantonu Sen <ssen@opendarwin.org> · 59da30e1
      andreast authored
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111441 138bc75d-0d04-0410-961f-82ee72b054a4
      59da30e1
  27. Feb 17, 2006
  28. Feb 15, 2006
    • jakub's avatar
      PR libgomp/25938 · ebe48f5e
      jakub authored
      	PR libgomp/25984
      fortran/
      	* Make-lang.in (install-finclude-dir): New goal.
      	(fortran.install-common): Depend on install-finclude-dir.
      	* lang-specs.h: If not -nostdinc, add -I finclude.
      libgomp/
      	* Makefile.am (fincludedir): New variable.
      	(nodist_include_HEADERS): Remove Fortran files.
      	(nodist_finclude_HEADERS): New variable.
      	* Makefile.in: Regenerated.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111018 138bc75d-0d04-0410-961f-82ee72b054a4
      ebe48f5e
  29. Feb 14, 2006
    • jakub's avatar
      gcc/fortran/ · 764f1175
      jakub authored
      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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110984 138bc75d-0d04-0410-961f-82ee72b054a4
      764f1175
  30. Feb 13, 2006
  31. Feb 08, 2006
  32. Feb 07, 2006
  33. Feb 03, 2006
  34. Jan 25, 2006
    • rth's avatar
      PR libgomp/25884 · 107c3bbf
      rth authored
              * 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110220 138bc75d-0d04-0410-961f-82ee72b054a4
      107c3bbf
  35. Jan 24, 2006
Loading