Ian Lance Taylor [Wed, 2 Dec 2015 19:27:58 +0000 (19:27 +0000)]
 
re PR go/66147 (go fails to cross build)
./:	PR go/66147
	* Makefile.tpl (HOST_EXPORTS): Add XGCC_FLAGS_FOR_TARGET.
	* Makefile.in: Regenerate.
gotools/:
	PR go/66147
	* Makefile.am (GOCOMPILER): In NATIVE case, add
	$(XGCC_FLAGS_FOR_TARGET).
From-SVN: r231199
Jason Merrill [Wed, 2 Dec 2015 19:04:48 +0000 (14:04 -0500)]
 
Do constant folding in warn_* functions.
gcc/c-family/
	* c-common.c (fold_for_warn): New.
	(warn_logical_operator, warn_tautological_cmp)
	(check_function_arguments_recurse, maybe_warn_bool_compare): Use it.
gcc/cp/
	* call.c (build_new_op_1): Don't fold arguments to
	warn_logical_operator or maybe_warn_bool_compare.
From-SVN: r231198
Jason Merrill [Wed, 2 Dec 2015 19:04:43 +0000 (14:04 -0500)]
 
Introduce cp_fold_rvalue.
	* cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): New.
	(c_fully_fold): Use cp_fold_rvalue.
	(cp_fold): Use them for rvalue operands.
From-SVN: r231197
Jason Merrill [Wed, 2 Dec 2015 19:04:38 +0000 (14:04 -0500)]
 
Define c_fully_fold separately for C and C++.
gcc/c-family/
	* c-common.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
	(c_fully_fold_internal, decl_constant_value_for_optimization):
	Move to c/c-fold.c.
	* c-common.h: Don't declare decl_constant_value_for_optimization.
gcc/c/
	* c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
	(c_fully_fold_internal, decl_constant_value_for_optimization):
	Move from c-common.c.
	* c-tree.h: Declare decl_constant_value_for_optimization.
	* Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
gcc/cp/
	* cp-gimplify.c (c_fully_fold): Define.
From-SVN: r231196
Jason Merrill [Wed, 2 Dec 2015 19:04:32 +0000 (14:04 -0500)]
 
* cp-gimplify.c (cp_fold): Use fold_build*.
From-SVN: r231195
Joseph Myers [Wed, 2 Dec 2015 18:24:23 +0000 (18:24 +0000)]
 
Fix TYPE_MAIN_VARIANT construction for arrays of qualified typedefs (PR c/68162).
PR c/68162 reports a spurious warning about incompatible types
involving arrays of const double, constructed in one place using a
typedef for const double and in another place literally using const
double.
The problem is that the array of the typedef was incorrectly
constructed without a TYPE_MAIN_VARIANT being an array of unqualified
elements as it should be (though it seems some more recent change
resulted in this producing incorrect diagnostics, likely the support
for C++-style handling of arrays of qualified type).  This patch fixes
the logic in grokdeclarator to determine first_non_attr_kind, which is
used to determine whether it is necessary to use the TYPE_MAIN_VARIANT
of the type in the declaration specifiers.
However, fixing that logic introduces a failure of
gcc.dg/debug/dwarf2/pr47939-4.c, a test introduced along with
first_non_attr_kind.  Thus, it is necessary to track the original
qualified typedef when qualifying an array type, to use it rather than
a newly-constructed type, to avoid regressing regarding typedef names
in debug info.  This is done along lines I suggested in
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47939#c6>: track the
original type and the number of levels of array indirection at which
it appears, and, in possibly affected cases, pass extra arguments to
c_build_qualified_type (with default arguments to avoid needing to
pass those extra arguments explicitly everywhere).  Given Richard's
recent fix to dwarf2out.c, this allows the C bug to be fixed without
causing debug information regressions.
Bootstrapped with no regressions on x86_64-pc-linux-gnu.
gcc/c:
	PR c/68162
	* c-decl.c (grokdeclarator): Set first_non_attr_kind before
	following link from declarator to next declarator.  Track original
	qualified type and pass it to c_build_qualified_type.
	* c-typeck.c (c_build_qualified_type): Add arguments
	orig_qual_type and orig_qual_indirect.
gcc/c-family:
	PR c/68162
	* c-common.h (c_build_qualified_type): Add extra default
	arguments.
gcc/cp:
	PR c/68162
	* tree.c (c_build_qualified_type): Add extra arguments.
gcc/testsuite:
	PR c/68162
	* gcc.dg/pr68162-1.c: New test.
From-SVN: r231194
Matthias Klose [Wed, 2 Dec 2015 18:18:51 +0000 (18:18 +0000)]
 
configure.ac: Move AM_ENABLE_MULTILIB before GCC_LIBSTDCXX_RAW_CXX_FLAGS.
2015-12-02  Matthias Klose  <doko@ubuntu.com>
        * configure.ac: Move AM_ENABLE_MULTILIB before
        GCC_LIBSTDCXX_RAW_CXX_FLAGS.
        * configure: Regenerate.
From-SVN: r231193
Nathan Sidwell [Wed, 2 Dec 2015 17:28:32 +0000 (17:28 +0000)]
 
nvptx.c (enum nvptx_shuffle_kind): New.
	* config/nvptx/nvptx.c (enum nvptx_shuffle_kind): New.  Absorb
	SHUFFLE defines.
	(nvptx_gen_shuffle, nvptx_print_operand, nvptx_expand_shuffle): Adjust.
From-SVN: r231192
Aditya Kumar [Wed, 2 Dec 2015 17:11:52 +0000 (17:11 +0000)]
 
fix invalid bounds on array refs
While enabling graphite in -O3 we found a Fortran testcase that fails
because the max of the type domain is -1.  We used to add that as a constraint
to the elements accessed by the array, leading to a unfeasible constraint:
0 <= i <= -1.  Having that constraint, drops the data reference as that says
that there are no elements accessed in the array.
	* graphite-dependences.c (scop_get_reads): Add extra dumps.
	(scop_get_must_writes): Same.
	(scop_get_may_writes): Same.
	(compute_deps): Same.
	* graphite-sese-to-poly.c (bounds_are_valid): New.
	(pdr_add_data_dimensions): Call bounds_are_valid.
	* gfortran.dg/graphite/run-id-3.f90: New.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r231191
Aditya Kumar [Wed, 2 Dec 2015 17:11:41 +0000 (17:11 +0000)]
 
rename flag_loop_optimize_isl to flag_loop_nest_optimize
	* common.opt (flag_loop_optimize_isl): Renamed flag_loop_nest_optimize.
	* graphite-poly.c (apply_poly_transforms): Same.
	* graphite.c (gate_graphite_transforms): Same.
	* toplev.c (process_options): Same.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r231190
Eric Botcazou [Wed, 2 Dec 2015 16:41:02 +0000 (16:41 +0000)]
 
re PR c++/68290 (g++.dg/concepts/auto1.C FAILs)
	PR c++/68290
	* constraint.cc (make_constrained_auto): Move to...
	* pt.c (make_auto_1): Add set_canonical parameter and set
	TYPE_CANONICAL on the type only if it is true.
	(make_decltype_auto): Adjust call to make_auto_1.
	(make_auto): Likewise.
	(splice_late_return_type): Likewise.
	(make_constrained_auto): ...here.  Call make_auto_1 instead of
	make_auto and pass false.  Set TYPE_CANONICAL directly.
From-SVN: r231189
Eric Botcazou [Wed, 2 Dec 2015 16:34:58 +0000 (16:34 +0000)]
 
mips.c (mips_emit_probe_stack_range): Adjust.
	* config/mips/mips.c (mips_emit_probe_stack_range): Adjust.
	(mips_output_probe_stack_range): Rotate the loop and simplify.
From-SVN: r231188
David Sherwood [Wed, 2 Dec 2015 16:29:17 +0000 (16:29 +0000)]
 
aarch64.md: New pattern.
2015-12-02  David Sherwood  <david.sherwood@arm.com>
    gcc/
	* config/aarch64/aarch64.md: New pattern.
	* config/aarch64/aarch64-simd.md: Likewise.
	* config/aarch64/iterators.md: New unspecs, iterators.
    gcc/testsuite
	* gcc.target/aarch64/fmaxmin.c: New test.
From-SVN: r231187
Pierre-Marie de Rodat [Wed, 2 Dec 2015 15:57:34 +0000 (15:57 +0000)]
 
Track indirect calls for call site information in debug info
gcc/ChangeLog:
	* dwarf2out.c (dwar2out_var_location): In addition to notes,
	process indirect calls whose target is compile-time known.
	Enhance pattern matching to get the SYMBOL_REF they embed.
	(gen_subprogram_die): Handle such calls.
	* final.c (final_scan_insn): For call instructions, invoke the
	var_location debug hook only after the call has been emitted.
