1. 15 Feb, 2006 12 commits
    • s-taprop-posix.adb, [...] (Create_Task): Remove task adjustment code. · 57d8e34e
      2006-02-13  Pascal Obry  <obry@adacore.com>
      
      	* s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
      	s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
      	s-taprop-linux.adb, s-taprop-solaris.adb,
      	s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
      	adjustement is already done when calling this routine.
      
      From-SVN: r111026
      Pascal Obry committed
    • s-osinte-darwin.adb, [...] (sigset_t_ptr): Removed, replaced by anonymous access type. · 1dd5ad55
      	* s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
      	s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
      	s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
      	s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
      	s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
      	s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
      	replaced by anonymous access type.
      	(pthread_sigmask): Now take an access sigset_t
      
      	* s-osinte-hpux.ads:  Ditto.
      	(pthread_mutex_t, pthread_cond_t): Update definitions to support
      	properly 32 and 64 bit ABIs.
      
      From-SVN: r111025
      Arnaud Charlet committed
    • a-tasatt.adb, [...]: Remove redundant with clauses. · 3ede876b
      2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
      	s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
      	s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
      	s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
      	a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
      	s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
      	a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
      	s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
      	s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
      
      From-SVN: r111024
      Hristian Kirtchev committed
    • s-gloloc-mingw.adb, [...]: Minor reformatting. · 0ae9f22f
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      
      	* s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
      	a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
      	a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
      	a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
      	a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
      	a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
      	a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
      	a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
      	a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
      	a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
      	a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
      	a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
      	a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
      	a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
      	a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
      	a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
      	a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
      	a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
      	a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
      	a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
      	g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
      	g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
      	mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
      	prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
      	s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
      	s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
      	s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
      	s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
      	s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
      	s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
      	a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
      	fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
      	par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
      	system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
      	reformatting.
      
      From-SVN: r111023
      Robert Dewar committed
    • a-taster.adb (Current_Task_Fallback_Handler): Document why explicit protection… · 85a40c43
      a-taster.adb (Current_Task_Fallback_Handler): Document why explicit protection against race conditions is not needed.
      
      2006-02-13  Jose Ruiz  <ruiz@adacore.com>
      
      	* a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
      	protection against race conditions is not needed.
      	(Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
      	fallback handler.
      	(Set_Specific_Handler): Add mutual exclusive access to the specific
      	handler.
      	(Specific_Handler): Add mutual exclusive access for retrieving the
      	specific handler.
      
      	* s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
      	back handler.
      
      	* s-taskin.ads (Common_ATCB): Remove pragma Atomic for
      	Fall_Back_Handler and Specific_Handler.
      
      	* s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
      	termination handlers.
      	Set two different owerflow depending on the maximal stack size.
      
      	* s-solita.adb (Task_Termination_Handler_T): Document why explicit
      	protection against race conditions is not needed when executing the
      	task termination handler.
      
      From-SVN: r111022
      Jose Ruiz committed
    • a-intnam-os2.ads, [...]: Removed, no longer used. · ed50c9d2
      	* a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
      	g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
      	i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
      	s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
      	s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
      	s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
      	s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
      	s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
      	s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
      	no longer used.
      
      From-SVN: r111021
      Arnaud Charlet committed
    • cfg.c (dump_flow_info): Get dump flags as an additional parameter. · 5b4fdb20
      2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
      
      	* cfg.c (dump_flow_info): Get dump flags as an additional parameter.
      	(debug_flow_info): Pass it.
      	* alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
      	* bb-reorder.c (reorder_basic_blocks): Likewise.
      	* cfgcleanup.c (rest_of_handle_jump2): Likewise.
      	* cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
      	* flow.c (life_analysis, recompute_reg_usage): Likewise.
      	* gcse.c (gcse_main, bypass_jumps): Likewise.
      	* ifcvt.c (rest_of_handle_if_conversion): Likewise.
      	* local-alloc.c (rest_of_handle_local_alloc): Likewise.
      	* loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
      	* profile.c (compute_branch_probabilities, branch_prob): Likewise.
      	* rtl.h (dump_flow_info): Adjust prototype.
      	* tracer.c (rest_of_handle_tracer, tracer): Likewise.
      	* var-tracking.c (variable_tracking_main): Likewise.
      	* passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
      	* tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
      	options.
      
      From-SVN: r111020
      Paolo Bonzini committed
    • tree-ssa-dom.c (dom_thread_across_edge): fix tag expression construction. · bc4632d4
      2006-02-15  Marcin Dalecki <martin@dalecki.de>
      
      	* tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
      	construction.
      
      From-SVN: r111019
      Marcin Dalecki committed
    • re PR libgomp/25938 (libgomp installs header files in version and target independent location) · dd8d6dfe
      	PR libgomp/25938
      	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.
      
      From-SVN: r111018
      Jakub Jelinek committed
    • charset, [...]: Remove empty directories. · b5b7039e
      2006-02-15  Matthias Klose  <doko@debian.org>
      
              * gnu/java/nio/charset, gnu/java/net/protocol/file,
              gnu/regexp: Remove empty directories.
      
      From-SVN: r111015
      Matthias Klose committed
    • MAINTAINERS: Add self to fortran 95 maintainers. · 95999c27
      2006-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	* MAINTAINERS: Add self to fortran 95 maintainers.
      
      From-SVN: r111009
      Jerry DeLisle committed
    • Daily bump. · f0f6c672
      From-SVN: r111005
      GCC Administrator committed
  2. 14 Feb, 2006 20 commits
    • re PR tree-optimization/26209 (Specific code causes g++ 4.1.0 dominance ICE when compiled with -O3) · 43ec2467
      	PR tree-optimization/26209
      	* tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
      	* tree-cfgcleanup.c (cleanup_control_flow): Remove dead
      	eh edges.
      	* tree-cfg.c (replace_uses_by): Do not alter cfg.
      
      From-SVN: r110999
      Zdenek Dvorak committed
    • MAINTAINERS (Write After Approval): Remove myself. · 0499513f
      2006-02-16  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	* MAINTAINERS (Write After Approval):  Remove myself.
      	(Language Front End Maintainers):  Add myself as
      	fortran 95 maintainer.
      
      From-SVN: r110998
      Thomas Koenig committed
    • re PR middle-end/23670 (Fold does not fold (a|b)&b to b likewise for (a&b) | b to b) · 03bebcac
      
      	PR middle-end/23670
      	* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
      	(X,Y) and the corresponding symmetry related transformations.
      	(fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
      	(X,Y) and its symmetry related transformations.
      
      	* gcc.dg/tree-ssa/andor-2.c: New test case.
      
      From-SVN: r110997
      Roger Sayle committed
    • re PR fortran/25045 ([4.1 only] DIM argument of PRODUCT is not optional) · ce99d594
      2006-02-14  Thomas Koenig  <Thomas.Koenig@online.de>
      
              PR fortran/25045
              * check.c (dim_check):  Perform all checks if dim is optional.
              (gfc_check_minloc_maxloc):  Use dim_check and dim_rank_check
              to check dim argument.
              (check_reduction):  Likewise.
      
      2006-02-14  Thomas Koenig  <Thomas.Koenig@online.de>
      
              PR fortran/25045
              * optional_dim.f90:  New test.
      
      From-SVN: r110994
      Thomas Koenig committed
    • re PR fortran/26277 (false warning about unused label for a warning used in err=) · 89031799
      fortran/
      	PR fortran/26277
      	* io.c (match_ltag): Mark label as referenced.
      testsuite/
      	PR fortran/26277
      	* gfortran.dg/label_4.f90: New.
      
      From-SVN: r110993
      Tobias Schlüter committed
    • dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU and GEU. · fb9c6d49
      
              * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
      	and GEU.
      
      From-SVN: r110992
      Roger Sayle committed
    • re PR bootstrap/26053 (Misdetection of COMDAT group support with GNU as and non-GNU ld) · 1cf0118d
      	PR bootstrap/26053
      	* configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
      	support COMDAT group.
      	* configure: Regenerate.
      
      From-SVN: r110985
      Rainer Orth committed
    • re PR fortran/25162 (Issue with OpenMP COPYIN and gfortran) · 6c7a4dfd
      gcc/fortran/
      2006-02-14  Jakub Jelinek  <jakub@redhat.com>
      	    Richard Henderson  <rth@redhat.com>
      	    Diego Novillo  <dnovillo@redhat.com>
      
      	* invoke.texi: Document -fopenmp.
      	* gfortran.texi (Extensions): Document OpenMP.
      
      	Backport from gomp-20050608-branch
      	* trans-openmp.c: Call build_omp_clause instead of
      	make_node when creating OMP_CLAUSE_* trees.
      	(gfc_trans_omp_reduction_list): Remove argument 'code'.
      	Adjust all callers.
      
      	* trans.h (build4_v): Define.
      	* trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes.
      	Call build3_v to create OMP_SECTIONS nodes.
      
      	PR fortran/25162
      	* openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced
      	on all symbols added to the variable list.
      
      	* openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC
      	procedure symbol in REDUCTION.
      
      	* trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add
      	for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE.
      
      	* trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument.  If PBLOCK
      	is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in
      	that statement block.
      	(gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do
      	for non-ordered non-static combined loops.
      	(gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do.
      
      	* openmp.c: Include target.h and toplev.h.
      	(gfc_match_omp_threadprivate): Emit diagnostic if target does
      	not support TLS.
      	* Make-lang.in (fortran/openmp.o): Add dependencies on
      	target.h and toplev.h.
      
      	* trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT.
      	* trans-openmp.c (gfc_omp_privatize_by_reference): Make
      	DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT.
      	(gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT.
      	(gfc_trans_omp_variable): New function.
      	(gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it.
      	* trans.h (GFC_DECL_RESULT): Define.
      
      	* trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function.
      	* f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
      	* trans.h (gfc_omp_firstprivatize_type_sizes): New prototype.
      
      	* trans-openmp.c (gfc_omp_privatize_by_reference): Return
      	true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set.
      	(gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New
      	functions.
      	(gfc_trans_omp_clauses): Add WHERE argument.  Call
      	gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list
      	for reductions.
      	(gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
      	gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
      	gfc_trans_omp_sections, gfc_trans_omp_single): Adjust
      	gfc_trans_omp_clauses callers.
      
      	* openmp.c (omp_current_do_code): New var.
      	(gfc_resolve_omp_do_blocks): New function.
      	(gfc_resolve_omp_parallel_blocks): Call it.
      	(gfc_resolve_do_iterator): Add CODE argument.  Don't propagate
      	predetermination if argument is !$omp do or !$omp parallel do
      	iteration variable.
      	* resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks
      	for EXEC_OMP_DO.  Adjust gfc_resolve_do_iterator caller.
      	* fortran.h (gfc_resolve_omp_do_blocks): New prototype.
      	(gfc_resolve_do_iterator): Add CODE argument.
      
      	* trans.h (gfc_omp_predetermined_sharing,
      	gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
      	prototypes.
      	(GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define.
      	* trans-openmp.c (gfc_omp_predetermined_sharing,
      	gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
      	functions.
      	* trans-common.c (build_equiv_decl, build_common_decl,
      	create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls.
      	* trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE
      	on the decl.
      	* f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING,
      	LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
      	LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define.
      
      	* openmp.c (resolve_omp_clauses): Remove extraneous comma.
      
      	* symbol.c (check_conflict): Add conflict between cray_pointee and
      	threadprivate.
      	* openmp.c (gfc_match_omp_threadprivate): Fail if
      	gfc_add_threadprivate returned FAILURE.
      	(resolve_omp_clauses): Diagnose Cray pointees in SHARED,
      	{,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in
      	{FIRST,LAST}PRIVATE and REDUCTION clauses.
      
      	* resolve.c (omp_workshare_flag): New variable.
      	(resolve_function): Diagnose use of non-ELEMENTAL user defined
      	function in WORKSHARE construct.
      	(resolve_code): Cleanup forall_save use.  Make sure omp_workshare_flag
      	is set to correct value in different contexts.
      
      	* openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing
      	variable name.
      	(resolve_omp_atomic): Likewise.
      
      	PR fortran/24493
      	* scanner.c (skip_free_comments): Set at_bol at the beginning of the
      	loop, not before it.
      	(skip_fixed_comments): Handle ! comments in the middle of line here
      	as well.
      	(gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if
      	not at BOL.
      	(gfc_next_char_literal): Fix expected canonicalized *$omp string.
      
      	* trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit
      	initialization to build OMP_FOR instead of build.
      
      	* trans-decl.c (gfc_gimplify_function): Invoke
      	diagnose_omp_structured_block_errors.
      
      	* trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER.
      	(gfc_trans_omp_ordered): Use OMP_ORDERED.
      
      	* gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks,
      	gfc_resolve_omp_parallel_blocks): New prototypes.
      	* resolve.c (resolve_blocks): Renamed to...
      	(gfc_resolve_blocks): ... this.  Remove static.
      	(gfc_resolve_forall): Adjust caller.
      	(resolve_code): Only call gfc_resolve_blocks if code->block != 0
      	and not for EXEC_OMP_PARALLEL* directives.  Call
      	gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives.
      	Call gfc_resolve_do_iterator if resolved successfully EXEC_DO
      	iterator.
      	* openmp.c: Include pointer-set.h.
      	(omp_current_ctx): New variable.
      	(gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New
      	functions.
      	* Make-lang.in (fortran/openmp.o): Depend on pointer-set.h.
      
      	* openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor,
      	look up symbol if it exists, use its name instead and, if it is not
      	INTRINSIC, issue diagnostics.
      
      	* parse.c (parse_omp_do): Handle implied end do properly.
      	(parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO,
      	return it instead of continuing.
      
      	* trans-openmp.c (gfc_trans_omp_critical): Update for changed
      	operand numbering.
      	(gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
      	gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
      	gfc_trans_omp_sections, gfc_trans_omp_single): Likewise.
      
      	* trans.h (gfc_omp_privatize_by_reference): New prototype.
      	* f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine
      	to gfc_omp_privatize_by_reference.
      	* trans-openmp.c (gfc_omp_privatize_by_reference): New function.
      
      	* trans-stmt.h (gfc_trans_omp_directive): Add comment.
      
      	* openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument.
      	Disallow COMMON matching if it is set.
      	(gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers.
      	(resolve_omp_clauses): Show locus in error messages.  Check that
      	variable types in reduction clauses are appropriate for reduction
      	operators.
      
      	* resolve.c (resolve_symbol): Don't error if a threadprivate module
      	variable isn't SAVEd.
      
      	* trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY.
      	Fix typo in condition.  Fix DOVAR initialization.
      
      	* openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor
      	rather than .min. etc.
      
      	* trans-openmpc.c (omp_not_yet): Remove.
      	(gfc_trans_omp_parallel_do): Keep listprivate clause on parallel.
      	Force creation of BIND_EXPR around the workshare construct.
      	(gfc_trans_omp_parallel_sections): Likewise.
      	(gfc_trans_omp_parallel_workshare): Likewise.
      
      	* types.def (BT_I16, BT_FN_I16_VPTR_I16,
      	BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
      
      	* trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT.
      	(gfc_trans_omp_code): New function.
      	(gfc_trans_omp_do): Use it, remove omp_not_yet uses.
      	(gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise.
      	(gfc_trans_omp_sections): Likewise.  Only treat empty last section
      	specially if lastprivate clause is present.
      	* f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP
      	builtin.
      
      	* trans-openmp.c (gfc_trans_omp_variable_list): Update for
      	OMP_CLAUSE_DECL name change.
      	(gfc_trans_omp_do): Likewise.
      
      	* trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION
      	clauses.
      	(gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding
      	sync builtins directly.
      	(gfc_trans_omp_single): Build OMP_SINGLE statement.
      
      	* trans-openmp.c (gfc_trans_add_clause): New.
      	(gfc_trans_omp_variable_list): Take a tree code and build the clause
      	node here.  Link it to the head of a list.
      	(gfc_trans_omp_clauses): Update to match.
      	(gfc_trans_omp_do): Use gfc_trans_add_clause.
      
      	* trans-openmp.c (gfc_trans_omp_clauses): Change second argument to
      	gfc_omp_clauses *.  Use gfc_evaluate_now instead of creating
      	temporaries by hand.
      	(gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros.
      	(gfc_trans_omp_do): New function.
      	(gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL.
      	(gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller.
      	Use buildN_v macros.
      	(gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
      	gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections,
      	gfc_trans_omp_single, gfc_trans_omp_workshare): New functions.
      	(gfc_trans_omp_directive): Use them.
      	* parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP.
      	* openmp.c (resolve_omp_clauses): Check for list items present
      	in multiple clauses.
      	(resolve_omp_do): Check that iteration variable is not THREADPRIVATE
      	and is not present in any clause variable lists other than PRIVATE
      	or LASTPRIVATE.
      
      	* gfortran.h (symbol_attribute): Add threadprivate bit.
      	(gfc_common_head): Add threadprivate member, change use_assoc
      	and saved into char to save space.
      	(gfc_add_threadprivate): New prototype.
      	* symbol.c (check_conflict): Handle threadprivate.
      	(gfc_add_threadprivate): New function.
      	(gfc_copy_attr): Copy threadprivate.
      	* trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary
      	if IF or NUM_THREADS is constant.  Create OMP_CLAUSE_SCHEDULE and
      	OMP_CLAUSE_ORDERED.
      	* resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol
      	outside a module and not in COMMON has is not SAVEd.
      	(resolve_equivalence): Ensure THREADPRIVATE objects don't get
      	EQUIVALENCEd.
      	* trans-common.c: Include target.h and rtl.h.
      	(build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
      	* trans-decl.c: Include rtl.h.
      	(gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
      	* dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE.
      	* Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H).
      	(fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H).
      	* openmp.c (gfc_match_omp_variable_list): Ensure COMMON block
      	is from current namespace.
      	(gfc_match_omp_threadprivate): Rewrite.
      	(resolve_omp_clauses): Check some clause restrictions.
      	* module.c (ab_attribute): Add AB_THREADPRIVATE.
      	(attr_bits): Add THREADPRIVATE.
      	(mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate.
      	(load_commons, write_common, write_blank_common): Adjust for type
      	change of saved, store/load threadprivate bit from the integer
      	as well.
      
      	* types.def (BT_FN_UINT_UINT): New.
      	(BT_FN_VOID_UINT_UINT): Remove.
      
      	* trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier,
      	gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master,
      	gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions.
      	(gfc_trans_omp_directive): Use them.
      
      	* openmp.c (expr_references_sym): Add SE argument, don't look
      	into SE tree.
      	(is_conversion): New function.
      	(resolve_omp_atomic): Adjust expr_references_sym callers.  Handle
      	promoted expressions.
      	* trans-openmp.c (gfc_trans_omp_atomic): New function.
      	(gfc_trans_omp_directive): Call it.
      
      	* f95-lang.c (builtin_type_for_size): New function.
      	(gfc_init_builtin_functions): Initialize synchronization and
      	OpenMP builtins.
      	* types.def: New file.
      	* Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and
      	fortran/types.def.
      
      	* trans-openmp.c: Rename GOMP_* tree codes into OMP_*.
      
      	* dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name
      	is NULL.
      
      	* dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New
      	functions.
      	(gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes.
      
      	* parse.c (parse_omp_do): Call pop_state before next_statement.
      	* openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do):
      	New functions.
      	(gfc_resolve_omp_directive): Call them.
      	* match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement
      	leaves an OpenMP structured block or if EXIT terminates !$omp do
      	loop.
      
      	* Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o.
      	(F95_OBJS): Add fortran/trans-openmp.o.
      	(fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS).
      	* lang.opt: Add -fopenmp option.
      	* options.c (gfc_init_options): Initialize it.
      	(gfc_handle_option): Handle it.
      	* gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL,
      	ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER,
      	ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO,
      	ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE,
      	ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE,
      	ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED,
      	ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS,
      	ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION,
      	ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New
      	statement codes.
      	(OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE,
      	OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN,
      	OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
      	OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
      	OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
      	OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM):
      	New OpenMP variable list types.
      	(gfc_omp_clauses): New typedef.
      	(gfc_get_omp_clauses): Define.
      	(EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER,
      	EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO,
      	EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE,
      	EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE,
      	EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT,
      	EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes.
      	(struct gfc_code): Add omp_clauses, omp_name, omp_namelist
      	and omp_bool fields to ext union.
      	(flag_openmp): Declare.
      	(gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes.
      	* scanner.c (openmp_flag, openmp_locus): New variables.
      	(skip_free_comments, skip_fixed_comments, gfc_next_char_literal):
      	Handle OpenMP directive lines and conditional compilation magic
      	comments.
      	* parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state.
      	* parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic,
      	parse_omp_structured_block): New functions.
      	(next_free, next_fixed): Parse OpenMP directives.
      	(case_executable, case_exec_markers, case_decl): Add ST_OMP_*
      	codes.
      	(gfc_ascii_statement): Handle ST_OMP_* codes.
      	(parse_executable): Rearrange the loop slightly, so that
      	parse_omp_do can return next_statement.
      	* match.h (gfc_match_omp_eos, gfc_match_omp_atomic,
      	gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do,
      	gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered,
      	gfc_match_omp_parallel, gfc_match_omp_parallel_do,
      	gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
      	gfc_match_omp_sections, gfc_match_omp_single,
      	gfc_match_omp_threadprivate, gfc_match_omp_workshare,
      	gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes.
      	* resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives.
      	(resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_*
      	directives.
      	* trans.c (gfc_trans_code): Call gfc_trans_omp_directive for
      	EXEC_OMP_* directives.
      	* st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing.
      	* trans-stmt.h (gfc_trans_omp_directive): New prototype.
      	* openmp.c: New file.
      	* trans-openmp.c: New file.
      
      gcc/testsuite/
      2006-02-14  Jakub Jelinek  <jakub@redhat.com>
      	    Diego Novillo  <dnovillo@redhat.com>
      	    Uros Bizjak  <uros@kss-loka.si>
      
      	* gfortran.dg/gomp: New directory.
      
      libgomp/
      2006-02-14  Jakub Jelinek  <jakub@redhat.com>
      
      	* testsuite/libgomp.fortran/vla7.f90: Add -w to options.
      	Remove tests for returning assumed character length arrays.
      
      Co-Authored-By: Diego Novillo <dnovillo@redhat.com>
      Co-Authored-By: Richard Henderson <rth@redhat.com>
      Co-Authored-By: Uros Bizjak <uros@kss-loka.si>
      
      From-SVN: r110984
      Jakub Jelinek committed
    • re PR middle-end/26279 (ICE in do_compare_rtx_and_jump) · 1dc5d842
      
      	PR middle-end/26279
      	PR middle-end/26280
      	PR middle-end/26283
      	* dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
      
      From-SVN: r110983
      Roger Sayle committed
    • call.c (standard_conversion): Return NULL instead of 0. · 6aed477a
      	* call.c (standard_conversion): Return NULL instead of 0.
      	(build_user_type_conversion_1): Likewise.
      	(tourney): Likewise.
      	* decl.c (redeclaration_error_message): Likewise.
      	* error.c (language_to_string): Likewise.
      
      From-SVN: r110976
      Volker Reichelt committed
    • re PR tree-optimization/26260 (PTA is slow with large structs (hits clisp)) · 98035a75
      2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
      
      	Fix PR tree-optimization/26260
      
      	* doc/invoke.texi (max-fields-for-field-sensitive): Document
      	param.
      	* params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
      	* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
      	* tree-ssa-structalias.c (create_variable_info_for): Use
      	MAX_FIELDS_FOR_FIELD_SENSITIVE.
      
      From-SVN: r110972
      Daniel Berlin committed
    • Add forgotten file. · b076a3fd
      From-SVN: r110965
      Zdenek Dvorak committed
    • invoke.texi (-fprefetch-loop-arrays, [...]): Document. · 17684618
      	* doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
      	Document.
      	* tree-ssa-loop-niter.c (number_of_iterations_ne,
      	number_of_iterations_lt, number_of_iterations_cond): Remember the shape
      	of the ending condition.
      	* tree-ssa-loop-manip.c: Include params.h.
      	(build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
      	tree_unroll_loop): New functions.
      	* tree-pass.h (pass_loop_prefetch): Declare.
      	* loop.c (rest_of_handle_loop_optimize): Test for
      	-fprefetch-loop-arrays-rtl.
      	* tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
      	* timevar.def (TV_TREE_PREFETCH): New timevar.
      	* tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
      	pass_loop_prefetch): New.
      	* tree-cfgcleanup.c: Include tree-scalar-evolution.h.
      	(cleanup_tree_cfg_loop): Call scev_reset.
      	* common.opt (fprefetch-loop-arrays-rtl): Add.
      	* tree-ssa-loop-prefetch.c: New file.
      	* tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
      	(new_temp_expr_table): Initialize expr_vars.
      	(free_temp_expr_table): Cleanup expr_vars.
      	(check_replaceable, find_replaceable_in_bb): Prevent accumulating
      	expressions from being merged into one.
      	* tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
      	(struct tree_niter_desc): Add control, bound and cmp fields.
      	(tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
      	Declare.
      	* Makefile.in (tree-ssa-loop-prefetch.o): Add.
      	(tree-cfgcleanup.o): Add SCEV_H dependency.
      	(tree-ssa-loop-manip.o): Add PARAMS_H dependency.
      	* passes.c (init_optimization_passes): Add pass_loop_prefetch.
      
      From-SVN: r110964
      Zdenek Dvorak committed
    • re PR tree-optimization/26258 (Wrong alias information for struct addresses in PHIs) · 0a4288d9
      2006-02-14  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/26258
      	* tree-ssa-structalias.c (find_func_aliases): Handle aggregates
      	in PHI argument processing.
      
      	* gcc.dg/torture/pr26258.c: New testcase.
      
      From-SVN: r110963
      Richard Guenther committed
    • [multiple changes] · d1f8db0c
      2006-02-14  Paolo Bonzini  <bonzini@gnu.org>
      
      	Sync from src:
      
      	2005-12-27  Leif Ekblad  <leif@rdos.net>
      
              * configure.in: Add support for RDOS target.
              * configure: Regenerate.
      
      2006-02-14  Paolo Bonzini  <bonzini@gnu.org>
                  Andreas Schwab  <schwab@suse.de>
      
              * configure: Regenerate.
      
      config:
      2006-02-14  Paolo Bonzini  <bonzini@gnu.org>
                  Andreas Schwab  <schwab@suse.de>
      
              * acx.m4 (NCN_STRICT_CHECK_TARGET_TOOLS): Use correct program name.
              (ACX_CHECK_INSTALLED_TARGET_TOOL): Likewise, and always set $1.
      
      
      Co-Authored-By: Andreas Schwab <schwab@suse.de>
      
      From-SVN: r110961
      Paolo Bonzini committed
    • simplify-rtx.c (simplify_unary_operation_1): Return new expression in the requested machine mode. · e963b866
      	* simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
      	new expression in the requested machine mode.
      
      From-SVN: r110959
      Adam Nemet committed
    • optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx directly... · 3bf78d3b
      
      	* optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
      	directly, instead let do_compare_rtx_and_jump handle this for us.
      	* expr.c (expand_expr_real_1): Likewise.
      	* dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
      	before do_jump_by_parts_greater.
      	(do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
      	* expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
      
      From-SVN: r110954
      Roger Sayle committed
    • quadlib.c: Use defines instead of enum qfcmp_magic. · 0fe4610e
      	* pa/quadlib.c: Use defines instead of enum qfcmp_magic.
      
      From-SVN: r110947
      John David Anglin committed
    • Daily bump. · 78492e61
      From-SVN: r110945
      GCC Administrator committed
  3. 13 Feb, 2006 8 commits