1. 06 Nov, 2015 19 commits
    • Correct entry for PR c++/67942. · 8309230f
      From-SVN: r229857
      Martin Sebor committed
    • pt.c (push_inline_template_parms_recursive): Don't recreate the CONST_DECL. · 9f46fa10
      	* pt.c (push_inline_template_parms_recursive): Don't recreate the
      	CONST_DECL.
      
      From-SVN: r229856
      Jason Merrill committed
    • config.gcc (e6500): Fix cpu_is_64bit typo. · 75d86b7d
      2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
              * config.gcc (e6500): Fix cpu_is_64bit typo.
      
      From-SVN: r229855
      Arnout Vandecappelle committed
    • tree-sra.c: Fix completely_scalarize for negative indices. · 55bf45c0
      	* tree-sra.c (completely_scalarize): Properly handle negative array
      	indices using offset_int.
      
      From-SVN: r229852
      Alan Lawrence committed
    • alloc-pool.h (object_allocator::allocate): Default-initialize object. · f1aa4bb3
      2015-11-06  Richard Biener  <rguenther@suse.de>
      
      	* alloc-pool.h (object_allocator::allocate): Default-initialize
      	object.
      
      From-SVN: r229851
      Richard Biener committed
    • tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor. · ff569744
      2015-11-06  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
      	* lra.c (init_reg_info): Truncate copy_vec instead of
      	re-allocating a new one and leaking the old.
      	* ipa-inline-analysis.c (estimate_function_body_sizes): Free
      	bb_infos vec.
      	* sched-deps.c (sched_deps_finish): Free the dn/dl pools.
      	* postreload-gcse.c (free_mem): Free modify_mem_list and
      	canon_modify_mem_list.
      
      From-SVN: r229850
      Richard Biener committed
    • [cp][committed] Fix bootstrap on arm due to print format warning · c047b694
      	* init.c (warn_placement_new_too_small): Use %wu format
      	rather than %lu when printing bytes_avail.
      
      From-SVN: r229849
      Kyrylo Tkachov committed
    • re PR tree-optimization/68145 (ICE: in vectorizable_store, at tree-vect-stmts.c:5684) · b036c6c5
      gcc/
      
      	PR tree-optimization/68145
      	* tree-vect-stmts.c (vectorizable_operation): Fix
      	determination for booleans.
      
      gcc/testsuite/
      
      	PR tree-optimization/68145
      	* g++.dg/vect/pr68145.cc: New test.
      
      From-SVN: r229848
      Ilya Enkovich committed
    • Fix transform_to_exit_first_loop_alt with -g · 4a4b6c4c
      2015-11-06  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-cfg.c (gimple_split_block_before_cond_jump): Split before
      	cond_jump, instead of split after last nondebug insn before cond_jump.
      	* tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
      	returning.
      
      From-SVN: r229847
      Tom de Vries committed
    • [ARM/AArch64] PR 68088: Fix RTL checking ICE due to subregs inside accumulator forwarding check · c9aa6b94
              PR target/68088
              * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
              subregs from accumulator and make sure it's a register.
      
              * gcc.dg/pr68088_1.c: New test.
      
      From-SVN: r229845
      Kyrylo Tkachov committed
    • Update loongson vector reductions. · 66c5c67b
      2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
      
              * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
              low part to scalar.
              (reduc_uplus_<mode>): Remove.
              (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
              loongson_extract_lo_<mode>.
              (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
              reduc_smax_<mode>, reduc_smax_<mode>, use vec
              loongson_extract_lo_<mode>.
              (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
      
      From-SVN: r229844
      Simon Dardis committed
    • tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end members. · 61d371eb
      2015-11-06  Richard Biener  <rguenther@suse.de>
      
      	* tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
      	members.
      	(vect_stmt_in_region_p): Declare.
      	* tree-vect-slp.c (new_bb_vec_info): Work on a region.
      	(destroy_bb_vec_info): Likewise.
      	(vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
      	(vect_get_and_check_slp_defs): Likewise.
      	(vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
      	(vect_slp_bb): Likewise.
      	* tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
      	in terms of vect_stmt_in_region_p.
      	(vect_pattern_recog): Iterate over the BB region.
      	* tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
      	* tree-vectorizer.c (vect_stmt_in_region_p): New function.
      	(pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
      
      	* config/i386/i386.c: Include gimple-iterator.h.
      	* config/aarch64/aarch64.c: Likewise.
      
      	* gcc.dg/vect/bb-slp-38.c: New testcase.
      
      From-SVN: r229842
      Richard Biener committed
    • XFAIL testcases regressed after r229814, "Merge from gomp-4_5-branch to trunk" · 66a5f0b4
      	gcc/testsuite/
      	* gfortran.dg/goacc/private-3.f95: XFAIL.
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: XFAIL.
      	* testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Likewise.
      
      From-SVN: r229841
      Thomas Schwinge committed
    • [PR67753] fix copy of PARALLEL entry_parm to CONCAT target_reg · a029addd
      In assign_parms_setup_block, the copy of args in PARALLELs from
      entry_parm to stack_parm is deferred to the parm conversion insn seq,
      but the copy from stack_parm to target_reg was inserted in the normal
      copy seq, that is executed before the conversion insn seq.  Oops.
      
      We could do away with the need for an actual stack_parm in general,
      which would have avoided the need for emitting the copy to target_reg
      in the conversion seq, but at least on pa, due to the need for stack
      to copy between SI and SF modes, it seems like using the reserved
      stack slot is beneficial, so I put in logic to use a pre-reserved
      stack slot when there is one, and emit the copy to target_reg in the
      conversion seq if stack_parm was set up there.
      
      for  gcc/ChangeLog
      
      	PR rtl-optimization/67753
      	PR rtl-optimization/64164
      	* function.c (assign_parm_setup_block): Avoid allocating a
      	stack slot if we don't have an ABI-reserved one.  Emit the
      	copy to target_reg in the conversion seq if the copy from
      	entry_parm is in it too.  Don't use the conversion seq to copy
      	a PARALLEL to a REG or a CONCAT.
      
      From-SVN: r229840
      Alexandre Oliva committed
    • Add testcases for middle-end/53852 and middle-end/67518 · 5c661a44
      2015-11-06  Joost VandeVondele  <vondele@gnu.gcc.org>
      
      	PR middle-end/53852
      	PR middle-end/67518
      	* gfortran.dg/PR67518.f90: New test.
      	* gfortran.dg/PR53852.f90: New test.
      
      From-SVN: r229839
      Joost VandeVondele committed
    • tree-hash-traits.h (tree_operand_hash): Provide equal, not equal_keys. · 8ba66467
      2015-11-06  Richard Biener  <rguenther@suse.de>
      
      	* tree-hash-traits.h (tree_operand_hash): Provide equal, not
      	equal_keys.
      
      From-SVN: r229838
      Richard Biener committed
    • gimplify.c (gimplify_scan_omp_clauses): Add support for OMP_CLAUSE_TILE. · 7a5e4956
      	gcc/
      	* gimplify.c (gimplify_scan_omp_clauses): Add support for
      	OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
      	(gimplify_adjust_omp_clauses): Likewise.
      	* omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
      	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
      	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
      	* tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
      	(omp_clause_code_name): Likewise.
      	(walk_tree_1): Handle OMP_CLAUSE_TILE.
      	* tree.h (OMP_TILE_LIST): New macro.
      
      	gcc/c-family/
      	* c-omp.c (c_oacc_split_loop_clauses): Make TILE, GANG, WORKER, VECTOR,
      	AUTO, SEQ, INDEPENDENT and PRIVATE loop clauses.  Associate REDUCTION
      	clauses with parallel and kernels and loops.
      	* c-pragma.h (enum pragma_omp_clause): Add entries for
      	PRAGMA_OACC_CLAUSE_{INDEPENDENT,TILE,DEFAULT}.
      	* pt.c (tsubst_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,
      	NUM_WORKERS,VECTOR_LENGTH,GANG,WORKER,VECTOR,ASYNC,WAIT,TILE,AUTO,
      	INDEPENDENT,SEQ}. 
      	(tsubst_expr): Add support for OMP_CLAUSE_{KERNELS,PARALLEL,LOOP}.
      
      	gcc/c/
      	* c-parser.c (c_parser_omp_clause_name): Add support for
      	PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
      	(c_parser_omp_clause_default): Add is_oacc argument. Handle
      	default(none) in OpenACC.
      	(c_parser_oacc_shape_clause): Allow pointer variables as gang static
      	arguments.
      	(c_parser_oacc_clause_tile): New function.
      	(c_parser_oacc_all_clauses): Add support for OMP_CLAUSE_DEFAULT,
      	OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
      	(OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
      	TILE}.
      	(OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
      	(OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
      	FIRSTPRIVATE}.
      	(c_parser_omp_all_clauses): Update call to c_parser_omp_clause_default.
      	(c_parser_oacc_update): Update the error message for missing clauses.
      	* c-typeck.c (c_finish_omp_clauses): Add support for OMP_CLAUSE_TILE
      	and OMP_CLAUSE_INDEPENDENT.
      
      	gcc/cp/
      	* parser.c (cp_parser_omp_clause_name): Add support for
      	PRAGMA_OACC_CLAUSE_INDEPENDENT and PRAGMA_OACC_CLAUSE_TILE.
      	(cp_parser_oacc_shape_clause): Allow pointer variables as gang static
      	arguments.
      	(cp_parser_oacc_clause_tile): New function.
      	(cp_parser_omp_clause_default): Add is_oacc argument. Handle
      	default(none) in OpenACC.
      	(cp_parser_oacc_all_clauses): Add support for
      	(cp_parser_omp_all_clauses): Update call to
      	cp_parser_omp_clause_default.
      	PRAGMA_OACC_CLAUSE_{DEFAULT,INDEPENDENT,TILE,PRIVATE,FIRSTPRIVATE}.
      	(OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_{PRIVATE,INDEPENDENT,
      	TILE}.
      	(OACC_KERNELS_MASK): Add PRAGMA_OACC_CLAUSE_DEFAULT.
      	(OACC_PARALLEL_MASK): Add PRAGMA_OACC_CLAUSE_{DEFAULT,PRIVATE,
      	FIRSTPRIVATE}.
      	(cp_parser_oacc_update): Update the error message for missing clauses.
      	* semantics.c (finish_omp_clauses): Add support for
      	OMP_CLAUSE_INDEPENDENT and OMP_CLAUSE_TILE.
      
      	gcc/fortran/
      	* openmp.c (gfc_match_omp_clauses): Update support for the tile
      	and default clauses in OpenACC.
      	(gfc_match_oacc_update): Error when data clauses are supplied.
      	(oacc_compatible_clauses): Delete.
      	(resolve_omp_clauses): Give special care for OpenACC reductions.
      	Also update error reporting for the tile clause.
      	(resolve_oacc_loop_blocks): Update error reporting for the tile clause.
      	* trans-openmp.c (gfc_trans_omp_clauses): Update OMP_CLAUSE_SEQ. Add
      	OMP_CLAUSE_{AUTO,TILE} and add support the the gang static argument.
      	(gfc_trans_oacc_combined_directive): Update the list of clauses which
      	are split to acc loops.
      
      	gcc/testsuite/
      	* c-c++-common/goacc/combined-directives.c: New test.
      	* c-c++-common/goacc/loop-clauses.c: New test.
      	* c-c++-common/goacc/tile.c: New test.
      	* c-c++-common/goacc/loop-shape.c: Add test for pointer variable
      	as gang static arguments.
      	* c-c++-common/goacc/update-1.c: Adjust expected error message.
      	* g++.dg/goacc/template.C: New test.
      	* gfortran.dg/goacc/combined-directives.f90: New test.
      	* gfortran.dg/goacc/default.f95: New test.
      	* gfortran.dg/goacc/default_none.f95: New test.
      	* gfortran.dg/goacc/firstprivate-1.f95: New test.
      	* gfortran.dg/goacc/gang-static.f95: New test.
      	* gfortran.dg/goacc/kernels-loop-inner.f95: New test.
      	* gfortran.dg/goacc/kernels-loops-adjacent.f95: New test.
      	* gfortran.dg/goacc/list.f95: Update test.
      	* gfortran.dg/goacc/loop-2.f95: Likewise.
      	* gfortran.dg/goacc/loop-4.f95: New test.
      	* gfortran.dg/goacc/loop-5.f95: New test.
      	* gfortran.dg/goacc/loop-6.f95: New test.
      	* gfortran.dg/goacc/loop-tree-1.f90: Update test.
      	* gfortran.dg/goacc/multi-clause.f90: New test.
      	* gfortran.dg/goacc/parallel-tree.f95: Update test.
      	* gfortran.dg/goacc/update.f95: New test.
      
      
      Co-Authored-By: James Norris <jnorris@codesourcery.com>
      Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
      Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
      Co-Authored-By: Tom de Vries <tom@codesourcery.com>
      
      From-SVN: r229832
      Cesar Philippidis committed
    • PR c++/67942 - diagnose placement new buffer overflow · 906f9ad9
      gcc/cp/
      	* cp/init.c (warn_placement_new_too_small): Avoid assuming
      	the size of the first operand of placement new or its type
      	is known.
      
      gcc/testsuite/
      	* g++.dg/warn/Wplacement-new-size.C: Exercise placement new
      	invocations where the size of the destination buffer object
      	or its type (or both) is unknown.
      
      From-SVN: r229831
      Martin Sebor committed
    • Daily bump. · 925b6a76
      From-SVN: r229830
      GCC Administrator committed
  2. 05 Nov, 2015 13 commits
    • PR c++/67942 - diagnose placement new buffer overflow · e2f5cc96
      gcc/
              * invoke.texi (-Wplacement-new): Document new option.
      	* gcc/testsuite/g++.dg/warn/Wplacement-new-size.C: New test.
      
      gcc/c-family/
              * c.opt (-Wplacement-new): New option.
      
      gcc/cp/
      	* cp/init.c (warn_placement_new_too_small): New function.
      	(build_new_1): Call it.
      
      gcc/testsuite/
              * g++.dg/warn/Wplacement-new-size.C: New test.
      
      From-SVN: r229827
      Martin Sebor committed
    • [PATCH] tree-scalar-evolution.c: Handle LSHIFT by constant · 60f2d2f3
      gcc/:
      
      	PR tree-optimization/65963
      	* tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
      	LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
      
      gcc/testsuite/:
      
      	* gcc.dg/pr68112.c: New.
      	* gcc.dg/vect/vect-strided-shift-1.c: New.
      
      From-SVN: r229825
      Alan Lawrence committed
    • re PR c/68090 (VLA compound literal -- "confused by earlier errors, bailing out") · bfcfbfa0
      	PR c/68090
      	* c-parser.c (c_parser_postfix_expression_after_paren_type): Don't
      	deal with pre-evaluation on invalid types.
      
      	* gcc.dg/pr68090.c: New test.
      
      From-SVN: r229823
      Marek Polacek committed
    • [Patch ifcvt] Teach RTL ifcvt to handle multiple simple set instructions · 5d819bb7
      gcc/
      
      	* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
      	(noce_convert_multiple_sets): Likewise.
      	(noce_process_if_block): Call them.
      
      gcc/testsuite/
      
      	* gcc.dg/ifcvt-4.c: New.
      
      From-SVN: r229822
      James Greenhalgh committed
    • re PR c++/67846 (ICE on code with lambda expression on x86_64-linux-gnu in… · 7e4756e8
      re PR c++/67846 (ICE on code with lambda expression on x86_64-linux-gnu in check_return_expr, at cp/typeck.c:8609)
      
      /cp
      2015-11-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67846
      	* parser.c (cp_parser_lambda_body): Check lambda_return_type
      	return value.
      	* typeck2.c (cxx_incomplete_type_diagnostic): Print member or
      	member function used invalidly.
      
      /testsuite
      2015-11-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67846
      	* g++.dg/cpp0x/lambda/lambda-ice15.C: New.
      
      From-SVN: r229819
      Paolo Carlini committed
    • gimple-fold.c: Include omp-low.h. · 451e8dae
      	* gimple-fold.c: Include omp-low.h.
      	(fold_internal_goacc_dim): New.
      	(gimple_fold_call): Call it.
      
      From-SVN: r229816
      Nathan Sidwell committed
    • gcc/ · e01d41e5
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* builtin-types.def
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
      	* cgraph.h (enum cgraph_simd_clone_arg_type): Add
      	SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
      	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
      	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
      	(struct cgraph_simd_clone_arg): Adjust comment.
      	* omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
      	to GOMP_target_ext.  Add num_teams and thread_limit arguments.
      	(BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
      	to GOMP_target_data_ext.
      	(BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
      	to GOMP_target_update_ext.
      	(BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
      	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
      	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
      	BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
      	BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
      	BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
      	* tree-core.h (enum omp_clause_schedule_kind): Add
      	OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
      	OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
      	OMP_CLAUSE_SCHEDULE_LAST value.
      	* tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
      	OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
      	* tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
      	OMP_FOR_CHECK.  Remove comment.
      	* tree-pretty-print.c (dump_omp_clause): Handle
      	GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
      	Simplify.  Print schedule clause modifiers.
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Add
      	SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
      	cases.
      	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
      	(omp_default_clause): Tweak for
      	private/firstprivate/is_device_ptr variables on target
      	construct and use_device_ptr on target data.
      	(omp_check_private): Likewise.
      	(omp_notice_variable): For references check whether what it refers
      	to has mappable type, rather than the reference itself.
      	(omp_is_private): Diagnose linear iteration variables on non-simd
      	constructs.
      	(omp_no_lastprivate): Return true only for Fortran.
      	(gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
      	GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
      	Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
      	GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
      	based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
      	lastprivate and linear when combined with distribute.  Gimplify
      	variable low-bound for array reduction.  Look through
      	POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
      	reductions.
      	(gimplify_adjust_omp_clauses_1): For implicit references to
      	variables with reference type and when not ref to scalar or
      	ref to pointer, map what they refer to using tofrom and
      	use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
      	(gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
      	from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
      	Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
      	Diagnose the same var on both firstprivate and lastprivate on
      	distribute construct.
      	(gimplify_omp_for): Fix up handling of predetermined
      	lastprivate or linear iter vars when combined with distribute.
      	(find_omp_teams, computable_teams_clause, optimize_target_teams): New
      	functions.
      	(gimplify_omp_workshare): Call optimize_target_teams.
      	* omp-low.c (struct omp_region): Add sched_modifiers field.
      	(struct omp_for_data): Likewise.
      	(omp_any_child_fn_dumped): New variable.
      	(extract_omp_for_data): Fill in sched_modifiers, and mask out
      	OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
      	from sched_kind.
      	(determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
      	bits of OMP_CLAUSE_SCHED_KIND.
      	(scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
      	drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
      	for array section reductions.
      	(add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
      	for distribute parallel for, if there are lastprivate clauses on the
      	for.
      	(lower_rec_input_clauses): Handle non-zero low-bound on array
      	section reductions.
      	(lower_reduction_clauses): Likewise.
      	(lower_send_clauses): Look through POINTER_PLUS_EXPR
      	for array section reductions.
      	(expand_parallel_call): Use nonmonotonic entrypoints for
      	nonmonotonic: dynamic/guided.
      	(expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
      	child_fn if current_function_decl has assembler name set, but child_fn
      	does not.  Dump the header and IL of the child function when not in SSA
      	form.
      	(expand_omp_target): Likewise.  Pass num_teams and thread_limit
      	arguments to BUILT_IN_GOMP_TARGET.
      	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
      	Initialize the extra _looptemp_ clause to fd->loop.n2.
      	(expand_omp_for): Use nonmonotonic entrypoints for
      	nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
      	(expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
      	again if we have dumped any child functions.
      	(lower_omp_for_lastprivate): Determine the right count variable
      	for distribute simd, or distribute parallel for{, simd}.
      	(lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
      	and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
      	support.
      	(simd_clone_clauses_extract): Handle variable step
      	for references and arguments passed by reference.
      	(simd_clone_mangle): Mangle ref/uval/val variable steps.
      	(simd_clone_adjust_argument_types): Handle
      	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
      	SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
      	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
      	SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
      	(simd_clone_linear_addend): New function.
      	(simd_clone_adjust): Handle variable step like similarly
      	to constant step, use simd_clone_linear_addend to determine
      	the actual step at runtime.
      gcc/c-family/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      
      	* c-common.h (c_finish_omp_atomic): Add TEST argument.
      	(c_omp_check_loop_iv, c_omp_check_loop_iv_exprs): New prototypes.
      	* c-omp.c (c_finish_omp_atomic): Add TEST argument.  Don't call
      	save_expr or create_tmp_var* if TEST is true.
      	(c_finish_omp_for): Store OMP_FOR_ORIG_DECLS always.
      	Don't call add_stmt here.
      	(struct c_omp_check_loop_iv_data): New type.
      	(c_omp_check_loop_iv_r, c_omp_check_loop_iv,
      	c_omp_check_loop_iv_exprs): New functions.
      	(c_omp_split_clauses): Adjust for lastprivate being allowed on
      	distribute.
      	(c_omp_declare_simd_clauses_to_numbers): Change
      	OMP_CLAUSE_LINEAR_VARIABLE_STRIDE OMP_CLAUSE_LINEAR_STEP into numbers.
      	(c_omp_declare_simd_clauses_to_decls): Similarly change those
      	from numbers to PARM_DECLs.
      gcc/c/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* c-parser.c: Include context.h and gimple-expr.h.
      	(c_parser_omp_clause_schedule): Parse schedule modifiers, diagnose
      	monotonic together with nonmonotonic.
      	(c_parser_omp_for_loop): Call c_omp_check_loop_iv.  Call add_stmt here.
      	(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
      	(c_parser_omp_target_data, c_parser_omp_target_enter_data,
      	c_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER.
      	(c_parser_omp_target): Likewise.  Evaluate num_teams and thread_limit
      	expressions on combined target teams before the target.
      	(c_parser_omp_declare_target): If decl has "omp declare target" or
      	"omp declare target link" attribute, and cgraph or varpool node already
      	exists, then set corresponding flags.  Call c_finish_omp_clauses
      	in the parenthesized extended-list syntax case.
      	* c-decl.c (c_decl_attributes): Don't diagnose block scope vars inside
      	declare target.
      	* c-typeck.c (handle_omp_array_sections_1): Allow non-zero low-bound
      	on OMP_CLAUSE_REDUCTION array sections.
      	(handle_omp_array_sections): Encode low-bound into the MEM_REF, either
      	into the constant offset, or for variable low-bound using
      	POINTER_PLUS_EXPR.  For structure element based array sections use
      	GOMP_MAP_ALWAYS_POINTER instead of GOMP_MAP_FIRSTPRIVATE_POINTER.
      	(c_finish_omp_clauses): Drop generic_field_head, structure
      	elements are now always mapped even as array section bases,
      	diagnose same var in data sharing and mapping clauses.  Diagnose if
      	linear step on declare simd is neither a constant nor a uniform
      	parameter.  Look through POINTER_PLUS_EXPR for array section
      	reductions.  Diagnose the same var or function appearing multiple
      	times on the same directive.  Fix up wording for the to clause if t
      	is neither a FUNCTION_DECL nor a VAR_DECL.  Diagnose nonmonotonic
      	modifier on kinds other than dynamic or guided or nonmonotonic
      	modifier together with ordered clause.
      gcc/cp/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* cp-tree.h (finish_omp_for): Add ORIG_INITS argument.
      	(omp_privatize_field): Add SHARED argument.
      	* parser.c: Include context.h.
      	(cp_parser_omp_clause_schedule): Parse schedule
      	modifiers, diagnose monotonic together with nonmonotonic.
      	(cp_parser_omp_clause_linear): Add DECLARE_SIMD argument.  Parse
      	parameter name as linear step as id-expression rather than expression.
      	(cp_parser_omp_all_clauses): Adjust caller.
      	(cp_parser_omp_for_loop_init): Add ORIG_INIT argument,
      	initialize it.  Adjust omp_privatize_field caller.
      	(cp_parser_omp_for_loop): Compute orig_inits, pass it's address
      	to finish_omp_for.
      	(OMP_DISTRIBUTE_CLAUSE_MASK): Add lastprivate clause.
      	(cp_parser_omp_target_data,
      	cp_parser_omp_target_enter_data,
      	cp_parser_omp_target_exit_data): Allow GOMP_MAP_ALWAYS_POINTER
      	and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
      	(cp_parser_omp_target): Likewise.  Evaluate num_teams and
      	thread_limit expressions on combined target teams before the target.
      	(cp_parser_omp_declare_target): If decl has "omp declare target" or
      	"omp declare target link" attribute, and cgraph or varpool node already
      	exists, then set corresponding flags.  Call finish_omp_clauses
      	in the parenthesized extended-list syntax case.  Call
      	cp_parser_require_pragma_eol instead of cp_parser_skip_to_pragma_eol.
      	(cp_parser_omp_end_declare_target): Call cp_parser_require_pragma_eol
      	instead of cp_parser_skip_to_pragma_eol.
      	* decl2.c (cplus_decl_attributes): Don't diagnose block scope vars inside
      	declare target.
      	* pt.c (tsubst_omp_clauses): If OMP_CLAUSE_LINEAR_VARIABLE_STRIDE,
      	use tsubst_omp_clause_decl instead of tsubst_expr on
      	OMP_CLAUSE_LINEAR_STEP.  Handle non-static data members in shared
      	clauses.
      	(tsubst_omp_for_iterator): Adjust omp_privatize_field caller.
      	(tsubst_find_omp_teams): New function.
      	(tsubst_expr): Evaluate num_teams and thread_limit expressions on
      	combined target teams before the target.  Use OMP_FOR_ORIG_DECLS for
      	all OpenMP/OpenACC/Cilk+ looping constructs.  Adjust finish_omp_for
      	caller.
      	* semantics.c (omp_privatize_field): Add SHARED argument, if true,
      	always create artificial var and never put it into the hash table
      	or vector.
      	(handle_omp_array_sections_1): Adjust omp_privatize_field caller.
      	Allow non-zero low-bound on OMP_CLAUSE_REDUCTION array sections.
      	(handle_omp_array_sections): For structure element
      	based array sections use GOMP_MAP_ALWAYS_POINTER instead of
      	GOMP_MAP_FIRSTPRIVATE_POINTER.  Encode low-bound into the MEM_REF,
      	either into the constant offset, or for variable low-bound using
      	POINTER_PLUS_EXPR.
      	(finish_omp_clauses): Adjust omp_privatize_field caller.  Drop
      	generic_field_head, structure elements are now always mapped even
      	as array section bases, diagnose same var in data sharing and
      	mapping clauses.  For references map what they refer to using
      	GOMP_MAP_ALWAYS_POINTER for structure elements and
      	GOMP_MAP_FIRSTPRIVATE_REFERENCE otherwise.  Diagnose if linear step
      	on declare simd is neither a constant nor a uniform parameter.
      	Allow non-static data members on shared clauses.  Look through
      	POINTER_PLUS_EXPR for array section reductions.  Diagnose nonmonotonic
      	modifier on kinds other than dynamic or guided or nonmonotonic
      	modifier together with ordered clause.  Diagnose the same var or
      	function appearing multiple times on the same directive.  Fix up
      	wording for the to clause if t is neither a FUNCTION_DECL nor a
      	VAR_DECL, use special wording for OVERLOADs and TEMPLATE_ID_EXPR.
      	(handle_omp_for_class_iterator): Add ORIG_DECLS argument.  Call
      	c_omp_check_loop_iv_exprs on cond.
      	(finish_omp_for): Add ORIG_INITS argument.  Call
      	c_omp_check_loop_iv_exprs on ORIG_INITS elements.  Adjust
      	handle_omp_for_class_iterator caller.  Call c_omp_check_loop_iv.
      	Call add_stmt.
      	(finish_omp_atomic): Adjust c_finish_omp_atomic caller.
      gcc/fortran/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      
      	* types.def (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
      gcc/testsuite/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      
      	* c-c++-common/gomp/clauses-2.c (foo): Adjust for diagnostics
      	of variables in both data sharing and mapping clauses and for
      	structure element based array sections being mapped rather than
      	privatized.
      	* c-c++-common/gomp/declare-target-2.c: Add various new tests.  Adjust
      	expected diagnostics wording in one case.
      	* c-c++-common/gomp/distribute-1.c: New test.
      	* c-c++-common/gomp/element-1.c: New test.
      	* c-c++-common/gomp/pr61486-2.c: Add #pragma omp declare target
      	and #pragma omp end declare target pair around the function.
      	Change s from a parameter to a file scope variable.
      	* c-c++-common/gomp/pr67521.c: Add dg-error directives.
      	* c-c++-common/gomp/reduction-1.c (foo): Don't expect diagnostics
      	on non-zero low-bound in reduction array sections.  Add further
      	tests.
      	* c-c++-common/gomp/schedule-modifiers-1.c: New test.
      	* c-c++-common/gomp/target-teams-1.c: New test.
      	* gcc.dg/gomp/declare-simd-1.c: Add scan-assembler-times directives
      	for expected mangling on x86_64/i?86.
      	* gcc.dg/gomp/declare-simd-3.c: New test.
      	* gcc.dg/gomp/declare-simd-4.c: New test.
      	* gcc.dg/gomp/for-20.c: New test.
      	* gcc.dg/gomp/for-21.c: New test.
      	* gcc.dg/gomp/for-22.c: New test.
      	* gcc.dg/gomp/for-23.c: New test.
      	* gcc.dg/gomp/for-24.c: New test.
      	* gcc.dg/gomp/linear-1.c: New test.
      	* gcc.dg/gomp/loop-1.c: New test.
      	* g++.dg/gomp/atomic-17.C: New test.
      	* g++.dg/gomp/clause-1.C (T::test): Don't expect error on
      	non-static data member in shared clause.  Add single construct.
      	* g++.dg/gomp/declare-simd-1.C: Add dg-options.  Add
      	scan-assembler-times directives for expected mangling on x86_64/i?86.
      	* g++.dg/gomp/declare-simd-3.C: Likewise.
      	* g++.dg/gomp/declare-simd-4.C: New test.
      	* g++.dg/gomp/declare-simd-5.C: New test.
      	* g++.dg/gomp/declare-target-1.C: New test.
      	* g++.dg/gomp/linear-2.C: New test.
      	* g++.dg/gomp/loop-1.C: New test.
      	* g++.dg/gomp/loop-2.C: New test.
      	* g++.dg/gomp/loop-3.C: New test.
      	* g++.dg/gomp/member-2.C (B::m2, B::m4): Don't expect error on
      	non-static data member in shared clause.
      	* g++.dg/gomp/member-3.C: New test.
      	* g++.dg/gomp/member-4.C: New test.
      	* g++.dg/gomp/pr38639.C (foo): Adjust dg-error.
      	(bar): Remove dg-message.
      	* g++.dg/gomp/target-teams-1.C: New test.
      include/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* gomp-constants.h (GOMP_MAP_FLAG_SPECIAL_2): Define.
      	(GOMP_MAP_FLAG_ALWAYS): Remove.
      	(enum gomp_map_kind): Use GOMP_MAP_FLAG_SPECIAL_2 instead of
      	GOMP_MAP_FLAG_ALWAYS for GOMP_MAP_ALWAYS_TO, GOMP_MAP_ALWAYS_FROM,
      	GOMP_MAP_ALWAYS_TOFROM, GOMP_MAP_STRUCT, GOMP_MAP_RELEASE.
      	Add GOMP_MAP_ALWAYS_POINTER and GOMP_MAP_FIRSTPRIVATE_REFERENCE.
      	(GOMP_MAP_ALWAYS_P): Define.
      	(GOMP_TARGET_FLAG_NOWAIT): Adjust comment.
      libgomp/
      2015-11-05  Jakub Jelinek  <jakub@redhat.com>
      	    Ilya Verbin  <ilya.verbin@intel.com>
      
      	* libgomp_g.h (GOMP_loop_nonmonotonic_dynamic_next,
      	GOMP_loop_nonmonotonic_dynamic_start,
      	GOMP_loop_nonmonotonic_guided_next,
      	GOMP_loop_nonmonotonic_guided_start,
      	GOMP_loop_ull_nonmonotonic_dynamic_next,
      	GOMP_loop_ull_nonmonotonic_dynamic_start,
      	GOMP_loop_ull_nonmonotonic_guided_next,
      	GOMP_loop_ull_nonmonotonic_guided_start,
      	GOMP_parallel_loop_nonmonotonic_dynamic,
      	GOMP_parallel_loop_nonmonotonic_guided): New prototypes.
      	(GOMP_target_41): Renamed to ...
      	(GOMP_target_ext): ... this.  Add num_teams and thread_limit
      	arguments.
      	(GOMP_target_data_41): Renamed to ...
      	(GOMP_target_data_ext): ... this.
      	(GOMP_target_update_41): Renamed to ...
      	(GOMP_target_update_ext): ... this.
      	* libgomp.map (GOMP_4.5): Export GOMP_target_ext,
      	GOMP_target_data_ext and GOMP_target_update_ext instead of
      	GOMP_target_41, GOMP_target_data_41 and GOMP_target_update_41.
      	Export GOMP_loop_nonmonotonic_dynamic_next,
      	GOMP_loop_nonmonotonic_dynamic_start,
      	GOMP_loop_nonmonotonic_guided_next,
      	GOMP_loop_nonmonotonic_guided_start,
      	GOMP_loop_ull_nonmonotonic_dynamic_next,
      	GOMP_loop_ull_nonmonotonic_dynamic_start,
      	GOMP_loop_ull_nonmonotonic_guided_next,
      	GOMP_loop_ull_nonmonotonic_guided_start,
      	GOMP_parallel_loop_nonmonotonic_dynamic and
      	GOMP_parallel_loop_nonmonotonic_guided.
      	* loop.c (GOMP_parallel_loop_nonmonotonic_dynamic,
      	GOMP_parallel_loop_nonmonotonic_guided,
      	GOMP_loop_nonmonotonic_dynamic_start,
      	GOMP_loop_nonmonotonic_guided_start,
      	GOMP_loop_nonmonotonic_dynamic_next,
      	GOMP_loop_nonmonotonic_guided_next): New aliases or functions.
      	* loop_ull.c (GOMP_loop_ull_nonmonotonic_dynamic_start,
      	GOMP_loop_ull_nonmonotonic_guided_start,
      	GOMP_loop_ull_nonmonotonic_dynamic_next,
      	GOMP_loop_ull_nonmonotonic_guided_next): Likewise.
      	* target.c (gomp_map_0len_lookup, gomp_map_val): New inline
      	functions.
      	(gomp_map_vars): Handle GOMP_MAP_ALWAYS_POINTER.  For
      	GOMP_MAP_ZERO_LEN_ARRAY_SECTION use gomp_map_0len_lookup.
      	Use gomp_map_val function.
      	(gomp_target_fallback_firstprivate): New static function.
      	(GOMP_target_41): Renamed to ...
      	(GOMP_target_ext): ... this.  Add num_teams and thread_limit
      	arguments.  Move firstprivate fallback handling into a new
      	function.
      	(GOMP_target_data_41): Renamed to ...
      	(GOMP_target_data_ext): ... this.
      	(GOMP_target_update_41): Renamed to ...
      	(GOMP_target_update_ext): ... this.
      	(gomp_exit_data): For GOMP_MAP_*ZERO_LEN* use
      	gomp_map_0len_lookup instead of gomp_map_lookup.
      	(omp_target_is_present): Use gomp_map_0len_lookup instead of
      	gomp_map_lookup.
      	* testsuite/libgomp.c/target-28.c: Likewise.
      	* testsuite/libgomp.c/monotonic-1.c: New test.
      	* testsuite/libgomp.c/monotonic-2.c: New test.
      	* testsuite/libgomp.c/nonmonotonic-1.c: New test.
      	* testsuite/libgomp.c/nonmonotonic-2.c: New test.
      	* testsuite/libgomp.c/pr66199-5.c: New test.
      	* testsuite/libgomp.c/pr66199-6.c: New test.
      	* testsuite/libgomp.c/pr66199-7.c: New test.
      	* testsuite/libgomp.c/pr66199-8.c: New test.
      	* testsuite/libgomp.c/pr66199-9.c: New test.
      	* testsuite/libgomp.c/reduction-11.c: New test.
      	* testsuite/libgomp.c/reduction-12.c: New test.
      	* testsuite/libgomp.c/reduction-13.c: New test.
      	* testsuite/libgomp.c/reduction-14.c: New test.
      	* testsuite/libgomp.c/reduction-15.c: New test.
      	* testsuite/libgomp.c/target-12.c (main): Adjust for
      	omp_target_is_present change for one-past-last element.
      	* testsuite/libgomp.c/target-17.c (foo): Drop tests where
      	the same var is both mapped and privatized.
      	* testsuite/libgomp.c/target-19.c (foo): Adjust for different
      	handling of zero-length array sections.
      	* testsuite/libgomp.c/target-28.c: New test.
      	* testsuite/libgomp.c/target-29.c: New test.
      	* testsuite/libgomp.c/target-30.c: New test.
      	* testsuite/libgomp.c/target-teams-1.c: New test.
      	* testsuite/libgomp.c++/member-6.C: New test.
      	* testsuite/libgomp.c++/member-7.C: New test.
      	* testsuite/libgomp.c++/monotonic-1.C: New test.
      	* testsuite/libgomp.c++/monotonic-2.C: New test.
      	* testsuite/libgomp.c++/nonmonotonic-1.C: New test.
      	* testsuite/libgomp.c++/nonmonotonic-2.C: New test.
      	* testsuite/libgomp.c++/pr66199-3.C: New test.
      	* testsuite/libgomp.c++/pr66199-4.C: New test.
      	* testsuite/libgomp.c++/pr66199-5.C: New test.
      	* testsuite/libgomp.c++/pr66199-6.C: New test.
      	* testsuite/libgomp.c++/pr66199-7.C: New test.
      	* testsuite/libgomp.c++/pr66199-8.C: New test.
      	* testsuite/libgomp.c++/pr66199-9.C: New test.
      	* testsuite/libgomp.c++/reduction-11.C: New test.
      	* testsuite/libgomp.c++/reduction-12.C: New test.
      	* testsuite/libgomp.c++/target-13.C: New test.
      	* testsuite/libgomp.c++/target-14.C: New test.
      	* testsuite/libgomp.c++/target-15.C: New test.
      	* testsuite/libgomp.c++/target-16.C: New test.
      	* testsuite/libgomp.c++/target-17.C: New test.
      	* testsuite/libgomp.c++/target-18.C: New test.
      	* testsuite/libgomp.c++/target-19.C: New test.
      
      Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
      
      From-SVN: r229814
      Jakub Jelinek committed
    • target.def (goacc.dim_limit): New hook. · bd751975
      	* target.def (goacc.dim_limit): New hook.
      	* targhooks.h (default_goacc_dim_limit): Declare.
      	* doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
      	* doc/tm.texi: Rebuilt.
      	* omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
      	* omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
      	(default_goacc_dim_limit): New.
      	* config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
      	(nvptx_goacc_dim_limit) New.
      	(TARGET_GOACC_DIM_LIMIT): Override.
      	* tree-vrp.c: Include omp-low.h, target.h.
      	(extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
      	IFN_GOACC_DIM_POS.
      
      From-SVN: r229809
      Nathan Sidwell committed
    • tree-vect-generic.c (do_compare): Use -1 for true result instead of 1. · 337d2167
      gcc/
      
      	* tree-vect-generic.c (do_compare): Use -1 for true
      	result instead of 1.
      
      From-SVN: r229808
      Ilya Enkovich committed
    • [Patch AArch64] Switch constant pools to separate rodata sections. · 61da5e46
      
              Now that PR63304 is fixed and we have an option to address
      any part of the memory using adrp / add or adrp / ldr instructions
      it makes sense to switch out literal pools into their own
      mergeable sections by default.
      
      This would mean that by default we could now start getting
      the benefits of constant sharing across the board, potentially
      improving code size. The other advantage of doing so, for the
      security conscious is that this prevents intermingling of literal
      pools with code.
      
      Wilco's kindly done some performance measurements and suggests that
      there is not really a performance regression in doing this.
      I've looked at the code size for SPEC2k6 today at -Ofast and
      in general there is a good code size improvement as expected
      by sharing said constants.
      
      Tested on aarch64-none-elf with no regressions and bootstrapped
      and regression tested in my tree for a number of days now.
      
      2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
              * config/aarch64/aarch64.c
              (aarch64_can_use_per_function_literal_pools_p): New.
              (aarch64_use_blocks_for_constant_p): Adjust declaration
              and use aarch64_can_use_function_literal_pools_p.
              (aarch64_select_rtx_section): Update.
      
      From-SVN: r229795
      Ramana Radhakrishnan committed
    • targhooks.c (default_get_mask_mode): Use BLKmode in case target doesn't support… · e219e495
      targhooks.c (default_get_mask_mode): Use BLKmode in case target doesn't support required vector mode.
      
      gcc/
      
      2015-10-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
      
      	* targhooks.c (default_get_mask_mode): Use BLKmode in
      	case target doesn't support required vector mode.
      	* stor-layout.c (layout_type); Check for BLKmode.
      
      From-SVN: r229794
      Ilya Enkovich committed
    • loadpre2.c: Avoid undefined behavior due to uninitialized variables. · 175a31e4
      2015-11-05  Richard Biener  <rguenther@suse.de>
      
      	* gcc.dg/tree-ssa/loadpre2.c: Avoid undefined behavior due to
      	uninitialized variables.
      	* gcc.dg/tree-ssa/loadpre21.c: Likewise.
      	* gcc.dg/tree-ssa/loadpre22.c: Likewise.
      	* gcc.dg/tree-ssa/loadpre23.c: Likewise.
      	* gcc.dg/tree-ssa/loadpre24.c: Likewise.
      	* gcc.dg/tree-ssa/loadpre25.c: Likewise.
      	* gcc.dg/tree-ssa/loadpre4.c: Likewise.
      	* gcc.dg/ipa/inlinehint-2.c: Likewise.
      	* gcc.dg/ipa/pure-const-2.c: Likewise.
      	* gcc.dg/tree-ssa/loop-1.c: Likewise.
      	* gcc.dg/tree-ssa/loop-23.c: Likewise.
      	* gcc.dg/tree-ssa/pr22051-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-pre-3.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-sccvn-3.c: Likewise.
      	* gcc.dg/vect/pr30858.c: Likewise.
      	* gcc.dg/vect/pr33866.c: Likewise.
      	* gcc.dg/vect/pr37027.c: Likewise.
      	* c-c++-common/ubsan/null-10.c: Likewise.
      	* gcc.target/i386/incoming-8.c: Likewise.
      
      From-SVN: r229793
      Richard Biener committed
    • Daily bump. · 7f77442b
      From-SVN: r229790
      GCC Administrator committed
  3. 04 Nov, 2015 8 commits
    • (cp_parser_oacc_single_int_clause): New function. · 3ceed675
      	gcc/cp/
      	* (cp_parser_oacc_single_int_clause): New function.
      	(cp_parser_oacc_clause_vector_length): Delete.
      	(cp_parser_omp_clause_num_gangs): Delete.
      	(cp_parser_omp_clause_num_workers): Delete.
      	(cp_parser_oacc_all_clauses): Use cp_parser_oacc_single_int_clause
      	for num_gangs, num_workers and vector_length.
      
      From-SVN: r229786
      Cesar Philippidis committed
    • remove parameter_rename_map · 24bc7503
      This map was used in the transition to the new scop detection: with the new scop
      detection, we do not need this map anymore.
      
             * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
             Remove use of parameter_rename_map.
             (copy_def): Remove.
             (copy_internal_parameters): Remove.
             (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
             * sese.c (new_sese_info): Do not initialize parameter_rename_map.
             (free_sese_info): Do not free parameter_rename_map.
             (set_rename): Do not use parameter_rename_map.
             (rename_uses): Update call to set_rename.
             (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
             * sese.h (parameter_rename_map_t): Remove.
             (struct sese_info_t): Remove field parameter_rename_map.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r229783
      Aditya Kumar committed
    • improve debug of codegen · 1b38d3ec
      - fix printing of ISL stmt and parameter names
      - move dot_scop* functions outside of anonymous namespace.
      
        * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
        (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
        * graphite-scop-detection.c (dot_all_scops_1): Moved out of
        anonymous namespace.
        * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
        (isl_id_for_pbb): Use a buffer of size 10.
        (isl_id_for_ssa_name): Same.
        * sese.c (set_rename): Add more dumps.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r229782
      Aditya Kumar committed
    • omp-low.c (struct omp_context): Remove reduction_map field. · b76e9910
      	* omp-low.c (struct omp_context): Remove reduction_map field.
      	(lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
      	(new_omp_context, delete_omp_context, scan_omp_target): Remove
      	reduction_map handling.
      	(lower_omp_target): Remove obsolete openacc reduction handling.
      
      From-SVN: r229781
      Nathan Sidwell committed
    • nvptx.c (nvptx_goacc_validate_dims): Add checking. · ccc8282b
      	gcc/
      	* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
      
      	libgomp/
      	* testsuite/libgomp.oacc-fortran/reduction-1.f90: Fix dimensions
      	and reduction copy.
      	* testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
      	* testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
      	* testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
      	* testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New.
      
      From-SVN: r229780
      Nathan Sidwell committed
    • * gnat.dg/slice9.adb: New test. · a3afde42
      From-SVN: r229779
      Eric Botcazou committed
    • loop-red-g-1.c: New. · 5d6823a2
      	* libgomp.oacc-c-c++-common/loop-red-g-1.c: New.
      	* libgomp.oacc-c-c++-common/loop-red-gwv-1.c: New.
      	* libgomp.oacc-c-c++-common/loop-red-v-1.c: New.
      	* libgomp.oacc-c-c++-common/loop-red-v-2.c: New.
      	* libgomp.oacc-c-c++-common/loop-red-w-1.c: New.
      	* libgomp.oacc-c-c++-common/loop-red-w-2.c: New.
      	* libgomp.oacc-c-c++-common/loop-red-wv-1.c: New.
      	* libgomp.oacc-fortran/reduction-5.f90: Avoid reference var.
      
      From-SVN: r229770
      Nathan Sidwell committed
    • * gfortran.dg/goacc/reduction-2.f95: Delete. · 4d49f964
      From-SVN: r229769
      Nathan Sidwell committed