From-SVN: r231185
Thomas Schwinge [Wed, 2 Dec 2015 15:53:34 +0000 (16:53 +0100)]
 
Some OpenACC host_data cleanup
	gcc/c/
	* c-parser.c (c_parser_omp_clause_name)
	(c_parser_oacc_all_clauses): Alphabetical sorting.
	gcc/cp/
	* parser.c (cp_parser_omp_clause_name)
	(cp_parser_oacc_all_clauses): Alphabetical sorting.
	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_USE_DEVICE.
	gcc/testsuite/
	* c-c++-common/goacc/host_data-5.c: New file.
	* c-c++-common/goacc/host_data-6.c: Likewise.
	* gfortran.dg/goacc/coarray.f95: XFAIL.
	* gfortran.dg/goacc/coarray_2.f90: Adjust dg-excess-errors
	directive.
	* gfortran.dg/goacc/host_data-tree.f95: Remove dg-prune-output
	directive.
	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
	target openacc_nvidia_accel_selected.
	* testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
	* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.
Co-Authored-By: James Norris <James_Norris@mentor.com>
Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r231184
Tom de Vries [Wed, 2 Dec 2015 15:48:45 +0000 (15:48 +0000)]
 
Fix oacc kernels default mapping for scalars
2015-12-02  Tom de Vries  <tom@codesourcery.com>
	* gimplify.c (enum gimplify_omp_var_data): Add enum value
	GOVD_MAP_FORCE.
	(oacc_default_clause): Fix default for scalars in oacc kernels.
	(gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_FORCE.
	* c-c++-common/goacc/kernels-default-2.c: New test.
	* c-c++-common/goacc/kernels-default.c: New test.
From-SVN: r231183
Tom de Vries [Wed, 2 Dec 2015 15:48:35 +0000 (15:48 +0000)]
 
Mark pointers to allocated target vars as restricted, if possible
2015-12-02  Tom de Vries  <tom@codesourcery.com>
	* omp-low.c (install_var_field, scan_sharing_clauses): Add and handle
	parameter base_pointers_restrict.
	(omp_target_base_pointers_restrict_p): New function.
	(scan_omp_target): Call scan_sharing_clauses with base_pointers_restrict
	arg.
	* c-c++-common/goacc/kernels-alias-2.c: New test.
	* c-c++-common/goacc/kernels-alias-3.c: New test.
	* c-c++-common/goacc/kernels-alias-4.c: New test.
	* c-c++-common/goacc/kernels-alias-5.c: New test.
	* c-c++-common/goacc/kernels-alias-6.c: New test.
	* c-c++-common/goacc/kernels-alias-7.c: New test.
	* c-c++-common/goacc/kernels-alias-8.c: New test.
	* c-c++-common/goacc/kernels-alias.c: New test.
From-SVN: r231182
Jonathan Wakely [Wed, 2 Dec 2015 15:08:18 +0000 (15:08 +0000)]
 
Fix ambiguity with multiple enable_shared_from_this bases
	PR libstdc++/56383
	* testsuite/20_util/enable_shared_from_this/56383.cc: New.
	* include/bits/shared_ptr_base.h (__enable_shared_from_this): Make
	friend declaration match previous declaration of
	__enable_shared_from_this_helper.
	* include/bits/shared_ptr.h (enable_shared_from_this): Likewise.
From-SVN: r231181
Nathan Sidwell [Wed, 2 Dec 2015 14:57:54 +0000 (14:57 +0000)]
 
nvptx-protos.h (nvptx_output_mov_insn): Declare.
	* config/nvptx/nvptx-protos.h (nvptx_output_mov_insn): Declare.
	(nvptx_underlying_object_mode): Delete.
	* config/nvptx/nvptx.c (nvptx_underlying_object_mode): Delete.
	(output_reg): New.
	(nvptx_declare_function_name): Use output_reg.  Remove punning
	buffer.
	(nvptx_output_mov_insn): New.
	(nvptx_print_operand): Separate SUBREG handling, remove 'f' case,
	Use output_reg. Merge 't' and 'u' handling.
	* config/nvptx/nvptx.h (NVPTX_PUNNING_BUFFER_REGNUM): Delete.
	(struct machine_function): Remvoe punning_buffer_size.
	(REGISTER_NAMES): Remove %punbuffer.
	* config/nvptx/nvptx.md (UNSPEC_CPLX_LOWPART,
	UNSPEC_CPLX_HIGHPART): Delete.
	(*mov<mode>_insn [QHSDIM): Remove unnecessary constraints, use
	nvptx_output_mov_insn.
	(*mov<mode>_insn [SDFM): Reorder constraints to match integer
	moc.  Use nvptx_output_mov_insn.
	(highpartscsf2,  set_highpartscsf2, lowpartscsf2,
	set_lowpartscsf2): Delete.
	(mov<mode> [SDCM]): Delete.
From-SVN: r231180
Richard Biener [Wed, 2 Dec 2015 14:50:32 +0000 (14:50 +0000)]
 
tree.h (tree_invariant_p): Declare.
2015-12-02  Richard Biener  <rguenther@suse.de>
	* tree.h (tree_invariant_p): Declare.
	* tree.c (tree_invariant_p): Export.
	* genmatch.c (dt_simplify::gen_1): For GENERIC code-gen never
	create SAVE_EXPRs but reject patterns if we would need to.
From-SVN: r231178
Tom de Vries [Wed, 2 Dec 2015 13:32:51 +0000 (13:32 +0000)]
 
Handle BUILT_IN_GOACC_PARALLEL in ipa-pta
2015-12-02  Tom de Vries  <tom@codesourcery.com>
	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call)
	(find_func_clobbers, ipa_pta_execute): Handle BUILT_IN_GOACC_PARALLEL.
	* c-c++-common/goacc/kernels-alias-ipa-pta-2.c: New test.
	* c-c++-common/goacc/kernels-alias-ipa-pta-3.c: New test.
	* c-c++-common/goacc/kernels-alias-ipa-pta.c: New test.
From-SVN: r231169
Richard Biener [Wed, 2 Dec 2015 11:49:48 +0000 (11:49 +0000)]
 
vect-strided-a-u8-i8-gap7-big-array.c: Fix uninitialized y guarding a call to abort ().
2015-12-02  Richard Biener  <rguenther@suse.de>
	* gcc.dg/vect/vect-strided-a-u8-i8-gap7-big-array.c: Fix uninitialized
	y guarding a call to abort ().
	* gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Likewise.
	* gcc.dg/vect/vect-strided-u8-i8-gap7-big-array.c: Likewise.
From-SVN: r231168
Kirill Yukhin [Wed, 2 Dec 2015 11:07:42 +0000 (11:07 +0000)]
 
AVX-512. Split out mask version for vec_extract_hi_<mode>.
gcc/
	* config/i386/sse.md (define_insn "vec_extract_hi_<mode>_maskm"):
	Remove "prefix_extra".
	(define_insn "vec_extract_hi_<mode>_mask"): New.
	(define_insn "vec_extract_hi_<mode>"): Remove masking.
gcc/testsuite/
	* gcc.target/i386/avx512vl-vextractf32x4-1.c: Fix scan pattern.
From-SVN: r231167
Segher Boessenkool [Wed, 2 Dec 2015 10:56:15 +0000 (11:56 +0100)]
 
rs6000: Optimise SImode cstore on 64-bit
On 64-bit we can do comparisons of 32-bit values by extending those
values to 64-bit, subtracting them, and then getting the high bit of
the result.  For registers this is always cheaper than using the carry
bit sequence; and if the comparison involves a constant, this is cheaper
than the sequence we previously generated in half of the cases (and the
same cost in the other cases).
After this, the only sequence left that is using the mfcr insn is the
one doing signed comparison of Pmode registers.
From-SVN: r231165
Marek Polacek [Wed, 2 Dec 2015 10:22:23 +0000 (10:22 +0000)]
 
re PR middle-end/68570 (ICE on valid code at -O1, -O2 and -O3 on x86_64-linux-gnu)
	PR middle-end/68570
	* gcc.dg/torture/pr68570.c: New test.
From-SVN: r231163
Richard Biener [Wed, 2 Dec 2015 09:47:43 +0000 (09:47 +0000)]
 
re PR tree-optimization/68625 (Segmentation fault in useless_type_conversion_p)
2015-12-02  Richard Biener  <rguenther@suse.de>
	PR tree-optimization/68625
	* tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not call
	cleanup_control_flow_bb.
	(cleanup_tree_cfg_1): First perform cleanup_control_flow_bb
	on all BBs, then cleanup_tree_cfg_bb and finally iterate
	over the worklist doing both.
	* gcc.dg/torture/pr68625.c: New testcase.
From-SVN: r231162
Richard Sandiford [Wed, 2 Dec 2015 09:08:49 +0000 (09:08 +0000)]
 
PR 68432: Add a target hook to control size/speed optab choices
The problem in the PR is that some i386 optabs FAIL when
optimising for size rather than speed.  The gimple level generally
needs access to this information before calling the generator,
so this patch adds a new hook to say whether an optab should
be used when optimising for size or speed.  It also has a "both"
option for cases where we want code that is optimised for both
size and speed.
I've passed the optab to the target hook because I think in most
cases that's more useful than the instruction code.  We could pass
both if there's a use for it though.
At the moment the match-and-simplify code doesn't have direct access
to the target block, so for now I've used "both" there.
Tested on x86_64-linux-gnu and powerpc64-linux-gnu.
gcc/
	PR tree-optimization/68432
	* coretypes.h (optimization_type): New enum.
	* doc/tm.texi.in (TARGET_OPTAB_SUPPORTED_P): New hook.
	* doc/tm.texi: Regenerate.
	* target.def (optab_supported_p): New hook.
	* targhooks.h (default_optab_supported_p): Declare.
	* targhooks.c (default_optab_supported_p): New function.
	* predict.h (function_optimization_type): Declare.
	(bb_optimization_type): Likewise.
	* predict.c (function_optimization_type): New function.
	(bb_optimization_type): Likewise.
	* optabs-query.h (convert_optab_handler): Define an overload
	that takes an optimization type.
	(direct_optab_handler): Likewise.
	* optabs-query.c (convert_optab_handler): Likewise.
	(direct_optab_handler): Likewise.
	* internal-fn.h (direct_internal_fn_supported_p): Take an
	optimization_type argument.
	* internal-fn.c (direct_optab_supported_p): Likewise.
	(multi_vector_optab_supported_p): Likewise.
	(direct_internal_fn_supported_p): Likewise.
	* builtins.c (replacement_internal_fn): Update call to
	direct_internal_fn_supported_p.
	* gimple-match-head.c (build_call_internal): Likewise.
	* tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
	* tree-vect-stmts.c (vectorizable_internal_function): Likewise.
	* tree.c (maybe_build_call_expr_loc): Likewise.
	* config/i386/i386.c (ix86_optab_supported_p): New function.
	(TARGET_OPTAB_SUPPORTED_P): Define.
	* config/i386/i386.md (asinxf2): Remove optimize_insn_for_size_p check.
	(asin<mode>2, acosxf2, acos<mode>2, log1pxf2, log1p<mode>2)
	(expNcorexf3, expxf2, exp<mode>2, exp10xf2, exp10<mode>2, exp2xf2)
	(exp2<mode>2, expm1xf2, expm1<mode>2, ldexpxf3, ldexp<mode>3)
	(scalbxf3, scalb<mode>3, rint<mode>2, round<mode>2)
	(<rounding_insn>xf2, <rounding_insn><mode>2): Likewise.
gcc/testsuite/
	* gcc.target/i386/pr68432-1.c: New test.
	* gcc.target/i386/pr68432-2.c: Likewise.
	* gcc.target/i386/pr68432-3.c: Likewise.
From-SVN: r231161
Richard Sandiford [Wed, 2 Dec 2015 09:06:28 +0000 (09:06 +0000)]
 
Check for invalid FAILs
This patch makes it a compile-time error for an internal-fn optab
to FAIL.  There are certainly other optabs and patterns besides these
that aren't allowed to fail, but this at least deals with the immediate
point of controversy.
Tested normally on x86_64-linux-gnu.  Also tested by building one
configuration per cpu directory.  arc-elf and pdp11 didn't build
for unrelated reasons, but I checked that insn-emit.o built for
both without error.
gcc/
	* Makefile.in (GENSUPPORT_H): New macro.
	(build/gensupport.o, build/read-rtl.o, build/genattr.o)
	(build/genattr-common.o, build/genattrtab.o, build/genautomata.o)
	(build/gencodes.o, build/genconditions.o, build/genconfig.o)
	(build/genconstants.o, build/genextract.o, build/genflags.o)
	(build/gentarget-def.o): Use it.
	(build/genemit.o): Likewise.  Depend on internal-fn.def.
	* genopinit.c: Move block comment to optabs.def.
	(optab_tag, optab_def): Move to gensupport.h
	(pattern): Likewise, renaming to optab_pattern.
	(match_pattern): Move to gensupport.c
	(gen_insn): Use find_optab.
	(patterns, pattern_cmp): Replace pattern with optab_pattern.
	(main): Likewise.  Use num_optabs.
	* optabs.def: Add comment that was previously in genopinit.c.
	* gensupport.h (optab_tag): Moved from genopinit.c
	(optab_def): Likewise, expanding commentary.
	(optab_pattern): Likewise, after renaming from pattern.
	(optabs, num_optabs, find_optab): Declare.
	* gensupport.c (optabs): Moved from genopinit.c.
	(num_optabs): New variable.
	(match_pattern): Moved from genopinit.c.
	(find_optab): New function, extracted from genopinit.c:gen_insn.
	* genemit.c (nofail_optabs): New variable.
	(emit_c_code): New function.
	(gen_expand): Check whether the instruction is an optab that isn't
	allowed to fail.  Call emit_c_code.
	(gen_split): Call emit_c_code here too.
	(main): Initialize nofail_optabs.  Don't emit FAIL and DONE here.
From-SVN: r231160
Andreas Krebbel [Wed, 2 Dec 2015 08:05:04 +0000 (08:05 +0000)]
 
S/390: Make constant checking more strict
gcc/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* config/s390/predicates.md (const_mask_operand): New predicate.
	* config/s390/s390-builtins.def: Set a smaller bitmask for a few builtins.
	* config/s390/vector.md: Change predicate from immediate_operand
	to either const_int_operand or const_mask_operand.  Add special
	insn conditions on patterns which have to exclude certain values.
	* config/s390/vx-builtins.md: Likewise.
From-SVN: r231159
Andreas Krebbel [Wed, 2 Dec 2015 08:03:35 +0000 (08:03 +0000)]
 
S/390: vec_set mode DI->SI for shift_count
gcc/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* config/s390/vector.md ("*vec_set<mode>"): Change shift count
	mode from DI to SI.
From-SVN: r231158
Andreas Krebbel [Wed, 2 Dec 2015 08:02:05 +0000 (08:02 +0000)]
 
S/390: Fix vec_splat_* builtins.
gcc/testsuite/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* gcc.target/s390/zvector/vec-splat-2.c: New test.
gcc/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* config/s390/s390-builtin-types.def: New builtin types added.
	* config/s390/s390-builtins.def: Add s390_vec_splat_* definitions.
	* config/s390/s390.c (s390_expand_builtin): Always truncate
	constants to the mode in the pattern.
	* config/s390/vecintrin.h: Let the vec_splat_* macros point to the
	respective builtin __builtin_s390_vec_splat_*.
From-SVN: r231157
Andreas Krebbel [Wed, 2 Dec 2015 07:59:52 +0000 (07:59 +0000)]
 
S/390: Sort builtin types - cleanup only.
gcc/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* config/s390/s390-builtin-types.def: Sort builtin types.
From-SVN: r231156
Andreas Krebbel [Wed, 2 Dec 2015 07:57:24 +0000 (07:57 +0000)]
 
S/390: Fix RT flag in vstrc instruction.
gcc/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* config/s390/s390-c.c (s390_get_vstring_flags): Invert the
	condition for the RT flag.
From-SVN: r231155
Andreas Krebbel [Wed, 2 Dec 2015 07:55:40 +0000 (07:55 +0000)]
 
S/390: Enable vrepi constants.
gcc/testsuite/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* gcc.target/s390/vector/vec-vrepi-1.c: New test.
gcc/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* config/s390/constraints.md ("jKK"): New constraint.
	* config/s390/s390.c (tm-constrs.h): Include for
	satisfies_constraint_*.
	(s390_legitimate_constant_p): Allow jKK constants.  Use
	satisfies_constraint_* also for the others.
	(legitimate_reload_vector_constant_p): Likewise.
	(print_operand): Allow h output modifier on vectors.
	* config/s390/vector.md ("mov<mode>"): Add vrepi.
From-SVN: r231154
Andreas Krebbel [Wed, 2 Dec 2015 07:53:03 +0000 (07:53 +0000)]
 
S/390: Fix vrepi constraint letter.
gcc/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* config/s390/vector.md ("*vec_splats<mode>"): Fix constraint
	latter I->K.
gcc/testsuite/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* gcc.target/s390/zvector/vec-splat-1.c: New test.
From-SVN: r231153
Andreas Krebbel [Wed, 2 Dec 2015 07:49:47 +0000 (07:49 +0000)]
 
S/390: Further bswap enhancements.
gcc/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* config/s390/s390.md ("bswap<mode>2"): Add support for strv and
	strvg.
	("bswaphi2"): New pattern.
	New splitter for HI reg-reg bswap.
gcc/testsuite/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* gcc.target/s390/bswap-1.c (foo64c, foo32a, foo32c): New functions.
	* gcc.target/s390/bswaphi-1.c: New test.
From-SVN: r231152
Andreas Krebbel [Wed, 2 Dec 2015 07:45:50 +0000 (07:45 +0000)]
 
S/390: Enable 64 bit atomic tests with -m31 -mzarch.
gcc/testsuite/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* lib/target-supports.exp: Add s390 and s390x to the list of long
	long atomic targets.
From-SVN: r231151
Jiri Engelthaler [Wed, 2 Dec 2015 07:42:58 +0000 (07:42 +0000)]
 
[PATCH] Fix PR68029
	PR driver/68029
	* opts-common.c (prune_options): Don't ignore -fdiagnostics-color
	if it is the first parameter.
From-SVN: r231150
Andreas Krebbel [Wed, 2 Dec 2015 07:41:53 +0000 (07:41 +0000)]
 
S/390: bswap64 testcases require -mzarch.
gcc/testsuite/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* gcc.dg/optimize-bswapdi-1.c: Force using -mzarch on s390 and
	s390x to enable 64 bit bswap patterns.
	* gcc.dg/optimize-bswapdi-2.c: Likewise.
	* gcc.dg/optimize-bswapdi-3.c: Likewise.
	* lib/target-supports.exp: Add a comment for s390.
From-SVN: r231149
Andreas Krebbel [Wed, 2 Dec 2015 07:37:23 +0000 (07:37 +0000)]
 
S/390: bswap testcases require -march=z900 to work with -m31.
gcc/testsuite/ChangeLog:
2015-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* gcc.dg/builtin-bswap-6a.c: Add -march=z900 for s390 and s390x in
	order to make -m31 work.
	* gcc.dg/optimize-bswapsi-1.c: Likewise.
	* gcc.dg/optimize-bswapsi-2.c: Likewise.
From-SVN: r231148
Jakub Jelinek [Wed, 2 Dec 2015 07:33:06 +0000 (08:33 +0100)]
 
re PR c/68533 (bogus location for "warning: â€˜struct s3’ declared inside parameter list will not be visible outside of this definition or declaration")
	PR c/68533
	* c-decl.c (get_parm_info): Use b->locus instead of input_location
	for diagnostics.
	* gcc.dg/pr68533.c: New test.
From-SVN: r231147
Andreas Arnez [Wed, 2 Dec 2015 07:26:30 +0000 (07:26 +0000)]
 
[PR68603] Associate conditional C++ loop's back-jump with start, not body
SVN commit r230979 always associates a loop's back-jump with the start
of the loop body.  This caused a regression for gcov with conditional
loops, because then the loop body appears to be covered twice per
iteration.
2015-12-02  Andreas Arnez  <arnez@linux.vnet.ibm.com>
	PR gcov-profile/68603
	* cp-gimplify.c (genericize_cp_loop): For the back-jump's location
	use the start of the loop body only if the loop is unconditional.
From-SVN: r231146
Jan Sommer [Wed, 2 Dec 2015 07:09:41 +0000 (07:09 +0000)]
 
[PATCH] Fix declaration of pthread-structs in s-osinte-rtems.ads (ada/68169)
	PR ada/68169
	* s-oscons-tmplt.c: Generate pthread constants for RTEMS
	* s-osinte-rtems.ads: Declare pthread structs as opaque types in Ada
From-SVN: r231145
Ian Lance Taylor [Wed, 2 Dec 2015 01:28:26 +0000 (01:28 +0000)]
 
re PR go/65717 (64-bit runtime FAILs with 32-bit compiler)
	PR go/65717
    compiler: Fix array reflection when len doesn't fit in unsigned long.
    This comes up when using a 32-bit host and a 64-bit target.
    Fixes https://gcc.gnu.org/PR65717.
    Reviewed-on: https://go-review.googlesource.com/17330
From-SVN: r231142
GCC Administrator [Wed, 2 Dec 2015 00:16:12 +0000 (00:16 +0000)]
 
Daily bump.
From-SVN: r231140
John David Anglin [Tue, 1 Dec 2015 23:59:20 +0000 (23:59 +0000)]
 
fptr.c (__canonicalize_funcptr_for_compare): Initialize fixup values if saved GOT address doesn't match runtime address.
	* config/pa/fptr.c (__canonicalize_funcptr_for_compare): Initialize
	fixup values if saved GOT address doesn't match runtime address.
	(fixup_branch_offset): Reorder list.
From-SVN: r231135
Richard Sandiford [Tue, 1 Dec 2015 21:01:35 +0000 (21:01 +0000)]
 
PR68577: Handle narrowing for vector popcount, etc.
This patch adds support for simple cases where a vector
internal function returns wider results than the scalar
equivalent.  It punts on other cases.
Tested on powerpc64-linux-gnu and x86_64-linux-gnu.
gcc/
	PR tree-optimization/68577
	* tree-vect-stmts.c (simple_integer_narrowing): New function.
	(vectorizable_call): Restrict internal function handling
	to NONE and NARROW cases, using simple_integer_narrowing
	to test for the latter.  Add cost of narrowing operation
	and insert it where necessary.
gcc/testsuite/
	PR tree-optimization/68577
	* gcc.dg/vect/pr68577.c: New test.
From-SVN: r231131
Andreas Tobler [Tue, 1 Dec 2015 20:17:37 +0000 (21:17 +0100)]
 
freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>
    * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro.
    (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
    rs6000_current_abi to ABI_AIX or ABI_ELFv2.
From-SVN: r231129
Andreas Tobler [Tue, 1 Dec 2015 20:15:35 +0000 (21:15 +0100)]
 
re PR libffi/65726 (libffi fails to build when not bootstrapping: configure: error: C++ preprocessor "/lib/cpp" fails sanity check)
2015-12-01  Andreas Tobler  <andreast@gcc.gnu.org>
    PR libffi/65726
    * Makefile.def (lang_env_dependencies): Make libffi depend
    on cxx.
    * Makefile.in: Regenerate.
From-SVN: r231128
Nathan Sidwell [Tue, 1 Dec 2015 20:13:02 +0000 (20:13 +0000)]
 
nvptx-protos.h (nvptx_output_aligned_decl): Declare.
	gcc/
	* config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare.
	* config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
	ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl.
	* config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New.
	(write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker.
	(init_output_initializer): Call write_var_marker.
	(nvptx_output_aligned_decl): New.
	(nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker.
	gcc/testsuite/
	* gcc.target/nvptx/uninit-decl.c: New.
From-SVN: r231127
Jan Hubicka [Tue, 1 Dec 2015 19:14:44 +0000 (20:14 +0100)]
 
alias-1.c: New testcase.
	* gcc.c-torture/execute/alias-1.c: New testcase.
	* c-common.c: Do not silently ignore -fstrict-aliasing changes.
From-SVN: r231125
Jan Hubicka [Tue, 1 Dec 2015 19:13:12 +0000 (20:13 +0100)]
 
lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
	* lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
	stream TYPE_ALIAS_SET.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
	stream TYPE_ALIAS_SET.
	* lto.c (compare_tree_sccs_1): Do not compare TYPE_ALIAS_SET.
From-SVN: r231124
Nathan Sidwell [Tue, 1 Dec 2015 16:58:08 +0000 (16:58 +0000)]
 
nvptx.c (nvptx_function_arg_advance): Don't consider mode.
	* config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't
	consider mode.
From-SVN: r231121
Marek Polacek [Tue, 1 Dec 2015 16:22:28 +0000 (16:22 +0000)]
 
re PR tree-optimization/64769 (ICE: tree check: expected integer_cst, have parm_decl in simd_clone_clauses_extract, at omp-low.c:12503 with -fopenmp-simd)
	PR tree-optimization/64769
	* c-c++-common/gomp/pr64769.c: New test.
From-SVN: r231120
Bill Schmidt [Tue, 1 Dec 2015 16:10:45 +0000 (16:10 +0000)]
 
rs6000.c (const_load_sequence_p): Handle extra indirection for large and small code models.
[gcc]
2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	* config/rs6000/rs6000.c (const_load_sequence_p): Handle extra
	indirection for large and small code models.
	(adjust_vperm): Likewise.
[gcc/testsuite]
2015-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	* gcc.target/powerpc/swaps-p8-22.c: New.
From-SVN: r231119
Julian Brown [Tue, 1 Dec 2015 15:52:23 +0000 (15:52 +0000)]
 
OpenACC host_data support.
	gcc/
	* gimple-pretty-print.c (dump_gimple_omp_target): Add host_data
	support.
	* gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA.
	(is_gimple_omp_oacc): Add support for above.
	* gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA.
	(omp_notice_variable): Diagnose undefined implicit uses of
	use_device variables in offloaded regions.
	(gimplify_scan_omp_clauses): Add host_data, use_device
	support. Diagnose undefined mapping of use_device variables in
	OpenACC clauses.
	(gimplify_omp_workshare): Add host_data support.
	(gimplify_expr): Likewise.
	* omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New.
	* omp-low.c (lookup_decl_in_outer_ctx)
	(maybe_lookup_decl_in_outer_ctx): Add optional argument to skip
	host_data regions.
	(scan_sharing_clauses): Support use_device.
	(check_omp_nesting_restrictions): Support host_data.
	(expand_omp_target): Support host_data.
	(lower_omp_target): Skip over outer host_data regions when looking
	up decls. Support use_device.
	(make_gimple_omp_edges): Support host_data.
	* tree-nested.c (convert_nonlocal_omp_clauses): Add use_device
	clause.
	gcc/c/
	* c-parser.c (c_parser_omp_clause_name): Add use_device support.
	(c_parser_oacc_clause_use_device): New function.
	(c_parser_oacc_all_clauses): Add use_device support.
	(OACC_HOST_DATA_CLAUSE_MASK): New macro.
	(c_parser_oacc_host_data): New function.
	(c_parser_omp_construct): Add host_data support.
	* c-tree.h (c_finish_oacc_host_data): Add prototype.
	* c-typeck.c (c_finish_oacc_host_data): New function.
	(c_finish_omp_clauses): Add use_device support.
	gcc/cp/
	* cp-tree.h (finish_oacc_host_data): Add prototype.
	* parser.c (cp_parser_omp_clause_name): Add use_device support.
	(cp_parser_oacc_all_clauses): Add use_device support.
	(OACC_HOST_DATA_CLAUSE_MASK): New macro.
	(cp_parser_oacc_host_data): New function.
	(cp_parser_omp_construct): Add host_data support.
	(cp_parser_pragma): Add host_data support.
	* semantics.c (finish_omp_clauses): Add use_device support.
	(finish_oacc_host_data): New function.
	gcc/c-family/
	* c-pragma.c (oacc_pragmas): Add PRAGMA_OACC_HOST_DATA.
	* c-pragma.h (pragma_kind): Add PRAGMA_OACC_HOST_DATA.
	(pragma_omp_clause): Add PRAGMA_OACC_CLAUSE_USE_DEVICE.
	libgomp/
	* oacc-parallel.c (GOACC_host_data): New function.
	* libgomp.map (GOACC_host_data): Add to GOACC_2.0.1.
	* testsuite/libgomp.oacc-c-c++-common/host_data-1.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-2.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-3.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-4.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-5.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New test.
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: James Norris <James_Norris@mentor.com>
From-SVN: r231118
Marek Polacek [Tue, 1 Dec 2015 15:47:34 +0000 (15:47 +0000)]
 
re PR tree-optimization/67916 (wrong code at -O3 on x86_64-linux-gnu)
	PR tree-optimization/67916
	* gcc.dg/torture/pr67916.c: New test.
From-SVN: r231117
Marek Polacek [Tue, 1 Dec 2015 15:44:08 +0000 (15:44 +0000)]
 
re PR middle-end/68582 (-Wunused-function doesn't warn about unused static __attribute__((noreturn)) functions)
	PR middle-end/68582
	* cgraphunit.c (check_global_declaration): Only depend on TREE_THIS_VOLATILE
	for VAR_DECLs.
	* c-c++-common/pr68582.c: New test.
From-SVN: r231116
Richard Sandiford [Tue, 1 Dec 2015 14:53:53 +0000 (14:53 +0000)]
 
PR68474: Fix tree-call-cdce.c:use_internal_fn
We'd call gen_shrink_wrap_conditions for functions that it can't handle
but edom_only_function can.
Tested on x86_64-linux-gnu.
gcc/
	PR tree-optimization/68474
	* tree-call-cdce.c (use_internal_fn): Protect call to
	gen_shrink_wrap_conditions.
gcc/testsuite/
	PR tree-optimization/68474
	* gcc.dg/pr68474.c: New test.
From-SVN: r231115
Christian Bruel [Tue, 1 Dec 2015 14:50:57 +0000 (15:50 +0100)]
 
re PR target/68617 (arm ice output_operand: invalid %-code for  -march=armv6k + thumb)
2015-12-01  Christian Bruel  <christian.bruel@st.com>
        PR target/68617
        * config/arm/arm.opt (unaligned_access): Save.
        * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define.
        * config/arm/arm.c (arm_option_override): Move unaligned_access setting
        (arm_option_override_internal): ... here.
        * config/arm/arm.h (TARGET_32BIT_P): New macro.
// testsuite
        PR target/68617
        * gcc.target/arm/attr-unaligned-load-ice.c: New test.
From-SVN: r231114
Tom de Vries [Tue, 1 Dec 2015 14:44:00 +0000 (14:44 +0000)]
 
Move pr46032*.c tests
2015-12-01  Tom de Vries  <tom@codesourcery.com>
	* gcc.dg/pr46032.c: Move to ...
	* gcc.dg/vect/pr46032.c: here.  Add dg-require-effective-target
	vect_int.
	* gcc.dg/pr46032-2.c: Move to ...
	* gcc.dg/gomp/pr46032-2.c: ... here.  Drop dg-require-effective-target fopenmp.
	* gcc.dg/pr46032-3.c: Move to ...
	* gcc.dg/gomp/pr46032-3.c: ... here.  Drop dg-require-effective-target fopenmp.
From-SVN: r231113
Cesar Philippidis [Tue, 1 Dec 2015 14:27:11 +0000 (06:27 -0800)]
 
dump-parse-tree.c (show_omp_clauses): Handle optional num and static arguments for the gang clause.
	gcc/fortran/
	* dump-parse-tree.c (show_omp_clauses): Handle optional num and static
	arguments for the gang clause.
	* gfortran.h (gfc_omp_clauses): Rename gang_expr as gang_num_expr.
	Add gang_static_expr.
	* openmp.c (gfc_free_omp_clauses): Update to free gang_num_expr and
	gang_static_expr.
	(match_oacc_clause_gang): Update to support both num and static in
	the same clause.
	(resolve_omp_clauses): Formatting.  Also handle gang_num_expr and
	gang_static_expr.
	(resolve_oacc_params_in_parallel): New const char arg argument.
	Use it to report more accurate gang, worker and vector clause errors.
	(resolve_oacc_loop_blocks): Update calls to
	resolve_oacc_params_in_parallel.
	* trans-openmp.c (gfc_trans_omp_clauses): Update the gimplification of
	the gang clause.
	(gfc_trans_oacc_combined_directive): Make use of gang_num_expr and
	gang_static_expr.  Remove OMP_LIST_REDUCTION from construct_clauses.
	gcc/testsuite/
	* gfortran.dg/goacc/gang-static.f95: Add tests for gang num arguments.
	* gfortran.dg/goacc/loop-2.f95: Update expected diagnostics.
	* gfortran.dg/goacc/loop-6.f95: Likewise.
	* gfortran.dg/goacc/loop-7.f95: New test.
	* gfortran.dg/goacc/reduction-2.f95: New test.
From-SVN: r231112
Richard Biener [Tue, 1 Dec 2015 14:24:54 +0000 (14:24 +0000)]
 
re PR tree-optimization/68379 (BB vectorization: definition in block 13 follows the use for SSA_NAME)
2015-12-01  Richard Biener  <rguenther@suse.de>
	PR tree-optimization/68379
	* tree-vect-stmts.c (vectorizable_load): For BB vectorization
	always base loads on the first used DR of a group.
	* tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment):
	Compute alignment of the first scalar element unconditionally.
	* gcc.dg/torture/pr68379.c: New testcase.
	* gfortran.dg/pr68379-1.f90: Likewise.
	* gfortran.dg/pr68379-2.f: Likewise.
From-SVN: r231111
Richard Biener [Tue, 1 Dec 2015 14:22:40 +0000 (14:22 +0000)]
 
re PR ada/68590 (FAIL: gnat.dg/loop_optimization19.adb scan-tree-dump-not optimized "Index_Check")
2015-12-01  Richard Biener  <rguenther@suse.de>
	PR middle-end/68590
	* genmatch.c (struct capture_info): Add match_use_count.
	(capture_info::walk_match): Increment match_use_count.
	(dt_simplify::gen_1): For GENERIC, only wrap multi-use
	replacements in a save_expr if they occur more often than
	in the original expression.
From-SVN: r231110
Christophe Lyon [Tue, 1 Dec 2015 12:20:51 +0000 (12:20 +0000)]
 
[testsuite] Fix pr46032* testcases.
2015-12-01  Christophe Lyon  <christophe.lyon@linaro.org>
	* gcc.dg/pr46032.c: Add dg-require-effective-target fopenmp.
	* gcc.dg/pr46032-2.c: Likewise.
	* gcc.dg/pr46032-3.c: Likewise.
From-SVN: r231109
Richard Biener [Tue, 1 Dec 2015 11:35:21 +0000 (11:35 +0000)]
 
re PR ipa/68470 (Internal Compiler Error observed by g++-4.9.2 and a few other versions (reported to Debian))
2015-12-01  Richard Biener  <rguenther@suse.de>
	PR ipa/68470
	* ipa-split.c (split_function): Handle main part not returning.
	* g++.dg/torture/pr68470.C: New testcase.
From-SVN: r231108
Jonathan Wakely [Tue, 1 Dec 2015 11:33:17 +0000 (11:33 +0000)]
 
Define path::_Cmpt after specializing path::__is_encoded_char
	* include/experimental/bits/fs_path.h (path::_Cmpt): Move definition
	after path::__is_encoded_char explicit specializations.
From-SVN: r231107
Ilya Enkovich [Tue, 1 Dec 2015 11:04:06 +0000 (11:04 +0000)]
 
re PR middle-end/68595 (ice in const_vector_mask_from_tree at expr.c:11455)
gcc/
	PR middle-end/68595
	* tree-vect-stmts.c (vect_init_vector): Cast boolean
	scalars to a proper value before building a vector.
gcc/testsuite/
	PR middle-end/68595
	* gcc.dg/pr68595.c: New test.
From-SVN: r231106
Christian Bruel [Tue, 1 Dec 2015 10:07:20 +0000 (11:07 +0100)]
 
Fix armv6+thumb1 unaligned tests
From-SVN: r231105
Eric Botcazou [Tue, 1 Dec 2015 09:38:37 +0000 (09:38 +0000)]
 
* gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Reorder.
From-SVN: r231104
Richard Sandiford [Tue, 1 Dec 2015 09:31:02 +0000 (09:31 +0000)]
 
Improve error reporting from genattrtab.c
The errors reported by check_attr_value weren't very helpful because
they always used the location of the define(_enum)_attr, even if the
error was in a define_insn.  Also, the errors reported by
check_attr_test didn't say which attribute was faulty.
Although not technically a bug fix, it was really useful in writing
the patch for PR68432.
Tested on a variety of targets.
gcc/
	* genattrtab.c (check_attr_test): Take an attr_desc instead of
	an is_const flag.  Put the file_location argument first.
	Update recursive calls.  Improve error messages.
	(check_attr_value): Take a file location and use it instead
	of attr->loc.  Improve error messages.  Update calls to
	check_attr_test.
	(check_defs): Update call to check_attr_value.
	(make_canonical): Likewise.
	(gen_attr): Likewise.
	(main): Likewise.
	(gen_insn_reserv): Update call to check_attr_test.
From-SVN: r231103
Ramana Radhakrishnan [Tue, 1 Dec 2015 08:54:52 +0000 (08:54 +0000)]
 
Fix typo in aarch64.c
2015-12-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo.
From-SVN: r231101
Richard Biener [Tue, 1 Dec 2015 08:52:58 +0000 (08:52 +0000)]
 
re PR ada/68590 (FAIL: gnat.dg/loop_optimization19.adb scan-tree-dump-not optimized "Index_Check")
2015-12-01  Richard Biener  <rguenther@suse.de>
	PR middle-end/68590
	* match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns.
From-SVN: r231100
Jan Hubicka [Tue, 1 Dec 2015 06:36:02 +0000 (07:36 +0100)]
 
ipa-devirt.c (type_with_linkage_p, [...]): Move to ...
	* ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p,
	odr_type_p): Move to ...
	* ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p,
	odr_type_p): here; miscro-optimize.
From-SVN: r231098
Bin Cheng [Tue, 1 Dec 2015 05:22:16 +0000 (05:22 +0000)]
 
re PR tree-optimization/68529 (scev failed for while(i--))
	PR tree-optimization/68529
	* tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param.
	Compute no-overflow information for control iv.
	(number_of_iterations_lt, number_of_iterations_le): Add new param.
	(number_of_iterations_cond): Pass new argument to above functions.
	PR tree-optimization/68529
	* gcc.dg/tree-ssa/pr68529-1.c: New test.
	* gcc.dg/tree-ssa/pr68529-2.c: New test.
	* gcc.dg/tree-ssa/pr68529-3.c: New test.
From-SVN: r231097
Ian Lance Taylor [Tue, 1 Dec 2015 04:45:53 +0000 (04:45 +0000)]
 
re PR go/68477 (error: type variant differs by TYPE_STRING_FLAG.)
	PR go/68477
	* go-gcc.cc (Gcc_backend::string_constant_expression): Don't set
	TYPE_STRING_FLAG on a variant type.
From-SVN: r231096
Jan Hubicka [Tue, 1 Dec 2015 04:19:50 +0000 (04:19 +0000)]
 
ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when inlining -fno-strict-aliasing into...
	* ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
	inlining -fno-strict-aliasing into -fstrict-aliasing body.
From-SVN: r231095
Jan Hubicka [Tue, 1 Dec 2015 04:13:26 +0000 (05:13 +0100)]
 
ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when inlining -fno-strict-aliasing into...
	* ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
	inlining -fno-strict-aliasing into -fstrict-aliasing body.
	* gcc.dg/lto/alias-1_0.c: New testcase.
	* gcc.dg/lto/alias-1_1.c: New testcase.
From-SVN: r231094
GCC Administrator [Tue, 1 Dec 2015 00:16:11 +0000 (00:16 +0000)]
 
Daily bump.
From-SVN: r231093
Aditya Kumar [Mon, 30 Nov 2015 20:39:16 +0000 (20:39 +0000)]
 
check for ISL generated code that leads to division by zero
we used to generate modulo and division by zero because ISL uses big numbers
which translate to zero in modulo arithmetic.  The patch also improves error handling
and bails out early in case of wrong code gen.
	PR tree-optimization/68565
	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on
	codegen_error.  Fail when rhs of division operations is integer_zerop.
	(ternary_op_to_tree): Early return on codegen_error.
	(unary_op_to_tree): Same.
	(nary_op_to_tree): Same.
	(gcc_expression_from_isl_expr_op): Same.
	(gcc_expression_from_isl_expression): Same.
	(graphite_create_new_loop): On codegen_error continue generating
	wrong code.
	(graphite_create_new_loop_guard): Same.
	(build_iv_mapping): Same.
	(graphite_create_new_guard): Same.
	* gfortran.dg/graphite/pr68565.f90: New.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r231086
Aditya Kumar [Mon, 30 Nov 2015 20:29:15 +0000 (20:29 +0000)]
 
always print parameter names as P_{SSA_NAME_VERSION}
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r231085
Cesar Philippidis [Mon, 30 Nov 2015 19:09:33 +0000 (11:09 -0800)]
 
tree-nested.c (convert_nonlocal_omp_clauses): Add support for OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
	gcc/
	* tree-nested.c (convert_nonlocal_omp_clauses): Add support for
	OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}.
	(convert_local_omp_clauses): Likewise.
	gcc/fortran/
	* f95-lang.c (gfc_attribute_table): Add an "oacc function"
	attribute.
	* gfortran.h (symbol_attribute): Add an oacc_function bit-field.
	(gfc_oacc_routine_name): New struct;
	(gfc_get_oacc_routine_name): New macro.
	(gfc_namespace): Add oacc_routine_clauses, oacc_routine_names and
	oacc_routine fields.
	(gfc_exec_op): Add EXEC_OACC_ROUTINE.
	* openmp.c (OACC_ROUTINE_CLAUSES): New mask.
	(gfc_oacc_routine_dims): New function.
	(gfc_match_oacc_routine): Add support for named routines and the
	gang, worker vector and seq clauses.
	* parse.c (is_oacc): Add EXEC_OACC_ROUTINE.
	* resolve.c (gfc_resolve_blocks): Likewise.
	* st.c (gfc_free_statement): Likewise.
	* trans-decl.c (add_attributes_to_decl): Attach an 'oacc function'
	attribute and shape geometry for acc routine.
	gcc/testsuite/
	* gfortran.dg/goacc/routine-3.f90: New test.
	* gfortran.dg/goacc/routine-4.f90: New test.
	* gfortran.dg/goacc/routine-5.f90: New test.
	* gfortran.dg/goacc/routine-6.f90: New test.
	* gfortran.dg/goacc/subroutines: New test.
	libgomp/
	* libgomp.oacc-fortran/routine-5.f90: New test.
	* libgomp.oacc-fortran/routine-7.f90: New test.
	* libgomp.oacc-fortran/routine-9.f90: New test.
From-SVN: r231081
Tom de Vries [Mon, 30 Nov 2015 17:48:41 +0000 (17:48 +0000)]
 
Add gcc.dg/pr46032-{2,3}.c test-cases
2015-11-30  Tom de Vries  <tom@codesourcery.com>
	* gcc.dg/pr46032-2.c: New test.
	* gcc.dg/pr46032-3.c: New test.
From-SVN: r231079
Charles Baylis [Mon, 30 Nov 2015 17:11:16 +0000 (17:11 +0000)]
 
re PR target/63870 ([Aarch64] [ARM] Errors in use of NEON intrinsics are reported incorrectly)
gcc/testsuite/ChangeLog:
2015-11-30  Charles Baylis  <charles.baylis@linaro.org>
	PR target/63870
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c (f_vld2_lane_f16): Remove xfails for arm targets.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f32_indices_1.c (f_vld2_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f64_indices_1.c (f_vld2_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_p8_indices_1.c (f_vld2_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s16_indices_1.c (f_vld2_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s32_indices_1.c (f_vld2_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s64_indices_1.c (f_vld2_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_s8_indices_1.c (f_vld2_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u16_indices_1.c (f_vld2_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u32_indices_1.c (f_vld2_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u64_indices_1.c (f_vld2_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_u8_indices_1.c (f_vld2_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c (f_vld2q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f32_indices_1.c (f_vld2q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f64_indices_1.c (f_vld2q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_p8_indices_1.c (f_vld2q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s16_indices_1.c (f_vld2q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s32_indices_1.c (f_vld2q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s64_indices_1.c (f_vld2q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_s8_indices_1.c (f_vld2q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u16_indices_1.c (f_vld2q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u32_indices_1.c (f_vld2q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u64_indices_1.c (f_vld2q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_u8_indices_1.c (f_vld2q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c (f_vld3_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f32_indices_1.c (f_vld3_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f64_indices_1.c (f_vld3_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_p8_indices_1.c (f_vld3_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s16_indices_1.c (f_vld3_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s32_indices_1.c (f_vld3_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s64_indices_1.c (f_vld3_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_s8_indices_1.c (f_vld3_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u16_indices_1.c (f_vld3_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u32_indices_1.c (f_vld3_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u64_indices_1.c (f_vld3_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_u8_indices_1.c (f_vld3_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c (f_vld3q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f32_indices_1.c (f_vld3q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f64_indices_1.c (f_vld3q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_p8_indices_1.c (f_vld3q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s16_indices_1.c (f_vld3q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s32_indices_1.c (f_vld3q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s64_indices_1.c (f_vld3q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_s8_indices_1.c (f_vld3q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u16_indices_1.c (f_vld3q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u32_indices_1.c (f_vld3q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u64_indices_1.c (f_vld3q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_u8_indices_1.c (f_vld3q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c (f_vld4_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f32_indices_1.c (f_vld4_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f64_indices_1.c (f_vld4_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_p8_indices_1.c (f_vld4_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s16_indices_1.c (f_vld4_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s32_indices_1.c (f_vld4_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s64_indices_1.c (f_vld4_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_s8_indices_1.c (f_vld4_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u16_indices_1.c (f_vld4_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u32_indices_1.c (f_vld4_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u64_indices_1.c (f_vld4_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_u8_indices_1.c (f_vld4_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c (f_vld4q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f32_indices_1.c (f_vld4q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f64_indices_1.c (f_vld4q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_p8_indices_1.c (f_vld4q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s16_indices_1.c (f_vld4q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s32_indices_1.c (f_vld4q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s64_indices_1.c (f_vld4q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_s8_indices_1.c (f_vld4q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u16_indices_1.c (f_vld4q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u32_indices_1.c (f_vld4q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u64_indices_1.c (f_vld4q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_u8_indices_1.c (f_vld4q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c (f_vst2_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f32_indices_1.c (f_vst2_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f64_indices_1.c (f_vst2_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_p8_indices_1.c (f_vst2_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s16_indices_1.c (f_vst2_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s32_indices_1.c (f_vst2_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s64_indices_1.c (f_vst2_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_s8_indices_1.c (f_vst2_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u16_indices_1.c (f_vst2_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u32_indices_1.c (f_vst2_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u64_indices_1.c (f_vst2_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_u8_indices_1.c (f_vst2_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c (f_vst2q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f32_indices_1.c (f_vst2q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f64_indices_1.c (f_vst2q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_p8_indices_1.c (f_vst2q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s16_indices_1.c (f_vst2q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s32_indices_1.c (f_vst2q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s64_indices_1.c (f_vst2q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_s8_indices_1.c (f_vst2q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u16_indices_1.c (f_vst2q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u32_indices_1.c (f_vst2q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u64_indices_1.c (f_vst2q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_u8_indices_1.c (f_vst2q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c (f_vst3_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f32_indices_1.c (f_vst3_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f64_indices_1.c (f_vst3_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_p8_indices_1.c (f_vst3_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s16_indices_1.c (f_vst3_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s32_indices_1.c (f_vst3_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s64_indices_1.c (f_vst3_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_s8_indices_1.c (f_vst3_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u16_indices_1.c (f_vst3_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u32_indices_1.c (f_vst3_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u64_indices_1.c (f_vst3_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_u8_indices_1.c (f_vst3_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c (f_vst3q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f32_indices_1.c (f_vst3q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f64_indices_1.c (f_vst3q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_p8_indices_1.c (f_vst3q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s16_indices_1.c (f_vst3q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s32_indices_1.c (f_vst3q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s64_indices_1.c (f_vst3q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_s8_indices_1.c (f_vst3q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u16_indices_1.c (f_vst3q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u32_indices_1.c (f_vst3q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u64_indices_1.c (f_vst3q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_u8_indices_1.c (f_vst3q_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c (f_vst4_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f32_indices_1.c (f_vst4_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f64_indices_1.c (f_vst4_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_p8_indices_1.c (f_vst4_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s16_indices_1.c (f_vst4_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s32_indices_1.c (f_vst4_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s64_indices_1.c (f_vst4_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_s8_indices_1.c (f_vst4_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u16_indices_1.c (f_vst4_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u32_indices_1.c (f_vst4_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u64_indices_1.c (f_vst4_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_u8_indices_1.c (f_vst4_lane_u8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c (f_vst4q_lane_f16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f32_indices_1.c (f_vst4q_lane_f32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f64_indices_1.c (f_vst4q_lane_f64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_p8_indices_1.c (f_vst4q_lane_p8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s16_indices_1.c (f_vst4q_lane_s16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s32_indices_1.c (f_vst4q_lane_s32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s64_indices_1.c (f_vst4q_lane_s64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_s8_indices_1.c (f_vst4q_lane_s8): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u16_indices_1.c (f_vst4q_lane_u16): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u32_indices_1.c (f_vst4q_lane_u32): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u64_indices_1.c (f_vst4q_lane_u64): Ditto.
	* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_u8_indices_1.c (f_vst4q_lane_u8): Ditto.
From-SVN: r231077
Tom de Vries [Mon, 30 Nov 2015 16:34:26 +0000 (16:34 +0000)]
 
Handle BUILT_IN_GOMP_PARALLEL in ipa-pta
2015-11-30  Tom de Vries  <tom@codesourcery.com>
	PR tree-optimization/46032
	* tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function,
	factored out of ...
	(find_func_aliases_for_call): ... here.
	(find_func_aliases_for_builtin_call, find_func_clobbers): Handle
	BUILT_IN_GOMP_PARALLEL.
	(ipa_pta_execute): Same.  Handle node->parallelized_function as a local
	function.
	* gcc.dg/pr46032.c: New test.
	* testsuite/libgomp.c/pr46032.c: New test.
From-SVN: r231076
Jakub Jelinek [Mon, 30 Nov 2015 14:56:08 +0000 (15:56 +0100)]
 
re PR tree-optimization/68501 (sqrt builtin is not used anymore)
	PR tree-optimization/68501
	* target.def (builtin_reciprocal): Replace the 3 arguments with
	a gcall * one, adjust description.
	* targhooks.h (default_builtin_reciprocal): Replace the 3 arguments
	with a gcall * one.
	* targhooks.c (default_builtin_reciprocal): Likewise.
	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use
	targetm.builtin_reciprocal even on internal functions, adjust
	the arguments and allow replacing an internal function with normal
	built-in.
	* config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments
	with a gcall * one.  Handle internal fns too.
	* config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise.
	* config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
	* doc/tm.texi (builtin_reciprocal): Document.
From-SVN: r231075
Richard Biener [Mon, 30 Nov 2015 14:50:48 +0000 (14:50 +0000)]
 
re PR tree-optimization/68592 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1403 with -fprofile-generate)
2015-11-30  Richard Biener  <rguenther@suse.de>
	PR tree-optimization/68592
	* tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also
	on the pattern def sequence.
	* gfortran.dg/pr68592.f: New testcase.
From-SVN: r231074
Nathan Sidwell [Mon, 30 Nov 2015 14:44:48 +0000 (14:44 +0000)]
 
nvptx.c (nvptx_name_replacement): Move earlier.
	* config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier.
	(write_one_arg): Reorder parms, add 'sep' param.
	(nvptx_write_function_decl): Rename to ...
	(write_fn_proto): ... here.  Do name replacement. Emit linaer
	comment marker. Deal with both decls and defns. Simplify argument
	formatting.
	(write_function_decl_and_comment): Delete.
	(write_func_decl_from_insn): Rename to ...
	(write_fn_proto_from_insn): ... here.  Don't do name replacement.
	(nvptx_record_fndecl): Call write_fn_proto.
	(nvptx_record_libfunc): Call write_fn_proto_from_insn.
	(nvptx_declare_function_name): Adjust for write_fn_proto changes.
	(nvotx_output_call_insn): Call write_fn_prot_from_insn.
From-SVN: r231073
Paul Thomas [Mon, 30 Nov 2015 13:33:27 +0000 (13:33 +0000)]
 
re PR fortran/68534 (No error on mismatch in number of arguments between submodule and module interface)
2015-11-30  Paul Thomas  <pault@gcc.gnu.org>
	PR fortran/68534
	* decl.c (gfc_match_formal_arglist): Cope with zero formal args
	either in interface declaration or in procedure declaration in
	submodule.
2015-11-30  Paul Thomas  <pault@gcc.gnu.org>
	PR fortran/68534
	* gfortran.dg/submodule_13.f08: New test.
From-SVN: r231072
Andreas Krebbel [Mon, 30 Nov 2015 13:24:51 +0000 (13:24 +0000)]
 
S/390: Testsuite: Add asm scan patterns for -m31.
gcc/testsuite/ChangeLog:
2015-11-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* gcc.target/s390/load-relative-check.c: Add scan patterns for
	-m31.
From-SVN: r231071
Andreas Krebbel [Mon, 30 Nov 2015 12:31:02 +0000 (12:31 +0000)]
 
S/390: Testsuite: Add -mzarch to load-relative-check.c.
2015-11-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
	* gcc.target/s390/load-relative-check.c: Add -mzarch.
From-SVN: r231070
Eric Botcazou [Mon, 30 Nov 2015 12:20:06 +0000 (12:20 +0000)]
 
c-ada-spec.c (print_ada_macros): Remove redundant blank line.
	* c-ada-spec.c (print_ada_macros): Remove redundant blank line.
	(decl_sloc_common): Delete and move bulk of processing to...
	(decl_sloc): ...here.
	(pp_ada_tree_identifier): Remove reference to QUAL_UNION_TYPE.
	(dump_ada_double_name): Remove S parameter and compute the suffix.
	(dump_ada_array_type): Add PARENT parameter.  Simplify computation of
	element type and deal with an anonymous one.
	(dump_ada_template): Use RECORD_OR_UNION_TYPE_P macro.
	(dump_generic_ada_node): Tweak.  Adjust call to dump_ada_array_type
	and remove reference to QUAL_UNION_TYPE.
	(dump_nested_types): Make 2 passes on the fields and move bulk to...
	(dump_nested_type): ...here.  New function extracted from above.
	Generate a full declaration for anonymous element type of arrays.
	(print_ada_declaration): Really skip anonymous declarations.  Remove
	references to QUAL_UNION_TYPE.  Adjust call to dump_ada_array_type.
	Clean up processing of declarations of array types and objects.
	(print_ada_struct_decl): Remove reference to QUAL_UNION_TYPE.
	Remove obsolete code and tidy up.
From-SVN: r231069
Eric Botcazou [Mon, 30 Nov 2015 12:06:30 +0000 (12:06 +0000)]
 
* gcc-interface/trans.c (gigi): Fix initialization order.
From-SVN: r231068
Eric Botcazou [Mon, 30 Nov 2015 11:59:09 +0000 (11:59 +0000)]
 
osint.adb: Add use type clause for CRTL.size_t.
	* osint.adb: Add use type clause for CRTL.size_t.
	(C_String_Length): Return CRTL.size_t instead of Integer.
	(To_Path_String_Access): Take CRTL.size_t instead of Integer.
	(Get_Libraries_From_Registry): Use CRTL throughout.
	(To_Canonical_Dir_Spec): Use CRTL.size_t instead of Integer.
	(To_Canonical_File_List): Likewise.
	(To_Canonical_File_Spec): Likewise.
	(To_Canonical_Path_Spec): Likewise.
	(To_Host_Dir_Spec): Likewise.
	(To_Host_File_Spec): Likewise.
	(Update_Path): Use CRTL throughout.
	* s-shasto.adb: Add with clause for System.CRTL.
	(Initialize): Rename CRTL.strncpy instead of importing it manually.
From-SVN: r231066
Eric Botcazou [Mon, 30 Nov 2015 11:50:53 +0000 (11:50 +0000)]
 
gigi.h (create_var_decl): Adjust prototype.
	* gcc-interface/gigi.h (create_var_decl): Adjust prototype.
	(create_subprog_decl): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Rename
	static_p into static_flag and add volatile_flag local variable.
	Do not locally change the type of a volatile object, except for the
	pointed-to type if the object is handled by reference.  Adjust calls
	to create_var_decl.
	<E_Subprogram_Type>: Likewise for const and noreturn subprograms.
	(get_minimal_subprog_decl): Adjust call to create_subprog_decl.
	(elaborate_expression_1): Adjust call to create_var_decl.
	(gnat_to_gnu_field): Minor tweak.
	* gcc-interface/trans.c (gigi): Adjust calls to create_var_decl and
	create_subprog_decl.
	(build_raise_check): Likewise.
	(Subprogram_Body_to_gnu): Likewise.
	(create_temporary): Likewise.
	(Handled_Sequence_Of_Statements_to_gnu): Likewise.
	(Exception_Handler_to_gnu_gcc): Likewise.
	(Compilation_Unit_to_gnu): Likewise.
	(gnat_to_gnu): Likewise.
	* gcc-interface/utils.c (maybe_pad_type): Likewise.
	(create_var_decl): Add VOLATILE_FLAG parameter and handle it.
	(create_subprog_decl): Add CONST_FLAG and VOLATILE_FLAG parameters and
	handle them.
From-SVN: r231065
Eric Botcazou [Mon, 30 Nov 2015 11:46:32 +0000 (11:46 +0000)]
 
gigi.h (is_simple_additive_expression): Declare.
	* gcc-interface/gigi.h (is_simple_additive_expression): Declare.
	* gcc-interface/trans.c (struct range_check_info_d): Add DISP and
	NEG_P fields.
	(find_loop_for): Add DISP and NEG_P parameters with default value.
	Call is_simple_additive_expression to handle additive expressions.
	(Loop_Statement_to_gnu): Deal with displacement in range checks.
	(Raise_Error_to_gnu): Likewise.
	(gnat_to_gnu): Add call to find_loop_for.
	(is_simple_additive_expression): New function extracted from...
	(gnat_invariant_expr): ...here.  Call it on the expression.
From-SVN: r231064
Eric Botcazou [Mon, 30 Nov 2015 11:34:31 +0000 (11:34 +0000)]
 
* gcc-interface/utils2.c (gnat_invariant_expr): Add type conversions.
From-SVN: r231063
Eric Botcazou [Mon, 30 Nov 2015 11:25:24 +0000 (11:25 +0000)]
 
ada-tree.h (TYPE_MAX_ALIGN): New macro.
	* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): New macro.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set PACKED to -2.
	Remove obsolete code setting the alignment on some atomic types.
	When the type has no alignment but needs strict alignment and has a
	size clause, compute a maximum alignment and set it on the type.
	(adjust_packed): Remove handling of -2 argument.  Deal with TYPE_ALIGN
	and TYPE_MAX_ALIGN directly.
	(gnat_to_gnu_field): Do not document -2 as argument.
	(components_to_record): Likewise.
	* gcc-interface/utils.c (finish_record_type): Do not bump alignment of
	the record type beyond TYPE_MAX_ALIGN.  Reset the latter on exit.
	* gcc-interface/Makefile.in (PICFLAG_FOR_TARGET): Move around.
	(GNATLIBCFLAGS_FOR_C): Reformat.
	(GCC_CFLAGS): Delete.
From-SVN: r231062
Kirill Yukhin [Mon, 30 Nov 2015 10:50:56 +0000 (10:50 +0000)]
 
[AVX-512] Enable QI-mode mask logic patterns on non-AVX-512DQ targets.
gcc/
	* config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New.
	(define_insn "*k<logic><mode>"): Use new iterator.
From-SVN: r231061
Eric Botcazou [Mon, 30 Nov 2015 09:43:55 +0000 (09:43 +0000)]
 
re PR target/28115 (possible bug in recog_memoized usage in rs6000.c??)
	PR target/28115
	* config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko.
	(sparc_adjust_cost): Add missing space.
From-SVN: r231059