1. 18 Jun, 2014 25 commits
    • bpabi.S (__aeabi_uldivmod): Perform division using call to __udivmoddi4. · 0b227df4
      2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
      
      	* config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
      	to __udivmoddi4.
      
      From-SVN: r211792
      Charles Baylis committed
    • bpabi.S (__aeabi_uldivmod): Optimise stack pointer manipulation. · c9dae335
      2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
      
      	* config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
      	manipulation.
      
      From-SVN: r211791
      Charles Baylis committed
    • bpabi.S (__aeabi_uldivmod, [...]): Add comment describing register usage on… · 6857b807
      bpabi.S (__aeabi_uldivmod, [...]): Add comment describing register usage on function entry and exit.
      
      2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
      
      	* config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
      	describing register usage on function entry and exit.
      
      From-SVN: r211790
      Charles Baylis committed
    • bpabi.S (__aeabi_uldivmod): Fix whitespace. · f21d8faa
      2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
      
      	* config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
      	(__aeabi_ldivmod): Fix whitespace.
      
      From-SVN: r211789
      Charles Baylis committed
    • md.texi (Standard Names): Use @itemx for grouped items. · 544aee0d
      * doc/md.texi (Standard Names): Use @itemx for grouped items.
      Remove blank line after @item.
      
      From-SVN: r211788
      Andreas Schwab committed
    • re PR target/61545 (Miscompilation in libcap-ng) · 0bc11714
      PR target/61545
      
      * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
      
      From-SVN: r211785
      Richard Henderson committed
    • arm.c (neon_vector_mem_operand): Allow register POST_MODIFY for neon loads and stores. · 7b5b78b1
      2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
      
      	* config/arm/arm.c (neon_vector_mem_operand): Allow register
      	POST_MODIFY for neon loads and stores.
      	(arm_print_operand): Output post-index register for neon loads and
      	stores.
      
      From-SVN: r211783
      Charles Baylis committed
    • tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit. · 54ed41ea
      2014-06-18  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
      
      From-SVN: r211782
      Richard Biener committed
    • tree-pass.h (make_pass_dce_loop): Remove. · 30866dc9
      2014-06-18  Richard Biener  <rguenther@suse.de>
      
      	* tree-pass.h (make_pass_dce_loop): Remove.
      	* passes.def: Replace pass_dce_loop with pass_dce.
      	* tree-ssa-dce.c (perform_tree_ssa_dce): If something
      	changed free niter estimates and reset the scev cache.
      	(tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
      	make_pass_dce_loop): Remove.
      	* tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
      	(fini_copy_prop): Return whether something changed.  Always
      	let substitute_and_fold perform DCE and free niter estimates
      	and reset the scev cache if so.
      	(execute_copy_prop): If sth changed schedule cleanup-cfg.
      	(pass_data_copy_prop): Do not unconditionally schedule
      	cleanup-cfg or update-ssa.
      
      	* gcc.dg/vect/vect.exp: Remove dump-tree-dceloop-* processing.
      	* gcc.dg/vect/dump-tree-dceloop-pr26359.c: Rename to ...
      	* gcc.dg/vect/pr26359.c: ... this and adjust appropriately.
      
      From-SVN: r211781
      Richard Biener committed
    • re PR tree-optimization/61518 (wrong code (by tree vectorizer) at -O3 on x86_64-linux-gnu) · 560c75e9
              PR tree-optimization/61518
      gcc/
              * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
              reduction var is used in reduction stmt or phi-function only.
      
      gcc/testsuite/
              * gcc.dg/torture/pr61518.c: New test.
      
      From-SVN: r211780
      Yuri Rumyantsev committed
    • [ARM] Fix check for __FAST_MATH in arm_neon.h · 751738cb
      	* config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
      
      From-SVN: r211779
      Kyrylo Tkachov committed
    • re PR tree-optimization/61517 (wrong code at -Os and above on x86_64-linux-gnu) · a31d2741
      2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          PR tree-optimization/61517
          * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
          whose rhs's first tree is the source expression instead of the
          expression itself.
          (find_bswap_or_nop): Likewise.
          (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
          gimple stmt whose rhs's first tree is the source. In the memory source
          case, move the stmt to be replaced close to one of the original load to
          avoid the problem of a store between the load and the stmt's original
          location.
          (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
          signature.
      
          gcc/testsuite/
          * gcc.c-torture/execute/bswap-2.c (incorrect_read_le32): New.
          (incorrect_read_be32): Likewise.
          (main): Call incorrect_read_* to test stmt replacement is made by
          bswap at the right place.
          * gcc.c-torture/execute/pr61517.c: New test.
      
      From-SVN: r211778
      Thomas Preud'homme committed
    • Use strict_low_part for loading a constant only if it is cheaper · a0f37b26
      	PR rtl-optimization/54555
      	* postreload.c (move2add_use_add2_insn): Substitute
      	STRICT_LOW_PART only if it is cheaper.
      
      testsuite/:
      	PR rtl-optimization/54555
      	* gcc.target/m68k/pr54555.c: New test.
      
      From-SVN: r211777
      Andreas Schwab committed
    • i386.md (*sibcall_memory): Rename from *sibcall_intern. · 9fdb837f
      	* config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
      	Do not use unspec as call operand.  Use memory_operand instead of
      	memory_nox32_operand and add "m" operand constraint.  Disable
      	pattern for TARGET_X32.
      	(*sibcall_pop_memory): Ditto.
      	(*sibcall_value_memory): Ditto.
      	(*sibcall_value_pop_memory): Ditto.
      	(sibcall peepholes): Merge SImode and DImode patterns using
      	W mode iterator.  Use memory_operand instead of memory_nox32_operand.
      	Disable pattern for TARGET_X32.  Check if eliminated register is
      	really dead after call insn.  Generate call RTX without unspec operand.
      	(sibcall_value peepholes): Ditto.
      	(sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
      	instead of memory_nox32_operand.  Check if eliminated register is
      	really dead after call insn. Generate call RTX without unspec operand.
      	(sibcall_value_pop peepholes): Ditto.
      	* config/i386/predicates.md (memory_nox32_operand): Remove predicate.
      
      From-SVN: r211776
      Uros Bizjak committed
    • re PR target/61544 (ICE due to thumb1_reorg function mishandles label type insn) · 35d147ef
      2014-06-18  Terry Guo  <terry.guo@arm.com>
      
      	PR target/61544
      	* config/arm/arm.c (thumb1_reorg): Move to next basic block if we
      	reach the head.
      
      From-SVN: r211775
      Terry Guo committed
    • Fix libstdc++/61536 - Export out of line typeinfo comparison operators · ad4684c2
      2014-06-18  Paolo Carlini  <paolo.carlini@oracle.com>
      	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
      	PR libstdc++/61536
      	* config/abi/pre/gnu.ver: Adjust for out of line comparisons.
      
      Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
      
      From-SVN: r211774
      Paolo Carlini committed
    • improve sloc assignment on bind_expr entry/exit code · a5852bea
      2014-06-18  Olivier Hainque <hainque@adacore.com>
      
              improve sloc assignment on bind_expr entry/exit code
      
              gcc/
              * tree-core.h (tree_block): Add an "end_locus" field, allowing
              memorization of the end of block source location.
              * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
              * gimplify.c (gimplify_bind_expr): Propagate the block start and
              end source location info we have on the block entry/exit code we
              generate.
      
              testsuite/
              * gnat.dg/blocklocs.adb: New test.
      
      From-SVN: r211773
      Olivier Hainque committed
    • common.opt (fssa-phiopt): New option. · 68f6df73
      2014-06-18  Richard Biener  <rguenther@suse.de>
      
      	* common.opt (fssa-phiopt): New option.
      	* opts.c (default_options_table): Enable -fssa-phiopt with -O1+
      	but not with -Og.
      	* tree-ssa-phiopt.c (pass_phiopt): Add gate method.
      	* doc/invoke.texi (-fssa-phiopt): Document.
      
      From-SVN: r211772
      Richard Biener committed
    • [genattrtab] Fix memory corruption, allocate enough memory for all bypassed reservations · 419d45db
      	* genattrtab.c (n_bypassed): New variable.
      	(process_bypasses): Initialise n_bypassed.
      	Count number of bypassed reservations.
      	(make_automaton_attrs): Allocate space for bypassed reservations
      	rather than number of bypasses.
      
      From-SVN: r211771
      Kyrylo Tkachov committed
    • tree-ssa-propagate.c (replace_phi_args_in): Return whether we propagated anything. · 25b7069a
      2014-06-18  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-propagate.c (replace_phi_args_in): Return whether
      	we propagated anything.
      	(substitute_and_fold_dom_walker::before_dom_children): Something
      	changed if we propagated into PHI arguments.
      	* tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
      	we removed a stmt.
      
      From-SVN: r211770
      Richard Biener committed
    • re PR tree-optimization/52252 (An opportunity for x86 gcc vectorizer (gain up to 3 times)) · f7917029
      gcc/
      	* config/i386/i386.c (ix86_reassociation_width): Add alternative for
      	vector case.
      	* config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
      	* config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
      	* tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
      	Introduces alternative way of loads group permutaions.
      	(vect_transform_grouped_load): Try alternative way of permutations.
      
      gcc/testsuite/
      	PR tree-optimization/52252
      	* gcc.target/i386/pr52252-atom.c: Test on loads group of size 3.
      	* gcc.target/i386/pr52252-core.c: Ditto.
      
      	PR tree-optimization/61403
      	* gcc.target/i386/pr61403.c: Test on loads and stores group of size 3.
      
      From-SVN: r211769
      Evgeny Stupachenko committed
    • 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
    • re PR fortran/61126 (gfortran does not enable -Wununused-parameter with -Wextra) · 3e9c4087
      2014-06-18  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/61126
              * invoke.texi (-Wunused-parameter): Make clearer when
              -Wextra implies this option.
      
      From-SVN: r211767
      Tobias Burnus committed
    • [multiple changes] · f2617193
      2014-06-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
              PR fortran/61126
              * options.c (gfc_handle_option): Remove call to
              handle_generated_option.
      
      2014-06-18  Dominique d'Humieres <dominiq@lps.ens.fr>
      
              PR fortran/61126
              * gfortran.dg/wextra_1.f: Add -Wall to dg-options.
      
      From-SVN: r211766
      Tobias Burnus committed
    • Daily bump. · 5f5a5e02
      From-SVN: r211764
      GCC Administrator committed
  2. 17 Jun, 2014 15 commits
    • tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here. · f2918c18
      
      	* tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
      	* tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
      
      From-SVN: r211757
      Andrew MacLeod committed
    • re PR c++/60605 (incorrect diagosis of default template argument for function… · 5a96dac6
      re PR c++/60605 (incorrect diagosis of default template argument for function declaration inside class template member function)
      
      	PR c++/60605
      	* pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
      
      From-SVN: r211754
      Jason Merrill committed
    • check.c (gfc_check_atomic, [...]): Use argument for GFC_ISYM_CAF_GET. · b5116268
      gcc/fortran/
      2014-06-17  Tobias Burnus  <burnus@net-b.de>
      
              * check.c (gfc_check_atomic, gfc_check_atomic_def):
              Use argument for GFC_ISYM_CAF_GET.
              * resolve.c (resolve_variable): Enable CAF_GET insertion.
              (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
              (resolve_ordinary_assign): Enable CAF_SEND insertion.
              * trans-const.c (gfc_build_string_const,
              gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
              * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
              gfor_fndecl_caf_sendget): New global variables.
              (gfc_build_builtin_function_decls): Initialize them;
              update co_min/max/sum initialization.
              * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
              get_tree_for_caf_expr and removed static.
              (gfc_conv_procedure_call): Update call.
              * trans-intrinsic.c (caf_get_image_index,
              conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
              get_caf_token_offset, gfc_conv_intrinsic_caf_get,
              conv_caf_send): New.
              (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
              gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
              (conv_co_minmaxsum): Update call for remove unused vector
              subscript.
              (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
              Skip a CAF_GET of the argument.
              * trans-types.c (gfc_get_caf_vector_type): New.
              * trans-types.h (gfc_get_caf_vector_type): New.
              * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
              gfor_fndecl_caf_sendget): New global variables.
              (gfc_get_tree_for_caf_expr): New prototypes.
      
      libgfortran/
      2014-06-17  Tobias Burnus  <burnus@net-b.de>
      
              * caf/libcaf.h (gfc_descriptor_t): New typedef.
              (caf_vector_t): Update.
              (_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min):
              Remove vector-subscript argument.
              (_gfortran_caf_co_send, _gfortran_caf_co_get,
              _gfortran_caf_co_sendget): New.
              * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
              _gfortran_caf_co_min): Remove vector-subscript argument.
              (_gfortran_caf_co_send, _gfortran_caf_co_get,
              _gfortran_caf_co_sendget): New.
      
      gcc/testsuite/
      2014-06-17  Tobias Burnus  <burnus@net-b.de>
                  Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com>
      
              * gfortran.dg/coarray/send_array.f90: New.
              * gfortran.dg/coarray/get_array.f90: New.
              * gfortran.dg/coarray/sendget_array.f90: New.
              * gfortran.dg/coarray/collectives_1.f90: Correct subroutine
              names.
              * gfortran.dg/coarray/collectives_2.f90: New.
      
      
      
      Co-Authored-By: Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com>
      
      From-SVN: r211748
      Tobias Burnus committed
    • Makefile.am (libatomic_la_LDFLAGS): Add lt_host_flags. · dc3368d0
      	* Makefile.am (libatomic_la_LDFLAGS): Add lt_host_flags.
      	* configure.ac (ACX_LT_HOST_FLAGS): New.
      	(target_thread_file): New.
      	* configure.tgt (mingw): Add mingw support.
      	* config/mingw/host-config.h: New file.
      	* config/mingw/lock.c: Likewise.
      	* Makefile.in: Regenerated.
      	* configure: Likewise.
      	* aclocal.m4: Likewise.
      	* testsuite/Makefile.in: Likewise.
      
      From-SVN: r211747
      Kai Tietz committed
    • Fix dot dump bug · 90d0d8d3
      From-SVN: r211746
      Xinliang David Li committed
    • Compile gcc.target/i386/fuse-caller-save.c with -fomit-frame-pointer (PR target/61533) · 72f4065c
      	PR target/61533
      	* gcc.target/i386/fuse-caller-save.c: Add -fomit-frame-pointer to
      	dg-options.
      
      From-SVN: r211740
      Rainer Orth committed
    • genopinit.c (main): Use vec<>::qsort method. · 75509ba2
      2014-06-17  Richard Biener  <rguenther@suse.de>
      
      	* genopinit.c (main): Use vec<>::qsort method.
      	* tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
      	Likewise.
      	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
      
      From-SVN: r211738
      Richard Biener committed
    • Clean up ST_REGS handling in the MIPS backend. · e58b74ea
      gcc/
      
      	* config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
      	* config/mips/mips.c (mips_expand_fcc_reload): Remove.
      	(mips_move_to_gpr_cost): Remove ST_REGS case.
      	(mips_move_from_gpr_cost): Likewise.
      	(mips_register_move_cost): Likewise.
      	(mips_secondary_reload_class): Likewise.
      
      From-SVN: r211737
      Matthew Fortune committed
    • passes.def (pass_all_early_optimizations): Remove copy-prop pass. · 9e4f27ef
      2014-06-17  Richard Biener  <rguenther@suse.de>
      
      	* passes.def (pass_all_early_optimizations): Remove copy-prop pass.
      	(pass_all_optimizations): Move 3rd copy-prop pass from after
      	fre to before ifcombine/phiopt.
      
      From-SVN: r211736
      Richard Biener committed
    • tree-switch-conversion.c (collect_switch_conv_info): Simplify and allow all… · 866f20d6
      tree-switch-conversion.c (collect_switch_conv_info): Simplify and allow all blocks to be forwarders.
      
      2014-06-17  Richard Biener  <rguenther@suse.de>
      
      	* tree-switch-conversion.c (collect_switch_conv_info): Simplify
      	and allow all blocks to be forwarders.
      
      From-SVN: r211735
      Richard Biener committed
    • pr61335.f90 (cp_unit_create): Initialize unit_id and kind_id to zero. · 00bdef2c
      	* gfortran.dg/pr61335.f90 (cp_unit_create): Initialize
      	unit_id and kind_id to zero.
      
      From-SVN: r211734
      Uros Bizjak committed
    • re PR target/61483 ([AArch64] builtin va_start incorrectly initializes the field… · 3abf17cf
      re PR target/61483 ([AArch64] builtin va_start incorrectly initializes the field of va_list for incoming unnamed arguments on the stack)
      
      gcc/
      
      	PR target/61483
      	* config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
      	variable 'size'; calculate 'size' right in the front; use
      	'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
      	pcum->aapcs_stack_words.
      
      gcc/testsuite/
      
      	PR target/61483
      	* gcc.target/aarch64/aapcs64/type-def.h (struct hfa_fx2_t): New type.
      	* gcc.target/aarch64/aapcs64/va_arg-13.c: New test.
      	* gcc.target/aarch64/aapcs64/va_arg-14.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-15.c: Ditto.
      
      From-SVN: r211733
      Yufeng Zhang committed
    • msp430.md (mulhisi3): Add a NOP after the DINT. · ba3cf9f1
      	* config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
      	(umulhi3, mulsidi3, umulsidi3): Likewise.
      
      From-SVN: r211730
      Nick Clifton committed
    • re PR lto/61012 (lto1: errors during merging of translation units (error:… · f807ce54
      re PR lto/61012 (lto1: errors during merging of translation units (error: variable ‘link’ redeclared as function))
      
      2014-06-17  Richard Biener  <rguenther@suse.de>
      
      	PR lto/61012
      	* gcc.dg/lto/pr61526_0.c: New testcase.
      	* gcc.dg/lto/pr61526_1.c: Likewise.
      
      From-SVN: r211728
      Richard Biener committed
    • [PR middle-end/61508] fold-const.c:14863:55: error: cannot convert 'const char*' to 'const_tree · 7a75b6e2
      	gcc/
      	* fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
      	check for section name.
      
      From-SVN: r211727
      Thomas Schwinge committed