Commit Graph

154084 Commits

Author SHA1 Message Date
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
Bernd Edlinger
676519f713 invoke.texi: Document the -fprofile-abs-path option.
2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/invoke.texi: Document the -fprofile-abs-path option.
        * common.opt (fprofile-abs-path): New option.
        * gcov-io.h (gcov_write_filename): Declare.
        * gcov-io.c (gcov_write_filename): New function.
        * coverage.c (coverage_begin_function): Use gcov_write_filename.
        * profile.c (output_location): Likewise.

gcc/testsuite:
2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.misc-tests/gcov-1a.c: New test.

From-SVN: r248894
2017-06-05 19:27:30 +00:00
Jan Hubicka
7b95ed64c9 * shring-wrap.c: Revert accidental commit.
From-SVN: r248893
2017-06-05 19:14:49 +00:00
Volker Reichelt
2506e3b02a * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
From-SVN: r248887
2017-06-05 18:05:37 +00:00
Jan Hubicka
aea5e79a63 cfgexpand.c (expand_gimple_tailcall): Initialize profile of new edge.
* cfgexpand.c (expand_gimple_tailcall): Initialize profile of
	new edge.
	* ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
	profile in callgraph edge.
	* profile-count.h (apply_probability): If THIS is 0, then result is 0
	(apply_scale): Likewise.
	* tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
	Also scale profile when inlining function with zero profile.
	(initialize_cfun): Update exit block profile even when it is zero.
	* tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
	when profile is read.

From-SVN: r248885
2017-06-05 17:41:32 +00:00
Volker Reichelt
2f20e7db2c parser.c (cp_parser_base_specifier): Fix typos in error messages.
* parser.c (cp_parser_base_specifier): Fix typos in error messages.

