Commit Graph

154506 Commits

Author SHA1 Message Date
Tony Reix
d8b9cd2700 aix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define unconditionally.
2017-06-07  Tony Reix  <tony.reix@atos.net>
            Matthieu Sarter  <matthieu.sarter.external@atos.net>
            David Edelsohn  <dje.gcc@gmail.com>

        * config/rs6000/aix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define
        unconditionally.
        (ucontext_for): Add 64-bit AIX 6.1, 7.1, 7.2 support.  Add 32-bit
        AIX 7.2 support.

Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
Co-Authored-By: Matthieu Sarter <matthieu.sarter.external@atos.net>

From-SVN: r248968
2017-06-07 08:35:19 -04:00
Jonathan Wakely
6d82c56288 Add C++17 deduction guide for std::basic_string (P0433R2, partial)
* include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
	New trait and alias for detecting Allocator-like types.
	* include/bits/basic_string.h (basic_string): Add deduction guide
	from P0433.
	* include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
	parameter with default template argument that causes substitution
	failures for types that cannot be allocators.
	* testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.

From-SVN: r248967
2017-06-07 13:35:08 +01:00
Jonathan Wakely
83059741a0 PR c++/80990 use cv-qualifiers in class template argument deduction
gcc/cp:

	PR c++/80990
	* pt.c (do_class_deduction): Build qualified type.

gcc/testsuite:

	PR c++/80990
	* g++.dg/cpp1z/class-deduction39.C: New.

From-SVN: r248966
2017-06-07 12:34:36 +01:00
Bin Cheng
09a939a0d5 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
From-SVN: r248965
2017-06-07 11:31:44 +00:00
Bin Cheng
04939ee6fd graphds.c (add_edge): Intitialize edge's attached data.
* graphds.c (add_edge): Intitialize edge's attached data.
	(foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
	pointer parameter.  Call pointed function on each edge during
	graph traversing.  Skip traversing the edge when the function
	returns true.
	(graphds_dfs, graphds_scc): Ditto.
	(for_each_edge): New parameter.  Pass the new parameter to callback
	function.
	* graphds.h (skip_edge_callback): New function pointer type.
	(graphds_dfs, graphds_scc): New function pointer parameter.
	(graphds_edge_callback, for_each_edge): New parameter.

From-SVN: r248964
2017-06-07 11:29:37 +00:00
Bin Cheng
6355150f58 tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor out code checking if runtime alias check is possible to below ...
* tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
	out code checking if runtime alias check is possible to below ...
	Call the new function.
	* tree-data-ref.c (runtime_alias_check_p): ... to new function.
	* tree-data-ref.h (runtime_alias_check_p): New decalaration.

From-SVN: r248962
2017-06-07 11:28:17 +00:00
Marek Polacek
0874a778ec re PR sanitizer/80932 (UBSAN: false positive as a result of distribution: c1*(c2*v1-c3*v2)=>c1*c2*v1-c1*c3*v2)
PR sanitizer/80932
	* fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
	TYPE_OVERFLOW_WRAPS check. 

	* c-c++-common/ubsan/pr80932.c: New test.

From-SVN: r248961
2017-06-07 11:19:40 +00:00
Bin Cheng
55e872a462 l_fma_double_1.c: Adjust test strings.
gcc/testsuite
	* gcc.target/i386/l_fma_double_1.c: Adjust test strings.
	* gcc.target/i386/l_fma_double_2.c: Ditto.
	* gcc.target/i386/l_fma_double_3.c: Ditto.
	* gcc.target/i386/l_fma_double_4.c: Ditto.
	* gcc.target/i386/l_fma_double_5.c: Ditto.
	* gcc.target/i386/l_fma_double_6.c: Ditto.
	* gcc.target/i386/l_fma_float_1.c: Ditto.
	* gcc.target/i386/l_fma_float_2.c: Ditto.
	* gcc.target/i386/l_fma_float_3.c: Ditto.
	* gcc.target/i386/l_fma_float_4.c: Ditto.
	* gcc.target/i386/l_fma_float_5.c: Ditto.
	* gcc.target/i386/l_fma_float_6.c: Ditto.

From-SVN: r248960
2017-06-07 11:00:48 +00:00
Bin Cheng
704c28eeeb tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop if versioning is required.
* tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
	if versioning is required.
	* tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
	peeling with the check for versioning.

From-SVN: r248959
2017-06-07 10:56:54 +00:00
Bin Cheng
7078979b29 tree-vectorizer.h (vect_build_loop_niters): New parameter.
* tree-vectorizer.h (vect_build_loop_niters): New parameter.
	* tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
	Set true to new parameter if new ssa variable is defined.
	(vect_gen_vector_loop_niters): Refactor.  Set range information
	for the new vector loop bound variable.
	(vect_do_peeling): Ditto.

From-SVN: r248958
2017-06-07 10:53:02 +00:00
Bin Cheng
ba00284ced tree-affine.c (ssa.h): Include header file.
* tree-affine.c (ssa.h): Include header file.
	(tree_to_aff_combination): Handle (T1)(X - CST) when inner type
	has wrapping overflow behavior.

From-SVN: r248957
2017-06-07 10:49:09 +00:00
Bin Cheng
8813f50d2c * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
From-SVN: r248956
2017-06-07 10:47:26 +00:00
Bin Cheng
1b92ccde2c (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
(tree_to_aff_combination): ... here.

From-SVN: r248955
2017-06-07 10:46:21 +00:00
Bin Cheng
c18101f5d1 tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New reg_pressure model function.
* tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
	reg_pressure model function.
	(ivopts_global_cost_for_size): Delete.
	(determine_set_costs, iv_ca_recount_cost): Call new model function
	ivopts_estimate_reg_pressure.

From-SVN: r248954
2017-06-07 10:45:03 +00:00
Tamar Christina
cb9ac430cb aarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv.
2017-06-07  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv.
	Remove floating point cases from mod.

From-SVN: r248953
2017-06-07 10:06:29 +00:00
Sebastian Huber
e059725b24 RTEMS: Use TLS for Ada run-time
Do not use the RTEMS-specific task variables for the Ada run-time since
they are not available in RTEMS 4.12 or later.  Use thread-local storage
instead.

gcc/ada
	* Makefile.in (rtems): Use TLS implementation for s-tpopsp.adb.
	* s-tpopsp-rtems.adb: Delete.

From-SVN: r248952
2017-06-07 09:49:27 +00:00
Tamar Christina
54e07cb416 aarch-cost-tables.h (cortexa53_extra_cost): Increase idiv cost.
2017-06-07  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/aarch-cost-tables.h (cortexa53_extra_cost): Increase idiv cost.

From-SVN: r248951
2017-06-07 09:45:53 +00:00
Richard Biener
46c821e745 re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)
2017-06-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80928
	* gcc.dg/vect/slp-13.c: Adjust patterns with vect_pack_trunc.
	* gcc.dg/vect/slp-13-big-array.c: Likewise.

From-SVN: r248950
2017-06-07 09:39:53 +00:00
Tamar Christina
eb1d2d5d99 2017-06-07 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.md
        (copysignsf3): Fix mask generation.

From-SVN: r248949
2017-06-07 09:36:17 +00:00
Richard Biener
6eb2ac659c re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)
2017-06-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80928
	* gcc.dg/vect/slp-perm-8.c: Avoid vectorizing loop computing
	check_results.

