gcc.git
7 years agoAdd debug counter for loop array prefetching.
Maxim Kuvyrkov [Tue, 6 Jun 2017 17:00:46 +0000 (17:00 +0000)]
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

7 years agoRemove NO_LABEL_VALUES
Tom de Vries [Tue, 6 Jun 2017 15:35:35 +0000 (15:35 +0000)]
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

7 years agore PR c++/80979 (ice in lookup_mark, at cp/tree.c:2298)
Nathan Sidwell [Tue, 6 Jun 2017 15:06:56 +0000 (15:06 +0000)]
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

7 years ago[AArch64] Allow const0_rtx operand for atomic compare-exchange patterns
Kyrylo Tkachov [Tue, 6 Jun 2017 13:26:46 +0000 (13:26 +0000)]
[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

7 years ago[ARM] Rename *_compute_save_reg_mask ()
Thomas Preud'homme [Tue, 6 Jun 2017 12:58:02 +0000 (12:58 +0000)]
[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

7 years agore PR tree-optimization/80974 (wrong code (generated code hangs) at -O2 on x86_64...
Richard Biener [Tue, 6 Jun 2017 12:46:41 +0000 (12:46 +0000)]
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

7 years agoAdd and use split_mode_p
Tom de Vries [Tue, 6 Jun 2017 12:25:04 +0000 (12:25 +0000)]
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

7 years agoUse maybe_split_mode in nvptx_print_operand
Tom de Vries [Tue, 6 Jun 2017 12:24:41 +0000 (12:24 +0000)]
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

7 years agore PR bootstrap/80978 (LTO/PGO bootstrap broken by r248863)
Jan Hubicka [Tue, 6 Jun 2017 11:30:54 +0000 (13:30 +0200)]
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

7 years agoFix gcc.dg/utf16-4.c
Thomas Preud'homme [Tue, 6 Jun 2017 09:55:17 +0000 (09:55 +0000)]
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

7 years agoshrink-wrap.c (handle_simple_exit): Update profile.
Jan Hubicka [Tue, 6 Jun 2017 08:08:58 +0000 (10:08 +0200)]
shrink-wrap.c (handle_simple_exit): Update profile.

* shrink-wrap.c (handle_simple_exit): Update profile.
(try_shrink_wrapping): Upate profile.

From-SVN: r248913

7 years agopredict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
Jan Hubicka [Tue, 6 Jun 2017 08:07:31 +0000 (10:07 +0200)]
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

7 years ago* ipa-split.c (split_function): Initialize return bb profile.
Jan Hubicka [Tue, 6 Jun 2017 08:05:29 +0000 (10:05 +0200)]
* ipa-split.c (split_function): Initialize return bb profile.

From-SVN: r248911

7 years agoprofile.c (compute_branch_probabilities): Also initialize EXIT_BLOCK profile.
Jan Hubicka [Tue, 6 Jun 2017 08:03:55 +0000 (10:03 +0200)]
profile.c (compute_branch_probabilities): Also initialize EXIT_BLOCK profile.

* profile.c (compute_branch_probabilities): Also initialize
EXIT_BLOCK profile.

From-SVN: r248910

7 years agore PR tree-optimization/80928 (SLP vectorization does not handle induction in outer...
Richard Biener [Tue, 6 Jun 2017 07:37:14 +0000 (07:37 +0000)]
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

7 years agoDaily bump.
GCC Administrator [Tue, 6 Jun 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248908

7 years agors6000.c (make_resolver_func): Update init_lowered_empty_function call.
Michael Meissner [Mon, 5 Jun 2017 21:14:21 +0000 (21:14 +0000)]
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

7 years agolibcpp: add callback for comment-handling
David Malcolm [Mon, 5 Jun 2017 20:53:06 +0000 (20:53 +0000)]
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

7 years agochangelog for r248894
Bernd Edlinger [Mon, 5 Jun 2017 19:44:29 +0000 (19:44 +0000)]
changelog for r248894

From-SVN: r248895

7 years agoinvoke.texi: Document the -fprofile-abs-path option.
Bernd Edlinger [Mon, 5 Jun 2017 19:27:30 +0000 (19:27 +0000)]
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

7 years ago* shring-wrap.c: Revert accidental commit.
Jan Hubicka [Mon, 5 Jun 2017 19:14:49 +0000 (21:14 +0200)]
* shring-wrap.c: Revert accidental commit.

From-SVN: r248893

7 years ago* doc/invoke.texi (-Wduplicated-branches): Add to warning list.
Volker Reichelt [Mon, 5 Jun 2017 18:05:37 +0000 (18:05 +0000)]
* doc/invoke.texi (-Wduplicated-branches): Add to warning list.

From-SVN: r248887

7 years agocfgexpand.c (expand_gimple_tailcall): Initialize profile of new edge.
Jan Hubicka [Mon, 5 Jun 2017 17:41:32 +0000 (19:41 +0200)]
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

7 years agoparser.c (cp_parser_base_specifier): Fix typos in error messages.
Volker Reichelt [Mon, 5 Jun 2017 17:40:32 +0000 (17:40 +0000)]
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

7 years agors6000.c (toplevel): Include attribs.h.
Michael Meissner [Mon, 5 Jun 2017 17:37:58 +0000 (17:37 +0000)]
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

7 years agoPR libstdc++/80939 Remove unmeetable constexpr specifiers
Jonathan Wakely [Mon, 5 Jun 2017 16:49:04 +0000 (17:49 +0100)]
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

7 years ago[ARM] Complete legend for ARM register allocation in arm.h
Thomas Preud'homme [Mon, 5 Jun 2017 16:40:02 +0000 (16:40 +0000)]
[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

7 years agoframe-header-opt.c: Include profile-count.h.
Jan Hubicka [Mon, 5 Jun 2017 15:35:20 +0000 (17:35 +0200)]
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

7 years agore PR fortran/70601 ([OOP] ICE on procedure pointer component call)
Janus Weil [Mon, 5 Jun 2017 14:43:01 +0000 (16:43 +0200)]
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

7 years agore PR fortran/35339 (Improve translation of implied do loop in transfer)
Nicolas Koenig [Mon, 5 Jun 2017 12:35:11 +0000 (14:35 +0200)]
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

7 years ago[testsuite] Add large_long_double target selector to related tests in Wfloat-conversion.c
Renlin Li [Mon, 5 Jun 2017 10:40:37 +0000 (10:40 +0000)]
[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

7 years agoOptimize std::advance for single increments
Jonathan Wakely [Mon, 5 Jun 2017 10:34:13 +0000 (11:34 +0100)]
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

7 years agoAdd noexcept to shared_ptr owner comparisons (LWG 2873)
Jonathan Wakely [Mon, 5 Jun 2017 09:33:19 +0000 (10:33 +0100)]
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

7 years agocold_partition_label.c: Update template.
Jan Hubicka [Mon, 5 Jun 2017 09:18:57 +0000 (11:18 +0200)]
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

7 years ago[AArch64] Add combine pattern for storing lane zero of a vector
Kyrylo Tkachov [Mon, 5 Jun 2017 08:52:02 +0000 (08:52 +0000)]
[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

7 years ago[AArch64] Use SUBS for parallel subtraction and comparison with immediate
Kyrylo Tkachov [Mon, 5 Jun 2017 08:49:59 +0000 (08:49 +0000)]
[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

7 years ago[AArch64] Peephole for SUBS
Kyrylo Tkachov [Mon, 5 Jun 2017 08:46:28 +0000 (08:46 +0000)]
[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

7 years agodiv-9.c: Delete duplicate test.
Chenghua Xu [Mon, 5 Jun 2017 02:13:30 +0000 (02:13 +0000)]
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

7 years agoDaily bump.
GCC Administrator [Mon, 5 Jun 2017 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248867

7 years agoi386.c (make_resolver_func): Update.
Jan Hubicka [Sun, 4 Jun 2017 18:55:08 +0000 (20:55 +0200)]
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

7 years ago2017-06-04 Dominique d'Humieres <dominiq@lps.ens.fr>
Dominique d'Humieres [Sun, 4 Jun 2017 18:47:09 +0000 (20:47 +0200)]
2017-06-04  Dominique d'Humieres  <dominiq@lps.ens.fr>

Add missing file in the previous commit.

From-SVN: r248862

7 years agofortran-modules.exp (igrep): New procedure, case insensitive vesrion of the dejagnu...
Dominique d'Humieres [Sun, 4 Jun 2017 18:44:45 +0000 (20:44 +0200)]
fortran-modules.exp (igrep): New procedure, case insensitive vesrion of the dejagnu grep.

2017-06-04  Dominique d'Humieres  <dominiq@lps.ens.fr>

* lib/fortran-modules.exp (igrep): New procedure, case insensitive
vesrion of the dejagnu grep.
(list-module-names): Use it and adjust the regular expressions for
modules and submodules.
* gfortran.dg/prof/prof.exp: Cleanup modules.
* gfortran.dg/allocate_class_4.f90: Remove cleanup-(sub)?modules
directives.
* gfortran.dg/altreturn_8.f90: Likewise.
* gfortran.dg/associate_12.f90: Likewise.
* gfortran.dg/c_f_pointer_shape_test.f90: Likewise.
* gfortran.dg/charlen_15.f90: Likewise.
* gfortran.dg/class_4a.f03: Likewise.
* gfortran.dg/class_54.f90: Likewise.
* gfortran.dg/class_dummy_4.f03: Likewise.
* gfortran.dg/class_dummy_5.f90: Likewise.
* gfortran.dg/constructor_9.f90: Likewise.
* gfortran.dg/dec_structure_15.f90: Likewise.
* gfortran.dg/do_check_8.f90: Likewise.
* gfortran.dg/dtio_26.f03: Likewise.
* gfortran.dg/dynamic_dispatch_12.f90: Likewise.
* gfortran.dg/equiv_9.f90: Likewise.
* gfortran.dg/extends_15.f90: Likewise.
* gfortran.dg/finalize_22.f90: Likewise.
* gfortran.dg/finalize_23.f90: Likewise.
* gfortran.dg/generic_26.f90: Likewise.
* gfortran.dg/generic_27.f90: Likewise.
* gfortran.dg/namelist_76.f90: Likewise.
* gfortran.dg/pointer_init_8.f90: Likewise.
* gfortran.dg/pr61318.f90: Likewise.
* gfortran.dg/pr77260_1.f90: Likewise.
* gfortran.dg/pr77260_2.f90: Likewise.
* gfortran.dg/pr77420_3.f90: Likewise.
* gfortran.dg/proc_ptr_39.f90: Likewise.
* gfortran.dg/proc_ptr_41.f90: Likewise.
* gfortran.dg/proc_ptr_42.f90: Likewise.
* gfortran.dg/proc_ptr_comp_43.f90: Likewise.
* gfortran.dg/submodule_1.f08: Likewise.
* gfortran.dg/submodule_10.f08: Likewise.
* gfortran.dg/submodule_14.f08: Likewise.
* gfortran.dg/submodule_15.f08: Likewise.
* gfortran.dg/submodule_2.f08: Likewise.
* gfortran.dg/submodule_5.f08: Likewise.
* gfortran.dg/submodule_6.f08: Likewise.
* gfortran.dg/submodule_7.f08: Likewise.
* gfortran.dg/submodule_8.f08: Likewise.
* gfortran.dg/submodule_9.f08: Likewise.
* gfortran.dg/transfer_class_2.f90: Likewise.
* gfortran.dg/typebound_assignment_7.f90: Likewise.
* gfortran.dg/typebound_call_24.f03: Likewise.
* gfortran.dg/typebound_call_25.f90: Likewise.
* gfortran.dg/typebound_deferred_1.f90: Likewise.
* gfortran.dg/typebound_generic_12.f03: Likewise.
* gfortran.dg/typebound_generic_13.f03: Likewise.
* gfortran.dg/typebound_generic_14.f03: Likewise.
* gfortran.dg/typebound_generic_15.f90: Likewise.
* gfortran.dg/typebound_operator_16.f03: Likewise.
* gfortran.dg/typebound_operator_18.f90: Likewise.
* gfortran.dg/typebound_operator_20.f90: Likewise.
* gfortran.dg/typebound_override_3.f90: Likewise.
* gfortran.dg/typebound_override_4.f90: Likewise.
* gfortran.dg/typebound_override_5.f90: Likewise.
* gfortran.dg/typebound_override_6.f90: Likewise.
* gfortran.dg/typebound_override_7.f90: Likewise.
* gfortran.dg/typebound_proc_28.f03: Likewise.
* gfortran.dg/typebound_proc_29.f90: Likewise.
* gfortran.dg/typebound_proc_30.f90: Likewise.
* gfortran.dg/typebound_proc_31.f90: Likewise.
* gfortran.dg/typebound_proc_32.f90: Likewise.
* gfortran.dg/typebound_proc_33.f90: Likewise.
* gfortran.dg/unlimited_polymorphic_16.f90: Likewise.
* gfortran.dg/unlimited_polymorphic_19.f90: Likewise.
* gfortran.dg/unlimited_polymorphic_24.f03: Likewise.
* gfortran.dg/use_only_3.f90: Likewise.
* gfortran.dg/use_without_only_1.f90: Likewise.
* gfortran.dg/warn_unused_function.f90: Likewise.
* gfortran.dg/warn_unused_function_2.f90: Likewise.
* gfortran.dg/ieee/ieee_8.f90: Likewise.

From-SVN: r248861

7 years agore PR c/80919 (ICE: Segmentation fault with -Wall when printing address of size 0...
Marek Polacek [Sun, 4 Jun 2017 17:27:22 +0000 (17:27 +0000)]
re PR c/80919 (ICE: Segmentation fault with -Wall when printing address of size 0 array)

PR c/80919
* c-format.c (matching_type_p): Return false if any of the types
requires structural equality.

* gcc.dg/format/pr80919.c: New test.

From-SVN: r248860

7 years agoDaily bump.
GCC Administrator [Sun, 4 Jun 2017 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248859

7 years agobaseline_symbols.txt: Update.
Andreas Schwab [Sat, 3 Jun 2017 09:56:43 +0000 (09:56 +0000)]
baseline_symbols.txt: Update.

* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r248854

7 years agoconfigure.ac (*-*-linux-android*): Set target_makefile_frag.
Eric Botcazou [Sat, 3 Jun 2017 08:23:22 +0000 (08:23 +0000)]
configure.ac (*-*-linux-android*): Set target_makefile_frag.

* configure.ac (*-*-linux-android*): Set target_makefile_frag.
* configure: Regenerate.
config/
* mt-android: New file.
libstdc++-v3/
* src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.

From-SVN: r248853

7 years agoPR c/80892 - -Wfloat-conversion now warns about non-floats
Martin Sebor [Sat, 3 Jun 2017 02:49:30 +0000 (02:49 +0000)]
PR c/80892 - -Wfloat-conversion now warns about non-floats

gcc/c-family/ChangeLog:

PR c/80892
* c-warn.c (conversion_warning): Use -Wconversion for integer
conversion and -Wfloat-conversion for floating one.

gcc/testsuite/ChangeLog:

PR c/80892
* c-c++-common/Wfloat-conversion-2.c: New test.

From-SVN: r248852

7 years agoDaily bump.
GCC Administrator [Sat, 3 Jun 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248851

7 years agore PR c++/68754 (Explicitly defaulted constexpr assignment operator fails to compile)
Paolo Carlini [Fri, 2 Jun 2017 23:27:22 +0000 (23:27 +0000)]
re PR c++/68754 (Explicitly defaulted constexpr assignment operator fails to compile)

2017-06-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68754
* g++.dg/cpp1y/constexpr-68754.C: New.

From-SVN: r248847

7 years agors6000-c: Add support for built-in functions vector double vec_doublee (vector signed...
Carl Love [Fri, 2 Jun 2017 20:11:40 +0000 (20:11 +0000)]
rs6000-c: Add support for built-in functions vector double vec_doublee (vector signed int)...

gcc/ChangeLog:

2017-06-02  Carl Love  <cel@us.ibm.com>

   * config/rs6000/rs6000-c: Add support for built-in functions
   vector double vec_doublee (vector signed int);
   vector double vec_doublee (vector unsigned int);
   vector double vec_doublee (vector float);
   vector double vec_doubleh (vector signed int);
   vector double vec_doubleh (vector unsigned int);
   vector double vec_doubleh (vector float);
   vector double vec_doublel (vector signed int);
   vector double vec_doublel (vector unsigned int);
   vector double vec_doublel (vector float);
   vector double vec_doubleo (vector signed int);
   vector double vec_doubleo (vector unsigned int);
   vector double vec_doubleo (vector float);.
   * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
   DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
   UNS_DOUBLEL.
   * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
   unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
   unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
   VS_sxwsp.
   * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
   vec_doublel, vec_doubleh.
   * doc/extend.texi: Update the built-in documentation file for the
   new built-in functions.

2017-06-02  Carl Love  <cel@us.ibm.com>

gcc/testsuite/ChangeLog:

   * gcc.target/powerpc/builtins-3-runnable.c: New file of runnable tests
   for the new built-ins.

From-SVN: r248846

7 years agoPR libstdc++/80624 satisfy invariant for char_traits<char16_t>::eof()
Jonathan Wakely [Fri, 2 Jun 2017 18:35:37 +0000 (19:35 +0100)]
PR libstdc++/80624 satisfy invariant for char_traits<char16_t>::eof()

PR libstdc++/80624
* doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
* include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
Transform eof value to U+FFFD.
* testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
* testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
* testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.

From-SVN: r248843

7 years agoFix segfault in free_growth_caches (PR jit/80954)
David Malcolm [Fri, 2 Jun 2017 17:07:37 +0000 (17:07 +0000)]
Fix segfault in free_growth_caches (PR jit/80954)

gcc/ChangeLog:
PR jit/80954
* ipa-inline-analysis.c (free_growth_caches): Set
edge_removal_hook_holder to NULL after removing it.

From-SVN: r248841

7 years agoAdd ChangeLog entry for revision 248838
Olivier Hainque [Fri, 2 Jun 2017 16:46:44 +0000 (16:46 +0000)]
Add ChangeLog entry for revision 248838

From-SVN: r248839

7 years agovxlib.c (__gthread_once): Add missing value to nested return statement.
Olivier Hainque [Fri, 2 Jun 2017 16:24:28 +0000 (16:24 +0000)]
vxlib.c (__gthread_once): Add missing value to nested return statement.

2017-06-02  Olivier Hainque  <hainque@adacore.com>

* config/vxlib.c (__gthread_once): Add missing value to
nested return statement.

From-SVN: r248838

7 years agovx_crtbegin_auto.c: New file.
Olivier Hainque [Fri, 2 Jun 2017 16:02:24 +0000 (16:02 +0000)]
vx_crtbegin_auto.c: New file.

2017-06-02  Olivier Hainque  <hainque@adacore.com>

* vx_crtbegin_auto.c: New file.
* vx_crtbegin.c: New file.
* vx_crtbegin.inc: New file.
* vx_crtend.c: New file.

From-SVN: r248837

7 years ago[PATCH][AArch64] Allow CMP+SHIFT when comparing with zero
Sudakshina Das [Fri, 2 Jun 2017 15:32:41 +0000 (15:32 +0000)]
[PATCH][AArch64] Allow CMP+SHIFT when comparing with zero

gcc/

* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
comparision with zero.

gcc/testsuite/

* gcc.target/aarch64/cmp_shifted_reg_1.c: New.

From-SVN: r248836

7 years ago[AArch64] Add HF vector modes to lane-to-lane INS pattern
Kyrylo Tkachov [Fri, 2 Jun 2017 15:03:54 +0000 (15:03 +0000)]
[AArch64] Add HF vector modes to lane-to-lane INS pattern

        * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
        Use VALL_F16 iterator rather than VALL.

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

From-SVN: r248835

7 years agors6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vec_min...
Will Schmidt [Fri, 2 Jun 2017 15:02:25 +0000 (15:02 +0000)]
rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vec_min and vec_max builtins.

[gcc]

2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
for early expansion of vec_min and vec_max builtins.
(builtin_function_type): Add min/max unsigned variants to those
identified as having unsigned arguments.

[gcc/testsuite]

2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>

*  testsuite/gcc.target/powerpc/fold-vec-minmax-char.c: New.
*  testsuite/gcc.target/powerpc/fold-vec-minmax-floatdouble.c: New.
*  testsuite/gcc.target/powerpc/fold-vec-minmax-int.c: New.
*  testsuite/gcc.target/powerpc/fold-vec-minmax-longlong.c: New.
*  testsuite/gcc.target/powerpc/fold-vec-minmax-short.c: New.

From-SVN: r248834

7 years agovx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
Olivier Hainque [Fri, 2 Jun 2017 15:00:43 +0000 (15:00 +0000)]
vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.

2017-06-02  Olivier Hainque  <hainque@adacore.com>

* config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.

From-SVN: r248833

7 years ago[AArch64] Emit tighter strong atomic compare-exchange loop when comparing against...
Kyrylo Tkachov [Fri, 2 Jun 2017 14:41:52 +0000 (14:41 +0000)]
[AArch64] Emit tighter strong atomic compare-exchange loop when comparing against zero

* config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
Emit CBNZ inside loop when doing a strong exchange and comparing
against zero.  Generate the CC flags after the loop.

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

From-SVN: r248832

7 years agodwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
David Edelsohn [Fri, 2 Jun 2017 14:27:15 +0000 (14:27 +0000)]
dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.

        * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
        (dl_section_ref): New.
        (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
        On AIX, append an expression to subtract the size of the
        section length to dl_section_ref.

From-SVN: r248831

7 years agors6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vector...
Will Schmidt [Fri, 2 Jun 2017 14:21:55 +0000 (14:21 +0000)]
rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vector absolute builtins.

[gcc]

2017-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
for early expansion of vector absolute builtins.

[gcc/testsuite]

2017-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-abs-char.c: New.
* gcc.target/powerpc/fold-vec-abs-floatdouble.c: New.
* gcc.target/powerpc/fold-vec-abs-int.c: New.
* gcc.target/powerpc/fold-vec-abs-longlong.c: New.
* gcc.target/powerpc/fold-vec-abs-short.c: New.
* gcc.target/powerpc/fold-vec-abs-char-fwrapv.c: New.
* gcc.target/powerpc/fold-vec-abs-int-fwrapv.c: New.
* gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.c: New.
* gcc.target/powerpc/fold-vec-abs-short-fwrapv.c: New.

From-SVN: r248830

7 years agoRemove lang_type_ptrmem.
Nathan Sidwell [Fri, 2 Jun 2017 13:27:45 +0000 (13:27 +0000)]
Remove lang_type_ptrmem.

Changlogs:
cp/
Remove lang_type_ptrmem.
* cp-tree.h (lang_type_header): Remove is_lang_type_class. Move
into ...
(lang_type_class): ... this.  Reorder bitfields.  Rename to ...
(lang_type): ... this.  Delete old definition.
(lang_type_ptrmem): Delete.
(LANG_TYPE_CLASS_CHECK): Simply get TYPE_LANG_SPECIFIC.  Adjust
uses.
(LANG_TYPE_PTRMEM_CHECK): Delete.
(TYPE_GET_PTRMEMFUNC_TYPE, TYPE_SET_PTRMEMFUNC_TYPE): Delete.
(TYPE_PTRMEMFUNC_TYPE): New.  Use TYPE_LANG_SLOT_1.
* decl.c (build_ptrmemfunc_type): Adjust.
* lex.c (copy_lang_type): Remove lang_type_ptrmem handling.
(maybe_add_lang_type_raw): Don't set u.c.h.is_lang_type_class.

objcp/
* objcp-decl.h (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Use lang_type.
(ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use it.  Don't set
u.c.h.is_lang_type_class.

From-SVN: r248827

7 years agoRemove lang_type_ptrmem.
Nathan Sidwell [Fri, 2 Jun 2017 13:23:08 +0000 (13:23 +0000)]
Remove lang_type_ptrmem.

cp/
Remove lang_type_ptrmem.
* cp-tree.h (lang_type_header): Remove is_lang_type_class. Move
into ...
(lang_type_class): ... this.  Reorder bitfields.  Rename to ...
(lang_type): ... this.  Delete old definition.
(lang_type_ptrmem): Delete.
(LANG_TYPE_CLASS_CHECK): Simply get TYPE_LANG_SPECIFIC.  Adjust
uses.
(LANG_TYPE_PTRMEM_CHECK): Delete.
(TYPE_GET_PTRMEMFUNC_TYPE, TYPE_SET_PTRMEMFUNC_TYPE): Delete.
(TYPE_PTRMEMFUNC_TYPE): New.  Use TYPE_LANG_SLOT_1.
* decl.c (build_ptrmemfunc_type): Adjust.
* lex.c (copy_lang_type): Remove lang_type_ptrmem handling.
(maybe_add_lang_type_raw): Don't set u.c.h.is_lang_type_class.

objcp/
* objcp-decl.h (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Use lang_type.
(ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use it.  Don't set
u.c.h.is_lang_type_class.

From-SVN: r248826

7 years agotree-vect-slp.c (vect_detect_hybrid_slp_2): Match up what we consider a relevant...
Richard Biener [Fri, 2 Jun 2017 13:11:11 +0000 (13:11 +0000)]
tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.

2017-06-02  Richard Biener  <rguenther@suse.de>

* tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.

From-SVN: r248825

7 years agore PR tree-optimization/80948 (test case gcc.dg/torture/pr68017.c fails with ICE...
Richard Biener [Fri, 2 Jun 2017 12:34:32 +0000 (12:34 +0000)]
re PR tree-optimization/80948 (test case gcc.dg/torture/pr68017.c fails with ICE starting with r248771)

2017-06-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80948
* tree-tailcall.c (find_tail_calls): Track stmts to move in
stmt order as well.

From-SVN: r248824

7 years agoRemove libsupc++ makefile targets setting -std=gnu++11 or -std=gnu++14
Jonathan Wakely [Fri, 2 Jun 2017 11:49:04 +0000 (12:49 +0100)]
Remove libsupc++ makefile targets setting -std=gnu++11 or -std=gnu++14

* libsupc++/Makefile.am: Remove custom targets for files that need to
be compiled as C++11 or C++14.
* libsupc++/Makefile.in: Regenerate.
* libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
warnings.
* libsupc++/del_opvs.cc: Likewise.

From-SVN: r248823

7 years agoname-lookup.h (cp_binding_level): Lose namespaces field.
Nathan Sidwell [Fri, 2 Jun 2017 11:02:26 +0000 (11:02 +0000)]
name-lookup.h (cp_binding_level): Lose namespaces field.

* name-lookup.h (cp_binding_level): Lose namespaces field.
* name-lookup.c (add_decl_to_level): Chain namespaces on the names
list.
(suggest_alternatives_for): Adjust for namespace list.  Do
breadth-first search.
* decl2.c (collect_source_refs): Namespaces are on the regulr
list.
(collect_ada_namespace): Likewise.

* g++.dg/pr45330.C: Adjust.  Check breadth-firstness.

From-SVN: r248821

7 years agotree-vect-loop.c (vect_analyze_loop_operations): Not relevant PHIs are ok.
Richard Biener [Fri, 2 Jun 2017 10:26:10 +0000 (10:26 +0000)]
tree-vect-loop.c (vect_analyze_loop_operations): Not relevant PHIs are ok.

2017-06-02  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
PHIs are ok.
* tree-vect-stmts.c (process_use): Do not mark backedge defs
for inductions as relevant.

From-SVN: r248820

7 years agotree-vect-loop.c (get_initial_def_for_induction): Inline into ...
Richard Biener [Fri, 2 Jun 2017 10:25:22 +0000 (10:25 +0000)]
tree-vect-loop.c (get_initial_def_for_induction): Inline into ...

2017-06-02  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
(vectorizable_induction): ... this.  Remove dead code.

From-SVN: r248819

7 years ago* builtins. (expand_builtin_alloca): Remove second parameter and
Eric Botcazou [Fri, 2 Jun 2017 09:57:40 +0000 (09:57 +0000)]
* builtins. (expand_builtin_alloca): Remove second parameter and
infer its value from the first parameter instead.
(expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.

From-SVN: r248818

7 years agore PR libstdc++/80721 (Sorting/Merging of free EH-emergency buffer may wrong or uncom...
Richard Biener [Fri, 2 Jun 2017 08:10:48 +0000 (08:10 +0000)]
re PR libstdc++/80721 (Sorting/Merging of free EH-emergency buffer may wrong or uncomplete)

2017-06-02  Richard Biener  <rguenther@suse.de>
Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>

PR libstdc++/80721
* libsupc++/eh_alloc.cc (pool::free): Keep list properly
sorted and add missing freelist item merging cases.

Co-Authored-By: Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>
From-SVN: r248816

7 years agore PR rtl-optimization/80903 (ICE: internal consistency failure (error: invalid rtl...
Jakub Jelinek [Fri, 2 Jun 2017 08:07:15 +0000 (10:07 +0200)]
re PR rtl-optimization/80903 (ICE: internal consistency failure (error: invalid rtl sharing found in the insn))

PR rtl-optimization/80903
* loop-doloop.c (add_test): Unshare sequence.

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

From-SVN: r248815

7 years agore PR fortran/80918 (Assumed size whole array rejected in depend clause)
Jakub Jelinek [Fri, 2 Jun 2017 07:07:29 +0000 (09:07 +0200)]
re PR fortran/80918 (Assumed size whole array rejected in depend clause)

PR fortran/80918
* openmp.c (resolve_omp_clauses): Fix a typo.

* gfortran.dg/gomp/pr80918.f90: New test.

From-SVN: r248812

7 years agoinvoke.texi: Document the -Wsizeof-pointer-div warning.
Bernd Edlinger [Fri, 2 Jun 2017 04:06:59 +0000 (04:06 +0000)]
invoke.texi: Document the -Wsizeof-pointer-div warning.

gcc:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.

gcc/c-family:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c.opt (Wsizeof-pointer-div): New warning option.

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

        * c-parser.c (c_parser_binary_expression): Implement the
        -Wsizeof_pointer_div warning.
        (c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
        from a parenthesized expression.
        (c_parser_expr_list): Use c_last_sizeof_loc.
        * c-tree.h (c_last_sizeof_loc): New external.
        * c-typeck.c (c_last_sizeof_loc): New variable.
        (c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.

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

        * typeck.c (cp_build_binary_op): Implement the -Wsizeof_pointer_div
        warning.

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

        * c-c++-common/Wsizeof-pointer-div.c: New test.
        * gcc.dg/Wsizeof-pointer-memaccess1.c: Add test cases with parens.
        * gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Likewise.
        * gcc.target/i386/sse-init-v4hi-1.c: Fix test case.
        * gcc.target/i386/sse-init-v4sf-1.c: Likewise.
        * gcc.target/i386/sse-set-ps-1.c: Likewise.
        * gcc.target/i386/sse2-init-v16qi-1.c: Likewise.
        * gcc.target/i386/sse2-init-v2di-1.c: Likewise.
        * gcc.target/i386/sse2-init-v4si-1.c: Likewise.
        * gcc.target/i386/sse2-init-v8hi-1.c: Likewise.
        * gcc.target/i386/sse2-set-epi32-1.c: Likewise.
        * gcc.target/i386/sse2-set-epi64x-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v16qi-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v2di-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v4sf-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v4si-1.c: Likewise.
        * gcc.target/i386/sse4_1-set-epi32-1.c: Likewise.
        * gcc.target/i386/sse4_1-set-epi64x-1.c: Likewise.
        * gcc.target/i386/sse4_1-set-ps-1.c: Likewise.
        * libgomp.c/pr39591-2.c: Likewise.
        * libgomp.c/pr39591-3.c: Likewise.

From-SVN: r248811

7 years agoDaily bump.
GCC Administrator [Fri, 2 Jun 2017 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r248810

7 years agofold-vec-logical-ors-longlong.c: Update the target to power8-vector.
Will Schmidt [Thu, 1 Jun 2017 22:00:45 +0000 (22:00 +0000)]
fold-vec-logical-ors-longlong.c: Update the target to power8-vector.

[gcc/testsuite]

2017-05-26  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-logical-ors-longlong.c:
Update the target to power8-vector.

From-SVN: r248805

7 years ago* es.po: Update.
Joseph Myers [Thu, 1 Jun 2017 21:15:55 +0000 (22:15 +0100)]
* es.po: Update.

From-SVN: r248802

7 years agotestsuite: ensure GCC_COLORS is unset
David Malcolm [Thu, 1 Jun 2017 19:43:13 +0000 (19:43 +0000)]
testsuite: ensure GCC_COLORS is unset

gcc/testsuite/ChangeLog:
* lib/gcc-dg.exp: Ensure GCC_COLORS is unset.

From-SVN: r248800

7 years agoi386.c (x86_64_ms_sysv_extra_clobbered_registers): Make static.
Bernd Edlinger [Thu, 1 Jun 2017 19:30:47 +0000 (19:30 +0000)]
i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make static.

2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
        static.
        (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
        xlogue_layout::get_instance, logue_layout::xlogue_layout,
        sp_valid_at, fp_valid_at, choose_basereg): Formatting.
        (xlogue_layout::get_stub_rtx): Make static.
        (xlogue_layout::get_stub_name): Avoid const-cast, make static.
        (xlogue_layout::compute_stub_managed_regs): Rename to...
        (xlogue_layout::count_stub_managed_regs): ...this.
        (xlogue_layout::is_stub_managed_reg): New function.
        (xlogue_layout::m_stub_names): Rename to...
        (xlogue_layout::s_stub_names): ...this, make static.
        (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
        xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
        xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
        xlogue_layout::s_stub_names): Instantiate statics.
        (stub_managed_regs): Remove.
        (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
        (disable_call_ms2sysv_xlogues): Rename to...
        (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
        (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
        warning logic.
        (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
        change after reload_completed.
        (ix86_can_use_return_insn_p): Use the ix86_frame data structure
        directly.
        (ix86_expand_prologue): Likewise.
        (ix86_expand_epilogue): Likewise.
        (ix86_expand_split_stack_prologue): Likewise.
        (ix86_compute_frame_layout): Remove frame parameter ...
        (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
        (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
        only if necessary.
        (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
        (ix86_frame): Move from here ...
        * config/i386/i386.h (ix86_frame): ... to here.
        (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
        complete ix86_frame data structure instead.  Remove some_ld_name.

From-SVN: r248798

7 years agoDWARF: add DW_AT_location for global decls with DECL_VALUE_EXPR
Pierre-Marie de Rodat [Thu, 1 Jun 2017 14:06:37 +0000 (14:06 +0000)]
DWARF: add DW_AT_location for global decls with DECL_VALUE_EXPR

In GNAT, we materialize renamings that cannot be described in standard
DWARF as synthetic variables that describe how to fetch the renamed
object.  Look for "___XR" in gcc/ada/exp_dbug.ads for more details about
this convention.

In order to have a location for these variables in the debug info (GDB
requires it not to discard the variable) but also to avoid allocating
runtime space for them, we make these variable hold a DECL_VALUE_EXPR
tree.  However, since GCC 7, the DWARF back-end no longer generates a
DW_AT_location attribute for those.  This patch is an attempt to restore
this attribute.

gcc/

* dwarf2out.c (dwarf2out_late_global_decl): Add locations for
symbols that hold a DECL_VALUE_EXPR.

gcc/testsuite/

* debug12.adb, debug12.ads: New testcase.

From-SVN: r248792

7 years agoFix cross compilation to Solaris
Rainer Orth [Thu, 1 Jun 2017 13:50:03 +0000 (13:50 +0000)]
Fix cross compilation to Solaris

(GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
Remove *-solaris* section.
* configure: Regenerate.

From-SVN: r248791

7 years ago[PR 80898] Propagate grp_write from disqualified SRA candidates
Martin Jambor [Thu, 1 Jun 2017 12:14:29 +0000 (14:14 +0200)]
[PR 80898] Propagate grp_write from disqualified SRA candidates

2017-06-01  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/80898
* tree-sra.c (process_subtree_disqualification): Removed.
(disqualify_candidate): Do not acll
process_subtree_disqualification.
(subtree_mark_written_and_enqueue): New function.
(propagate_all_subaccesses): Set grp_write of LHS subtree if the
RHS has been disqualified and re-queue LHS if necessary.  Apart
from that, ignore disqualified RHS.

testsuite/
* gcc.dg/tree-ssa/pr80898.c: New test.
* gcc.dg/tree-ssa/pr80898-2.c: Likewise.

From-SVN: r248790

7 years agoS/390: Don't fetch the return address early with ooo
Andreas Krebbel [Thu, 1 Jun 2017 11:30:36 +0000 (11:30 +0000)]
S/390: Don't fetch the return address early with ooo

We used to load the return address slot some time in advance.  This
helped on older machines to resolve the data dependencies in time.
However, it is pointless on out of order CPUs.  Disabled with that
patch.

gcc/ChangeLog:

2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_emit_epilogue): Disable early return
address fetch for z10 or later.

From-SVN: r248789

7 years agore PR c++/80812 (ICE: in build_value_init_noctor, at cp/init.c:483)
Ville Voutilainen [Thu, 1 Jun 2017 11:09:41 +0000 (14:09 +0300)]
re PR c++/80812 (ICE: in build_value_init_noctor, at cp/init.c:483)

PR c++/80812

cp/

PR c++/80812
* method.c (constructible_expr): Strip array types before calling
build_value_init.

libstdc++/

PR c++/80812
* testsuite/20_util/is_constructible/80812.cc: New.

From-SVN: r248788

7 years agore PR ada/80921 (cross compiling fails to build Ada shared libraries)
Eric Botcazou [Thu, 1 Jun 2017 10:51:15 +0000 (10:51 +0000)]
re PR ada/80921 (cross compiling fails to build Ada shared libraries)

PR ada/80921
* configure.ac (default_gnatlib_target): Remove bogus condition.
(have_getipinfo): Tweak.
* configure: Regenerate.

From-SVN: r248785

7 years agore PR c++/80896 ([[nodiscard]] is ignored for functions returning references)
Paolo Carlini [Thu, 1 Jun 2017 10:20:27 +0000 (10:20 +0000)]
re PR c++/80896 ([[nodiscard]] is ignored for functions returning references)

/cp
2017-06-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80896
* cvt.c (convert_to_void): Possibly call maybe_warn_nodiscard
for case INDIRECT_REF too in the main switch.

/testsuite
2017-06-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80896
* g++.dg/cpp1z/nodiscard5.C: New.

From-SVN: r248784

7 years ago[ARC] Fix tst_movb pattern.
Claudiu Zissulescu [Thu, 1 Jun 2017 09:43:10 +0000 (11:43 +0200)]
[ARC] Fix tst_movb pattern.

The tst_movb pattern is missing guarding when spitting.

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (tst_movb): Add guard when splitting.

testsuite/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* gcc.target/arc/pr9001195952.c: New test.

From-SVN: r248783

7 years ago[ARC] Test against frame_pointer_needed in arc_can_eliminate.
Claudiu Zissulescu [Thu, 1 Jun 2017 09:42:59 +0000 (11:42 +0200)]
[ARC] Test against frame_pointer_needed in arc_can_eliminate.

arc_can_eliminate is using arc_frmae_pointer_required() which is wrong
as the frame_pointer_needed can be set on different conditions. Fix it
by calling arc_frame_pointer_needed().

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_can_eliminate): Test against
arc_frame_pointer_needed.

From-SVN: r248782

7 years ago[ARC] Prevent moving stores to the frame before the stack adjustment.
Claudiu Zissulescu [Thu, 1 Jun 2017 09:42:49 +0000 (11:42 +0200)]
[ARC] Prevent moving stores to the frame before the stack adjustment.

If the stack pointer is needed, emit a special barrier that will prevent
the scheduler from moving stores to the frame before the stack adjustment.

For example:

[snip]
mov_s fp,sp  ; frame pointer is set here
[snip]
st r1,[fp,-24] ; frame pointer is used here
[snip]
sub_s sp,sp,0x20 ; stack pointer adjusted

So we can easily see that any interrupt between the `st` and `sub`
instruction will lead to faulty code as the interrupt routine will use
a faulty sp register, and, potentially, overwriting the value stored
by 'st' instruction. Thus, adding a scheduler barrier will force the
compiler to emit the `sub` instruction before the store one.

2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_expand_prologue): Emit a special barrier
to prevent store reordering.
* config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
(type): Add block type.
(stack_tie): Define special instruction to be used in
expand_prologue.

From-SVN: r248781

7 years ago[ARC] Update (non)commutative_binary_comparison patterns.
Claudiu Zissulescu [Thu, 1 Jun 2017 09:42:39 +0000 (11:42 +0200)]
[ARC] Update (non)commutative_binary_comparison patterns.

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (commutative_binary_comparison): Remove 'I'
constraint. It is not valid for the pattern.
(noncommutative_binary_comparison): Likewise.

From-SVN: r248780

7 years ago[ARC] Change predicate movv2hi to avoid scaled addresses.
Claudiu Zissulescu [Thu, 1 Jun 2017 09:42:27 +0000 (11:42 +0200)]
[ARC] Change predicate movv2hi to avoid scaled addresses.

2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
scaled addresses.

From-SVN: r248779

7 years ago[ARC] Allow r30 to be used by the reg-alloc.
Claudiu Zissulescu [Thu, 1 Jun 2017 09:42:06 +0000 (11:42 +0200)]
[ARC] Allow r30 to be used by the reg-alloc.

gcc/
2018-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
be used by the reg-alloc.

From-SVN: r248778

7 years ago[ARC] Avoid use of hard registers before reg-alloc.
Claudiu Zissulescu [Thu, 1 Jun 2017 09:41:46 +0000 (11:41 +0200)]
[ARC] Avoid use of hard registers before reg-alloc.

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (mulsi3): Avoid use of hard registers before
reg-alloc when having mul64 or mul32x16 instructions.
(mulsidi3): Likewise.
(umulsidi3): Likewise.
(mulsi32x16): New pattern.
(mulsi64): Likewise.
(mulsidi64): Likewise.
(umulsidi64): Likewise.
(MUL32x16_REG): Define.
(mul64_600): Use MUL32x16_REG.
(mac64_600): Likewise.
(umul64_600): Likewise.
(umac64_600): Likewise.

From-SVN: r248777

7 years ago[ARC] Make mulsi for A700 pattern commutative.
Claudiu Zissulescu [Thu, 1 Jun 2017 09:41:13 +0000 (11:41 +0200)]
[ARC] Make mulsi for A700 pattern commutative.

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (mulsi3_700): Make it commutative.

From-SVN: r248776

7 years agoRequire label_values for some test-cases
Tom de Vries [Thu, 1 Jun 2017 09:13:09 +0000 (09:13 +0000)]
Require label_values for some test-cases

2017-06-01  Tom de Vries  <tom@codesourcery.com>

* c-c++-common/pr43395.c: Add dg-require-effective-target label_values.
* gcc.c-torture/compile/asmgoto-1.c: Same.
* gcc.dg/20000707-1.c: Same.
* gcc.dg/pr38700.c: Same.
* gcc.dg/pr70169.c: Same.
* gcc.dg/pr80112.c: Same.
* gcc.dg/torture/pr51071-2.c: Same.
* gcc.dg/torture/pr51071.c: Same.
* gcc.dg/tree-ssa/alias-34.c: Same.

From-SVN: r248775

7 years agosparc.md (*zero_extendsidi2_insn_sp64): Set insn type for movstouw.
Jose E. Marchesi [Thu, 1 Jun 2017 08:43:22 +0000 (10:43 +0200)]
sparc.md (*zero_extendsidi2_insn_sp64): Set insn type for movstouw.

gcc/ChangeLog:
* config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
type for movstouw.
(*sign_extendsidi2_insn): Likewise for movstosw.

From-SVN: r248774

7 years agoDWARF: for variants, produce unsigned discr. when debug type is unsigned
Pierre-Marie de Rodat [Thu, 1 Jun 2017 08:36:57 +0000 (08:36 +0000)]
DWARF: for variants, produce unsigned discr. when debug type is unsigned

In Ada, the Character type is supposed to be unsigned.  However,
depending on the sign of C char types, GNAT can materialize it as a
signed type for code generation purposes.  When this is the case, GNAT
also attach a debug type to it so it is represented as an unsigned base
type in the debug information.

This change adapts record variant parts processing in the DWARF back-end
so that when the debug type of discriminant is unsigned while
discriminant values are signed themselves, we output unsigned
discriminant values in DWARF.

gcc/

* dwarf2out.c (get_discr_value): Call the get_debug_type hook on
the type of the input discriminant value.  Convert the
discriminant value of signedness vary.

gcc/testsuite/

* gnat.dg/debug11.adb: New testcase.

From-SVN: r248773

7 years agoc.opt (Wcatch-value): New shortcut for Wcatch-value=1.
Volker Reichelt [Thu, 1 Jun 2017 08:10:24 +0000 (08:10 +0000)]
c.opt (Wcatch-value): New shortcut for Wcatch-value=1.

        * c.opt (Wcatch-value): New shortcut for Wcatch-value=1.
        (Wcatch-value=1): Enable by -Wall.

        * doc/invoke.texi (-Wcatch-value): Document new shortcut.
        Add to -Wall section.

From-SVN: r248772

7 years agore PR middle-end/66313 (Unsafe factorization of a*b+a*c)
Richard Biener [Thu, 1 Jun 2017 08:05:24 +0000 (08:05 +0000)]
re PR middle-end/66313 (Unsafe factorization of a*b+a*c)

2017-06-01  Richard Biener  <rguenther@suse.de>

PR middle-end/66313
* fold-const.c (fold_plusminus_mult_expr): If the factored
factor may be zero use a wrapping type for the inner operation.
* tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
and handle moved defs.
(process_assignment): Properly guard the unary op case.  Return a
tri-state indicating that moving the stmt before the call may allow
to continue.  Pass through to_move.
(find_tail_calls): Handle moving unrelated defs before
the call.

* c-c++-common/ubsan/pr66313.c: New testcase.
* gcc.dg/tree-ssa/loop-15.c: Adjust.

From-SVN: r248771