From-SVN: r248884
2017-06-05 17:40:32 +00:00
Michael Meissner
1d135d9873 rs6000.c (toplevel): Include attribs.h.
[gcc]
2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (toplevel): Include attribs.h.
	(CLONE_*): New constants to define the processors we can generate
	code for with the target_clone attribute.
	(rs6000_clone_map): New array to identify which clone processors
	the current program is running on.
	(TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
	target_clone attribute.
	(TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
	(TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
	(TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
	(cpu_expand_builtin): Add support for target_clone attribute.
	(rs6000_valid_attribute_p): Allow "default" attribute.
	(get_decl_name): New debug function to simplify printing the
	current function name in debugging statements.
	(rs6000_clone_priority): New functions to support the target_clone
	attribute, and be able to generate code to switch between ISA 2.05
	through ISA 3.0 (power6 through power9).
	(rs6000_compare_version_priority): Likewise.
	(rs6000_get_function_versions_dispatcher): Likewise.
	(make_resolver_func): Likewise.
	(add_condition_to_bb): Likewise.
	(dispatch_function_versions): Likewise.
	(rs6000_generate_version_dispatcher_body): Likewise.
	(rs6000_can_inline_p): Call get_decl_name for debugging usage.
	(fusion_gpr_load_p): Fix a spacing issue.
	* doc/extend.texi (Common Function Attributes): Document that the
	PowerPC supports the target_clone attribute.

[gcc/testsuite]
2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/clone1.c: New test.

From-SVN: r248883
2017-06-05 17:37:58 +00:00
Jonathan Wakely
94895bd98d PR libstdc++/80939 Remove unmeetable constexpr specifiers
PR libstdc++/80939
	* include/std/variant (__erased_ctor, __erased_assign, __erased_swap)
	(__erased_hash): Remove constexpr specifier and qualify calls to
	__ref_cast.
	(__erased_dtor): Remove constexpr specifier and use _Destroy.

From-SVN: r248881
2017-06-05 17:49:04 +01:00
Thomas Preud'homme
3c5a5b930d [ARM] Complete legend for ARM register allocation in arm.h
2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.h: explain F symbol found in description of ARM
    register allocation in its legend.

From-SVN: r248880
2017-06-05 16:40:02 +00:00
Jan Hubicka
e09f2fb0ef frame-header-opt.c: Include profile-count.h.
* config/mips/frame-header-opt.c: Include profile-count.h.
	* config/riscv/riscv.c: Include profile-count.h

From-SVN: r248879
2017-06-05 15:35:20 +00:00
Janus Weil
92bba237da re PR fortran/70601 ([OOP] ICE on procedure pointer component call)
2017-06-05  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/70601
	* trans-expr.c (gfc_conv_procedure_call): Fix detection of allocatable
	function results.


2017-06-05  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/70601
	* gfortran.dg/proc_ptr_comp_50.f90: New test.

From-SVN: r248878
2017-06-05 16:43:01 +02:00
Nicolas Koenig
7b3ee9c97d re PR fortran/35339 (Improve translation of implied do loop in transfer)
2017-06-05  Nicolas Koenig  <koenigni@student.ethz.ch>

	PR fortran/35339
	* frontend-passes.c (traverse_io_block): New function.
	(simplify_io_impl_do): New function.
	(optimize_namespace): Invoke gfc_code_walker with
	simplify_io_impl_do.

2017-06-05  Nicolas Koenig  <koenigni@student.ethz.ch>

	PR fortran/35339
	* gfortran.dg/implied_do_io_1.f90: New Test.
	* gfortran.dg/implied_do_io_2.f90: New Test.

From-SVN: r248877
2017-06-05 12:35:11 +00:00
Renlin Li
e4d1c5c438 [testsuite] Add large_long_double target selector to related tests in Wfloat-conversion.c
testsuite/
2017-06-05 Renlin Li <renlin.li@arm.com>

	* c-c++-common/Wfloat-conversion.c: Add large_long_double target
	selector to related line.

From-SVN: r248876
2017-06-05 10:40:37 +00:00
Jonathan Wakely
6c24177862 Optimize std::advance for single increments
* include/bits/stl_iterator_base_funcs.h
	(__advance<_RandomAccessIterator, _Distance>): Optimize for next/prev
	cases where incrementing or decrementing a single step.

From-SVN: r248875
2017-06-05 11:34:13 +01:00
Jonathan Wakely
d08606ce6c Add noexcept to shared_ptr owner comparisons (LWG 2873)
* include/bits/shared_ptr_base.h (__shared_ptr::owner_before)
	(__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept
	specifiers as per LWG 2873 and LWG 2942.
	* testsuite/20_util/owner_less/noexcept.cc: New.
	* testsuite/20_util/shared_ptr/observers/owner_before.cc: Test
	noexcept guarantees.
	* testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise.

From-SVN: r248874
2017-06-05 10:33:19 +01:00
Jan Hubicka
d91561cb51 cold_partition_label.c: Update template.
* gcc.dg/tree-prof/cold_partition_label.c: Update template.

	* tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
	update profile.
	(sm_set_flag_if_changed): Add bbs field.
	(execute_sm_if_changed_flag_set): Pass BBS.
	(execute_sm): Update.

From-SVN: r248872
2017-06-05 09:18:57 +00:00
Kyrylo Tkachov
d83950138b [AArch64] Add combine pattern for storing lane zero of a vector
* config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
	New pattern.

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

From-SVN: r248871
2017-06-05 08:52:02 +00:00
Kyrylo Tkachov
279dc4b464 [AArch64] Use SUBS for parallel subtraction and comparison with immediate
* config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
	(peephole2): New peephole2 to emit the above.
	* config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.

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

From-SVN: r248870
2017-06-05 08:49:59 +00:00
Kyrylo Tkachov
e49d8b68a2 [AArch64] Peephole for SUBS
* config/aarch64/aarch64.c (define_peephole2 above
	*sub_<shift>_<mode>): New peephole.

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

From-SVN: r248869
2017-06-05 08:46:28 +00:00
Chenghua Xu
4456f65d43 div-9.c: Delete duplicate test.
2017-06-05  Chenghua Xu  <paul.hua.gm@gmail.com>

	* gcc.target/mips/div-9.c: Delete duplicate test.
	* gcc.target/mips/div-10.c: Ditto.
	* gcc.target/mips/div-11.c: Ditto.
	* gcc.target/mips/div-12.c: Ditto.

From-SVN: r248868
2017-06-05 02:13:30 +00:00
GCC Administrator
36575b70f5 Daily bump.
From-SVN: r248867
2017-06-05 00:16:31 +00:00
Jan Hubicka
3995f3a220 i386.c (make_resolver_func): Update.
2017-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.c (make_resolver_func): Update.
	* Makefile.in: Add profile-count.h and profile-count.o
	* auto-profile.c (afdo_indirect_call): Update to new API.
	(afdo_set_bb_count): Update.
	(afdo_propagate_edge): Update.
	(afdo_propagate_circuit): Update.
	(afdo_calculate_branch_prob): Update.
	(afdo_annotate_cfg): Update.
	* basic-block.h: Include profile-count.h
	(struct edge_def): Turn count to profile_count.
	(struct basic_block_def): Likewie.
	(REG_BR_PROB_BASE): Move to profile-count.h
	(RDIV): Move to profile-count.h
	* bb-reorder.c (max_entry_count): Turn to profile_count.
	(find_traces): Update.
	(rotate_loop):Update.
	(connect_traces):Update.
	(sanitize_hot_paths):Update.
	* bt-load.c (migrate_btr_defs): Update.
	* cfg.c (RDIV): Remove.
	(init_flow): Use alloc_block.
	(alloc_block): Uninitialize count.
	(unchecked_make_edge): Uninitialize count.
	(check_bb_profile): Update.
	(dump_edge_info): Update.
	(dump_bb_info): Update.
	(update_bb_profile_for_threading): Update.
	(scale_bbs_frequencies_int): Update.
	(scale_bbs_frequencies_gcov_type): Update.
	(scale_bbs_frequencies_profile_count): New.
	* cfg.h (update_bb_profile_for_threading): Update.
	(scale_bbs_frequencies_profile_count): Declare.
	* cfgbuild.c (compute_outgoing_frequencies): Update.
	(find_many_sub_basic_blocks): Update.
	* cfgcleanup.c (try_forward_edges): Update.
	(try_crossjump_to_edge): Update.
	* cfgexpand.c (expand_gimple_tailcall): Update.
	(construct_exit_block): Update.
	* cfghooks.c (verify_flow_info): Update.
	(dump_bb_for_graph): Update.
	(split_edge): Update.
	(make_forwarder_block): Update.
	(duplicate_block): Update.
	(account_profile_record): Update.
	* cfgloop.c (find_subloop_latch_edge_by_profile): Update.
	(get_estimated_loop_iterations): Update.
	* cfgloopanal.c (expected_loop_iterations_unbounded): Update.
	(single_likely_exit): Update.
	* cfgloopmanip.c (scale_loop_profile): Update.
	(loopify): Update.
	(set_zero_probability): Update.
	(lv_adjust_loop_entry_edge): Update.
	* cfgrtl.c (force_nonfallthru_and_redirect): Update.
	(purge_dead_edges): Update.
	(rtl_account_profile_record): Update.
	* cgraph.c (cgraph_node::create): Uninitialize count.
	(symbol_table::create_edge): Uninitialize count.
	(cgraph_update_edges_for_call_stmt_node): Update.
	(cgraph_edge::dump_edge_flags): Update.
	(cgraph_node::dump): Update.
	(cgraph_edge::maybe_hot_p): Update.
	* cgraph.h: Include profile-count.h
	(create_clone), create_edge, create_indirect_edge): Update.
	(cgraph_node): Turn count to profile_count.
	(cgraph_edge0: Likewise.
	(make_speculative, clone): Update.
	(create_edge): Update.
	(init_lowered_empty_function): Update.
	* cgraphclones.c (cgraph_edge::clone): Update.
	(duplicate_thunk_for_node): Update.
	(cgraph_node::create_clone): Update.
	* cgraphunit.c (cgraph_node::analyze): Update.
	(cgraph_node::expand_thunk): Update.
	* final.c (dump_basic_block_info): Update.
	* gimple-streamer-in.c (input_bb): Update.
	* gimple-streamer-out.c (output_bb): Update.
	* graphite.c (print_global_statistics): Update.
	(print_graphite_scop_statistics): Update.
	* hsa-brig.c: Include basic-block.h.
	* hsa-dump.c: Include basic-block.h.
	* hsa-gen.c (T sum_slice): Update.
	(convert_switch_statements):Update.
	* hsa-regalloc.c: Include basic-block.h.
	* ipa-chkp.c (chkp_produce_thunks): Update.
	* ipa-cp.c (struct caller_statistics): Update.
	(init_caller_stats): Update.
	(gather_caller_stats): Update.
	(ipcp_cloning_candidate_p): Update.
	(good_cloning_opportunity_p): Update.
	(get_info_about_necessary_edges): Update.
	(dump_profile_updates): Update.
	(update_profiling_info): Update.
	(update_specialized_profile): Update.
	(perhaps_add_new_callers): Update.
	(decide_about_value): Update.
	(ipa_cp_c_finalize): Update.
	* ipa-devirt.c (struct odr_type_warn_count): Update.
	(struct decl_warn_count): Update.
	(struct final_warning_record): Update.
	(possible_polymorphic_call_targets): Update.
	(ipa_devirt): Update.
	* ipa-fnsummary.c (redirect_to_unreachable): Update.
	* ipa-icf.c (sem_function::merge): Update.
	* ipa-inline-analysis.c (do_estimate_edge_time): Update.
	* ipa-inline.c (compute_uninlined_call_time): Update.
	(compute_inlined_call_time): Update.
	(want_inline_small_function_p): Update.
	(want_inline_self_recursive_call_p): Update.
	(edge_badness): Update.
	(lookup_recursive_calls): Update.
	(recursive_inlining): Update.
	(inline_small_functions): Update.
	(dump_overall_stats): Update.
	(dump_inline_stats): Update.
	* ipa-profile.c (ipa_profile_generate_summary): Update.
	(ipa_propagate_frequency): Update.
	(ipa_profile): Update.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Update.
	* ipa-utils.c (ipa_merge_profiles): Update.
	* loop-doloop.c (doloop_modify): Update.
	* loop-unroll.c (report_unroll): Update.
	(unroll_loop_runtime_iterations): Update.
	* lto-cgraph.c (lto_output_edge): Update.
	(lto_output_node): Update.
	(input_node): Update.
	(input_edge): Update.
	(merge_profile_summaries): Update.
	* lto-streamer-in.c (input_cfg): Update.
	* lto-streamer-out.c (output_cfg): Update.
	* mcf.c (create_fixup_graph): Update.
	(adjust_cfg_counts): Update.
	(sum_edge_counts): Update.
	* modulo-sched.c (sms_schedule): Update.
	* postreload-gcse.c (eliminate_partially_redundant_load): Update.
	* predict.c (maybe_hot_count_p): Update.
	(probably_never_executed): Update.
	(dump_prediction): Update.
	(combine_predictions_for_bb): Update.
	(propagate_freq): Update.
	(handle_missing_profiles): Update.
	(counts_to_freqs): Update.
	(rebuild_frequencies): Update.
	(force_edge_cold): Update.
	* predict.h: Include profile-count.h
	(maybe_hot_count_p, counts_to_freqs): UPdate.
	* print-rtl-function.c: Do not include cfg.h
	* print-rtl.c: Include basic-block.h
	* profile-count.c: New file.
	* profile-count.h: New file.
	* profile.c (is_edge_inconsistent): Update.
	(correct_negative_edge_counts): Update.
	(is_inconsistent): Update.
	(set_bb_counts): Update.
	(read_profile_edge_counts): Update.
	(compute_frequency_overlap): Update.
	(compute_branch_probabilities): Update; Initialize and deinitialize
	gcov_count tables.
	(branch_prob): Update.
	* profile.h (bb_gcov_counts, edge_gcov_counts): New.
	(edge_gcov_count): New.
	(bb_gcov_count): New.
	* shrink-wrap.c (try_shrink_wrapping): Update.
	* tracer.c (better_p): Update.
	* trans-mem.c (expand_transaction): Update.
	(ipa_tm_insert_irr_call): Update.
	(ipa_tm_insert_gettmclone_call): Update.
	* tree-call-cdce.c: Update.
	* tree-cfg.c (gimple_duplicate_sese_region): Update.
	(gimple_duplicate_sese_tail): Update.
	(gimple_account_profile_record): Update.
	(execute_fixup_cfg): Update.
	* tree-inline.c (copy_bb): Update.
	(copy_edges_for_bb): Update.
	(initialize_cfun): Update.
	(freqs_to_counts): Update.
	(copy_cfg_body): Update.
	(expand_call_inline): Update.
	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
	* tree-ssa-loop-ivcanon.c (unloop_loops): Update.
	(try_unroll_loop_completely): Update.
	(try_peel_loop): Update.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
	* tree-ssa-loop-split.c (connect_loops): Update.
	* tree-ssa-loop-unswitch.c (hoist_guard): Update.
	* tree-ssa-reassoc.c (branch_fixup): Update.
	* tree-ssa-tail-merge.c (replace_block_by): Update.
	* tree-ssa-threadupdate.c (create_block_for_threading): Update.
	(compute_path_counts): Update.
	(update_profile): Update.
	(recompute_probabilities): Update.
	(update_joiner_offpath_counts): Update.
	(estimated_freqs_path): Update.
	(freqs_to_counts_path): Update.
	(clear_counts_path): Update.
	(ssa_fix_duplicate_block_edges): Update.
	(duplicate_thread_path): Update.
	* tree-switch-conversion.c (case_bit_test_cmp): Update.
	(struct switch_conv_info): Update.
	* tree-tailcall.c (decrease_profile): Update.
	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
	* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
	* value-prof.c (check_counter): Update.
	(gimple_divmod_fixed_value): Update.
	(gimple_mod_pow2): Update.
	(gimple_mod_subtract): Update.
	(gimple_ic_transform): Update.
	(gimple_stringop_fixed_value): Update.
	* value-prof.h (gimple_ic): Update.

	* gcc.dg/tree-ssa/attr-hotcold-2.c: Update template.

From-SVN: r248863
2017-06-04 18:55:08 +00:00
Dominique d'Humieres
a7e8f816bd 2017-06-04 Dominique d'Humieres <dominiq@lps.ens.fr>
Add missing file in the previous commit.

From-SVN: r248862
2017-06-04 20:47:09 +02:00