From-SVN: r248948
2017-06-07 09:10:17 +00:00
Jakub Jelinek
363dc72c15 dumpfile.h (enum tree_dump_index): Rename TDI_generic to TDI_gimple.
* dumpfile.h (enum tree_dump_index): Rename TDI_generic to
	TDI_gimple.
	(class dump_manager): Add register_dumps method.
	* dumpfile.c: Include langhooks.h.
	(dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
	(FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
	(FIRST_ME_AUTO_NUMBERED_DUMP): Define.
	(dump_manager::dump_register): Start with 512 entries instead of 32.
	(dump_manager::register_dumps): New method.
	* toplev.c (general_init): Instead of invoking register_dumps
	langhook, invoke register_dumps method on the dump manager.
	* gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
	TDI_generic.

	* gimple-parser.c (c_parser_parse_gimple_body): Use TDI_gimple instead
	of TDI_generic.

From-SVN: r248947
2017-06-07 10:57:11 +02:00
Richard Sandiford
49e478afe3 Clarify define_insn documentation
This patch tries to clarify some of the restrictions on define_insn
conditions, and also on the use of "#".

2017-06-06  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* doc/md.texi: Clarify the restrictions on a define_insn condition.
	Say that # requires an associated define_split to exist, and that
	the define_split must be suitable for use after register allocation.

From-SVN: r248946
2017-06-07 06:45:36 +00:00
Jan Hubicka
6fcdf71413 cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
* cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
	(compute_outgoing_frequencies): Also initialize zero counts.
	(find_many_sub_basic_blocks): Do not produce uninitialized profile
	around loops; preserve more of profile when nothing changes.

From-SVN: r248945
2017-06-07 06:42:43 +00:00
Jim Wilson
96feaf79b2 Remove aarch32 support for falkor/qdf24xx, not in released hardware.
gcc/
	* config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
	here.
	* config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
	* config/arm/arm-cpu-cdata.h: Regenerate.
	* config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
	* config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
	* config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
	* config/arm/arm.c (arm_qdf24xx_tune): Delete.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
	support.
	* config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
	support.
	* config/arm/t-rmprofile: Likewise.
	* doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.

From-SVN: r248944
2017-06-06 18:55:12 -07:00
GCC Administrator
cebf55fb45 Daily bump.
From-SVN: r248942
2017-06-07 00:16:31 +00:00
Nathan Sidwell
25396db9ca name-lookup.c (suggest_alternatives_for): Use qualified lookup sans using directives.
* name-lookup.c (suggest_alternatives_for): Use qualified lookup
	sans using directives.  Don't walk into inline namespaces.

	* g++.dg/pr45330.C: Add inline namespace case.

From-SVN: r248938
2017-06-06 23:02:49 +00:00
Ian Lance Taylor
f788537d68 compiler: typing fixes for Interface_mtable_expression
Interface_mtable_expression::do_type computes a type that incorporates
    Go type descriptors for the interface methods, whereas in order to
    have strict type agreement with the mtable data, the interface method
    fields need to be C function ptrs. Change the type recipe accordingly,
    and then update Interface_mtable_expression::do_get_backend to compute
    a revised backend type that uses the correct fcn types.
    
    Reviewed-on: https://go-review.googlesource.com/44750

From-SVN: r248934
2017-06-06 20:57:03 +00:00
Thomas Koenig
bbf9741600 re PR fortran/80975 (matmul for zero-length arrays)
2017-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/80975
	* m4/matmul_internal.m4:  Move zeroing before early return.
	* generated/matmul_c10.c: Regenerated.
	* generated/matmul_c16.c: Regenerated.
	* generated/matmul_c4.c: Regenerated.
	* generated/matmul_c8.c: Regenerated.
	* generated/matmul_i1.c: Regenerated.
	* generated/matmul_i16.c: Regenerated.
	* generated/matmul_i2.c: Regenerated.
	* generated/matmul_i4.c: Regenerated.
	* generated/matmul_i8.c: Regenerated.
	* generated/matmul_r10.c: Regenerated.
	* generated/matmul_r16.c: Regenerated.
	* generated/matmul_r4.c: Regenerated.
	* generated/matmul_r8.c: Regenerated.
	* generated/matmulavx128_c10.c: Regenerated.
	* generated/matmulavx128_c16.c: Regenerated.
	* generated/matmulavx128_c4.c: Regenerated.
	* generated/matmulavx128_c8.c: Regenerated.
	* generated/matmulavx128_i1.c: Regenerated.
	* generated/matmulavx128_i16.c: Regenerated.
	* generated/matmulavx128_i2.c: Regenerated.
	* generated/matmulavx128_i4.c: Regenerated.
	* generated/matmulavx128_i8.c: Regenerated.
	* generated/matmulavx128_r10.c: Regenerated.
	* generated/matmulavx128_r16.c: Regenerated.
	* generated/matmulavx128_r4.c: Regenerated.
	* generated/matmulavx128_r8.c: Regenerated.

2017-06-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/80975
	* gfortran.dg/matmul_16.f90: New test.
	* gfortran.dg/inline_matmul_18.f90: New test.

From-SVN: r248932
2017-06-06 19:18:37 +00:00
Marek Polacek
dc94972832 re PR c/79983 (Improve enum and struct redefinition diagnostic)
PR c/79983
	* c-decl.c (start_struct): Use the location of TYPE_STUB_DECL of
	ref.
	(start_enum): Use the location of TYPE_STUB_DECL of enumtype.

	* gcc.dg/pr79983.c: New test.

From-SVN: r248927
2017-06-06 17:40:34 +00:00
David S. Miller
100d0700a8 sparc: Fix stack references in return delay slot.
gcc/

	PR target/80968
	* config/sparc/sparc.c (sparc_expand_prologue): Emit frame
	blockage if function uses alloca.

gcc/testsuite/

	* gcc.target/sparc/sparc-ret-3.c: New test.

From-SVN: r248926
2017-06-06 10:02:22 -07:00
Maxim Kuvyrkov
23b0f9f81d Improve debug output of loop data prefetching.
* tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
	New "uid" fields to hold pretty-print IDs of group and ref.
	Memory references are now identified as <group_id>:<ref_id>
	instead of using [random] addresses.
	(dump_mem_details): Simplify, no functional change.
	(dump_mem_ref): Simplify and make output more concise.
	Replace couple of fprintf's throughout code with calls to dump_mem_ref.
	(find_or_create_group): Initialize group uid.
	(record_ref): Initialize ref uid.  Improve debug output.
	(prune_group_by_reuse, should_issue_prefetch_p,)
	(should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
	(mark_nontemporal_store, determine_loop_nest_reuse):
	Improve debug output.

Change-Id: Ia594d5854de96183f3c5a669c161e5a9a73a29d7

From-SVN: r248925
2017-06-06 17:01:00 +00:00
Maxim Kuvyrkov
1a70c8d542 Add debug counter for loop array prefetching.
* dbgcnt.def (prefetch): New debug counter.
	* tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
	(schedule_prefetches): Stop issueing prefetches if debug counter
	tripped.

Change-Id: Ia6160364735a889fb6d2370be21d98f87c0fe962

From-SVN: r248924
2017-06-06 17:00:46 +00:00
Tom de Vries
6c6b519a32 Remove NO_LABEL_VALUES
2017-06-06  Tom de Vries  <tom@codesourcery.com>

	* doc/sourcebuild.texi (Testsuites, C Language Testsuites,
	gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.

	* gcc.c-torture/compile/20000326-2.c: Use dg-require-effective-target
	label_values instead of NO_LABEL_VALUES.
	* gcc.c-torture/compile/920301-1.c: Same.
	* gcc.c-torture/compile/920501-1.c: Same.
	* gcc.c-torture/compile/941014-4.c: Same.
	* gcc.c-torture/compile/labels-1.c: Same.
	* gcc.c-torture/compile/pr18903.c: Same.
	* gcc.c-torture/execute/920302-1.c: Same.
	* gcc.c-torture/execute/920415-1.c: Same.
	* gcc.c-torture/execute/920428-2.c: Same.
	* gcc.c-torture/execute/920501-3.c: Same.
	* gcc.c-torture/execute/920501-4.c: Same.
	* gcc.c-torture/execute/920501-5.c: Same.
	* gcc.c-torture/execute/920501-7.c: Same.
	* gcc.c-torture/execute/920721-4.c: Same.
	* gcc.c-torture/execute/980526-1.c: Same.
	* gcc.c-torture/execute/990208-1.c: Same.
	* gcc.c-torture/execute/comp-goto-1.c: Same.
	* gcc.c-torture/execute/comp-goto-2.c: Same.
	* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
	* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
	* gcc.dg/torture/stackalign/non-local-goto-5.c: Same.
	* gcc.dg/tree-prof/comp-goto-1.c: Same.
	* gcc.dg/tree-prof/pr44777.c: Same.
	* gcc.misc-tests/bprob-2.c: Same.
	* gcc.misc-tests/gcov-3.c: Same.
	* lib/gcc.exp (gcc_target_compile): Remove appending of
	-DNO_LABEL_VALUES to additional_flags.
	* lib/objc.exp (objc_target_compile): Same.
	* lib/target-supports.exp (check_effective_target_label_values): Test on
	'target_info exists gcc,no_label_values' instead of NO_LABEL_VALUES.

From-SVN: r248923
2017-06-06 15:35:35 +00:00
Nathan Sidwell
25d446fd38 re PR c++/80979 (ice in lookup_mark, at cp/tree.c:2298)
PR c++/80979
	* name-lookup.c (adl_class_only): Don't add visible friends.

From-SVN: r248922
2017-06-06 15:06:56 +00:00
Kyrylo Tkachov
4ebcc903bf [AArch64] Allow const0_rtx operand for atomic compare-exchange patterns
* config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
	Use aarch64_reg_or_zero predicate for operand 4.
	(aarch64_compare_and_swap<mode> define_insn_and_split):
	Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
	(aarch64_store_exclusive<mode>): Likewise for operand 2.

	* gcc.target/aarch64/atomic_cmp_exchange_zero_reg_1.c: New test.

From-SVN: r248921
2017-06-06 13:26:46 +00:00
Thomas Preud'homme
9bd01837e4 [ARM] Rename *_compute_save_reg_mask ()
2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
    (arm_compute_save_core_reg_mask): This.
    (thumb1_compute_save_reg_mask): Rename into ...
    (thumb1_compute_save_core_reg_mask): This.
    (arm_compute_save_reg0_reg12_mask): Adapt comment.
    (arm_compute_frame_layout): Likewise.

From-SVN: r248920
2017-06-06 12:58:02 +00:00
Richard Biener
331dc84013 re PR tree-optimization/80974 (wrong code (generated code hangs) at -O2 on x86_64-linux-gnu)
2017-06-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80974
	* tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
	keep or clear leaders SSA info.

	* gcc.dg/torture/pr80974.c: New testcase.

From-SVN: r248919
2017-06-06 12:46:41 +00:00
Tom de Vries
38827811dd Add and use split_mode_p
2017-06-06  Tom de Vries  <tom@codesourcery.com>

	* config/nvptx/nvptx.c (split_mode_p): New function.
	(nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.

From-SVN: r248918
2017-06-06 12:25:04 +00:00
Tom de Vries
02e4a6ff04 Use maybe_split_mode in nvptx_print_operand
2017-06-06  Tom de Vries  <tom@codesourcery.com>

	* config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.

From-SVN: r248917
2017-06-06 12:24:41 +00:00
Jan Hubicka
86fdda0591 re PR bootstrap/80978 (LTO/PGO bootstrap broken by r248863)
PR bootstrap/80978
	* tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
	profile.

From-SVN: r248915
2017-06-06 11:30:54 +00:00
Thomas Preud'homme
d2537732ca Fix gcc.dg/utf16-4.c
2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.dg/utf16-4.c: Accept "long unsigned int" as well as
    "unsigned int" in conversation warning on line 15.

From-SVN: r248914
2017-06-06 09:55:17 +00:00
Jan Hubicka
9c47c8ae36 shrink-wrap.c (handle_simple_exit): Update profile.
* shrink-wrap.c (handle_simple_exit): Update profile.
	(try_shrink_wrapping): Upate profile.

From-SVN: r248913
2017-06-06 08:08:58 +00:00
Jan Hubicka
52261a21e8 predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
* predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
	(tree_guess_outgoing_edge_probabilities): New.
	* predict.h (tree_guess_outgoing_edge_probabilities): Declare.
	* tree-cfg.c (gimple_find_sub_bbs): Propagate profile.

From-SVN: r248912
2017-06-06 08:07:31 +00:00
Jan Hubicka
ce6ec23497 * ipa-split.c (split_function): Initialize return bb profile.
From-SVN: r248911
2017-06-06 08:05:29 +00:00
Jan Hubicka
873fa2048c profile.c (compute_branch_probabilities): Also initialize EXIT_BLOCK profile.
* profile.c (compute_branch_probabilities): Also initialize
	EXIT_BLOCK profile.

From-SVN: r248910
2017-06-06 08:03:55 +00:00
Richard Biener
e7baeb396d re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)
2017-06-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80928
	* tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
	(vect_analyze_loop_operations): Properly guard analysis for
	pure SLP case.
	(vect_transform_loop): Likewise.
	(vect_analyze_loop_2): Also reset SLP type on PHIs.
	(vect_model_induction_cost): Do not cost for pure SLP.
	(vectorizable_induction): Pass in SLP node, implement SLP vectorization
	of induction in inner loop vectorization.
	* tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
	(vect_get_and_check_slp_defs): Handle vect_induction_def.
	(vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
	recursion.
	(vect_analyze_slp_cost_1): Cost induction.
	(vect_detect_hybrid_slp_stmts): Handle PHIs.
	(vect_get_slp_vect_defs): Likewise.
	* tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
	(vect_transform_stmt): Handle SLP reductions.
	* tree-vectorizer.h (vectorizable_induction): Adjust.

	* gcc.dg/vect/pr80928.c: New testcase.
	* gcc.dg/vect/slp-13-big-array.c: Remove XFAILs.
	* gcc.dg/vect/slp-13.c: Likewise.
	* gcc.dg/vect/slp-perm-9.c: Prevent vectorization of check loop.

From-SVN: r248909
2017-06-06 07:37:14 +00:00
GCC Administrator
09a04a5e5e Daily bump.
From-SVN: r248908
2017-06-06 00:16:19 +00:00
Michael Meissner
cfd29772da rs6000.c (make_resolver_func): Update init_lowered_empty_function call.
2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (make_resolver_func): Update
	init_lowered_empty_function call.

From-SVN: r248902
2017-06-05 21:14:21 +00:00
David Malcolm
05945a1b83 libcpp: add callback for comment-handling
gcc/testsuite/ChangeLog:
	* g++.dg/plugin/comment_plugin.c: New test plugin.
	* g++.dg/plugin/comments-1.C: New test file.
	* g++.dg/plugin/plugin.exp (plugin_test_list): Add the above.

libcpp/ChangeLog:
	* include/cpplib.h (struct cpp_callbacks): Add "comment"
	callback.
	* lex.c (_cpp_lex_direct): Call the comment callback if non-NULL.

From-SVN: r248901
2017-06-05 20:53:06 +00:00
Bernd Edlinger
9b972837bd changelog for r248894
From-SVN: r248895
2017-06-05 19:44:29 +00:00