platform/upstream/gcc.git
7 years agors6000: Remove spe_acc and spefscr
Segher Boessenkool [Wed, 7 Jun 2017 15:32:39 +0000 (17:32 +0200)]
rs6000: Remove spe_acc and spefscr

We can also remove the two other SPE registers.

* config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
SPEFSCR registers.
* config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
(enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
(rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
(rs6000_dbx_register_number): Adjust.
* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
Remove SPE_ACC and SPEFSCR.
(REG_ALLOC_ORDER): Ditto.
(FRAME_POINTER_REGNUM): Change to 111.
(enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
(REG_CLASS_NAMES): Ditto.
(REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
(REGISTER_NAMES): Ditto.
(ADDITIONAL_REG_NAMES): Ditto.
(rs6000_reg_names): Ditto.
* config/rs6000/rs6000.md: Renumber some register number
define_constants.

From-SVN: r248986

7 years agors6000: Remove SPE high registers
Segher Boessenkool [Wed, 7 Jun 2017 15:30:55 +0000 (17:30 +0200)]
rs6000: Remove SPE high registers

* config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
registers.
* config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
to 117.
(DWARF_REG_TO_UNWIND_COLUMN): Do not define.
(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
Delete the SPE high registers.
(REG_ALLOC_ORDER): Ditto.
(enum reg_class): Remove SPE_HIGH_REGS.
(REG_CLASS_NAMES): Ditto.
(REG_CLASS_CONTENTS): Delete the SPE high registers.
(REGISTER_NAMES): Ditto.
(rs6000_reg_names): Ditto.
* doc/tm.texi.in: Remove SPE as example.
* doc/tm.texi: Regenerate.

From-SVN: r248985

7 years agors6000: Remove type attribute "brinc"
Segher Boessenkool [Wed, 7 Jun 2017 15:29:14 +0000 (17:29 +0200)]
rs6000: Remove type attribute "brinc"

Nothing uses it anymore.

* config/rs6000/8540.md (ppc8540_brinc): Delete.
* config/rs6000/e500mc.md (e500mc_brinc): Delete.
* config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
* config/rs6000/rs6000.md (type): Remove "brinc".

From-SVN: r248984

7 years agors6000: Remove spe.md, spe.h, linuxspe.h
Segher Boessenkool [Wed, 7 Jun 2017 15:27:45 +0000 (17:27 +0200)]
rs6000: Remove spe.md, spe.h, linuxspe.h

* config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
(powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
* config/rs6000/linuxspe.h: Delete file.
* config/rs6000/rs6000.md: Don't include spe.md.
* config/rs6000/spe.h: Delete file.
* config/rs6000/spe.md: Delete file.
* config/rs6000/t-rs6000: Remove spe.md.

From-SVN: r248983

7 years agors6000: Remove reg_or_none500mem_operand
Segher Boessenkool [Wed, 7 Jun 2017 15:25:01 +0000 (17:25 +0200)]
rs6000: Remove reg_or_none500mem_operand

* config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
(reg_or_none500mem_operand): Delete.
* config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
instead of reg_or_none500mem_operand.

From-SVN: r248982

7 years agors6000: Remove -mspe options
Segher Boessenkool [Wed, 7 Jun 2017 15:23:49 +0000 (17:23 +0200)]
rs6000: Remove -mspe options

* config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
handling of SPE flags.
* config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.

From-SVN: r248981

7 years agors6000: Remove TARGET_SPE and TARGET_SPE_ABI and friends
Segher Boessenkool [Wed, 7 Jun 2017 15:22:33 +0000 (17:22 +0200)]
rs6000: Remove TARGET_SPE and TARGET_SPE_ABI and friends

* config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
SPE ABI handling.
* config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
(paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
paired_divv2sf3): Similar.
* config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
* config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
RS6000_BUILTIN_S.
Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
Rename the paired_* instruction patterns.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
define __SPE__.
* config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
* config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
(struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
PAIRED_VECTOR_MODE.
(struct machine_function): Delete field spe_insn_chain_scanned_p.
(spe_func_has_64bit_regs_p): Delete.
(spe_expand_predicate_builtin): Delete.
(spe_expand_evsel_builtin): Delete.
(TARGET_DWARF_REGISTER_SPAN): Do not define.
(TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
(invalid_e500_subreg): Delete.
(rs6000_legitimize_address): Always force_reg op2 as well, for
paired single memory accesses.
(rs6000_member_type_forces_blk): Delete.
(rs6000_spe_function_arg): Delete.
(rs6000_expand_unop_builtin): Delete SPE handling.
(rs6000_expand_binop_builtin): Ditto.
(spe_expand_stv_builtin): Delete.
(bdesc_2arg_spe): Delete.
(spe_expand_builtin): Delete.
(spe_expand_predicate_builtin): Delete.
(spe_expand_evsel_builtin): Delete.
(rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
(spe_init_builtins): Delete.
(spe_func_has_64bit_regs_p): Delete.
(savres_routine_name): Delete "info" parameter.  Adjust callers.
(rs6000_emit_stack_reset): Ditto.
(rs6000_dwarf_register_span): Delete.
* config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
Delete.
* config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
Delete.
* config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
* config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
* config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
mulv2sf3, divv2sf3): Delete expanders.

From-SVN: r248980

7 years agors6000: Remove UNSPEC_MV_CR_GT
Segher Boessenkool [Wed, 7 Jun 2017 15:16:44 +0000 (17:16 +0200)]
rs6000: Remove UNSPEC_MV_CR_GT

config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.

From-SVN: r248979

7 years agors6000: Remove output_e500_flip_gt_bit
Segher Boessenkool [Wed, 7 Jun 2017 15:14:29 +0000 (17:14 +0200)]
rs6000: Remove output_e500_flip_gt_bit

* config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
* config/rs6000/rs6000.c: Ditto.

From-SVN: r248978

7 years agors6000: Remove rs6000_cbranch_operator
Segher Boessenkool [Wed, 7 Jun 2017 15:06:53 +0000 (17:06 +0200)]
rs6000: Remove rs6000_cbranch_operator

rs6000_cbranch_operator now is just comparison_operator, so just use
that directly.

* config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
* config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
comparison_operator.

From-SVN: r248977

7 years agors6000: Remove -mfloat-gprs
Segher Boessenkool [Wed, 7 Jun 2017 15:04:46 +0000 (17:04 +0200)]
rs6000: Remove -mfloat-gprs

This deletes -mfloat-gprs and the variables that go with it.

* config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
* config/rs6000/rs6000.opt: Ditto.
* config/rs6000/t-rtems: Ditto.

From-SVN: r248976

7 years agors6000: Remove TARGET_E500_{SINGLE,DOUBLE}
Segher Boessenkool [Wed, 7 Jun 2017 14:59:11 +0000 (16:59 +0200)]
rs6000: Remove TARGET_E500_{SINGLE,DOUBLE}

TARGET_E500_{SINGLE,DOUBLE} is always false now.

* config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
TARGET_E500_SINGLE by 0, simplify.
* config/rs6000/rs6000.c: Ditto.
(rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
(spe_build_register_parallel): Delete.
* config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
* config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
(E500_CONVERT): Delete.
* config/rs6000/spe.md: Remove many patterns and all define_constants.

From-SVN: r248975

7 years agors6000: Remove TARGET_FPRS
Segher Boessenkool [Wed, 7 Jun 2017 14:55:54 +0000 (16:55 +0200)]
rs6000: Remove TARGET_FPRS

Since rs6000 no longer supports SPE, TARGET_FPRS now always is true.

This makes TARGET_{SF,DF}_SPE always false.  Many patterns in spe.md
can now be deleted; which makes it possible to merge e.g. negdd2 with
*negdd2_fpr.

Finally, e500.h is deleted (it isn't used).

* config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
* config/rs6000/dfp.md: Ditto.
(negdd2, *negdd2_fpr): Merge.
(absdd2, *absdd2_fpr): Merge.
(negtd2, *negtd2_fpr): Merge.
(abstd2, *abstd2_fpr): Merge.
* config/rs6000/e500.h: Delete file.
* config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
TARGET_FPRS by 1 and simplify.
* config/rs6000/rs6000-c.c: Ditto.
* config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
TARGET_DF_SPE by 0.
* config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
TARGET_DF_SPE.
* config/rs6000/rs6000.md: Ditto.
(floatdidf2, *floatdidf2_fpr): Merge.
(move_from_CR_gt_bit): Delete.
* config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
(E500_CR_IOR_COMPARE): Delete.
(All patterns that require !TARGET_FPRS): Delete.
* config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.

From-SVN: r248974

7 years agoclass.c (layout_class_type): Restructure overlong-bitfield tpe search.
Nathan Sidwell [Wed, 7 Jun 2017 13:41:20 +0000 (13:41 +0000)]
class.c (layout_class_type): Restructure overlong-bitfield tpe search.

* class.c (layout_class_type): Restructure overlong-bitfield tpe
search.

From-SVN: r248971

7 years agoFix white space.
David Edelsohn [Wed, 7 Jun 2017 12:41:20 +0000 (08:41 -0400)]
Fix white space.

From-SVN: r248969

7 years agoaix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define unconditionally.
Tony Reix [Wed, 7 Jun 2017 12:35:19 +0000 (12:35 +0000)]
aix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define unconditionally.

2017-06-07  Tony Reix  <tony.reix@atos.net>
            Matthieu Sarter  <matthieu.sarter.external@atos.net>
            David Edelsohn  <dje.gcc@gmail.com>

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

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

7 years agoAdd C++17 deduction guide for std::basic_string (P0433R2, partial)
Jonathan Wakely [Wed, 7 Jun 2017 12:35:08 +0000 (13:35 +0100)]
Add C++17 deduction guide for std::basic_string (P0433R2, partial)

* include/bits/alloc_traits.h (__is_allocator, _RequireAllocator):
New trait and alias for detecting Allocator-like types.
* include/bits/basic_string.h (basic_string): Add deduction guide
from P0433.
* include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): Add template
parameter with default template argument that causes substitution
failures for types that cannot be allocators.
* testsuite/21_strings/basic_string/cons/char/deduction.cc: New.
* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: New.

From-SVN: r248967

7 years agoPR c++/80990 use cv-qualifiers in class template argument deduction
Jonathan Wakely [Wed, 7 Jun 2017 11:34:36 +0000 (12:34 +0100)]
PR c++/80990 use cv-qualifiers in class template argument deduction

gcc/cp:

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

gcc/testsuite:

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

From-SVN: r248966

7 years ago* passes.def (pass_iv_canon): Move before pass_loop_distribution.
Bin Cheng [Wed, 7 Jun 2017 11:31:44 +0000 (11:31 +0000)]
* passes.def (pass_iv_canon): Move before pass_loop_distribution.

From-SVN: r248965

7 years agographds.c (add_edge): Intitialize edge's attached data.
Bin Cheng [Wed, 7 Jun 2017 11:29:37 +0000 (11:29 +0000)]
graphds.c (add_edge): Intitialize edge's attached data.

* graphds.c (add_edge): Intitialize edge's attached data.
(foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
pointer parameter.  Call pointed function on each edge during
graph traversing.  Skip traversing the edge when the function
returns true.
(graphds_dfs, graphds_scc): Ditto.
(for_each_edge): New parameter.  Pass the new parameter to callback
function.
* graphds.h (skip_edge_callback): New function pointer type.
(graphds_dfs, graphds_scc): New function pointer parameter.
(graphds_edge_callback, for_each_edge): New parameter.

From-SVN: r248964

7 years agotree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor out code checking...
Bin Cheng [Wed, 7 Jun 2017 11:28:17 +0000 (11:28 +0000)]
tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor out code checking if runtime alias check is possible to below ...

* tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
out code checking if runtime alias check is possible to below ...
Call the new function.
* tree-data-ref.c (runtime_alias_check_p): ... to new function.
* tree-data-ref.h (runtime_alias_check_p): New decalaration.

From-SVN: r248962

7 years agore PR sanitizer/80932 (UBSAN: false positive as a result of distribution: c1*(c2...
Marek Polacek [Wed, 7 Jun 2017 11:19:40 +0000 (11:19 +0000)]
re PR sanitizer/80932 (UBSAN: false positive as a result of distribution: c1*(c2*v1-c3*v2)=>c1*c2*v1-c1*c3*v2)

PR sanitizer/80932
* fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
TYPE_OVERFLOW_WRAPS check.

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

From-SVN: r248961

7 years agol_fma_double_1.c: Adjust test strings.
Bin Cheng [Wed, 7 Jun 2017 11:00:48 +0000 (11:00 +0000)]
l_fma_double_1.c: Adjust test strings.

gcc/testsuite
* gcc.target/i386/l_fma_double_1.c: Adjust test strings.
* gcc.target/i386/l_fma_double_2.c: Ditto.
* gcc.target/i386/l_fma_double_3.c: Ditto.
* gcc.target/i386/l_fma_double_4.c: Ditto.
* gcc.target/i386/l_fma_double_5.c: Ditto.
* gcc.target/i386/l_fma_double_6.c: Ditto.
* gcc.target/i386/l_fma_float_1.c: Ditto.
* gcc.target/i386/l_fma_float_2.c: Ditto.
* gcc.target/i386/l_fma_float_3.c: Ditto.
* gcc.target/i386/l_fma_float_4.c: Ditto.
* gcc.target/i386/l_fma_float_5.c: Ditto.
* gcc.target/i386/l_fma_float_6.c: Ditto.

From-SVN: r248960

7 years agotree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop if versioning is...
Bin Cheng [Wed, 7 Jun 2017 10:56:54 +0000 (10:56 +0000)]
tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop if versioning is required.

* tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
if versioning is required.
* tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
peeling with the check for versioning.

From-SVN: r248959

7 years agotree-vectorizer.h (vect_build_loop_niters): New parameter.
Bin Cheng [Wed, 7 Jun 2017 10:53:02 +0000 (10:53 +0000)]
tree-vectorizer.h (vect_build_loop_niters): New parameter.

* tree-vectorizer.h (vect_build_loop_niters): New parameter.
* tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
Set true to new parameter if new ssa variable is defined.
(vect_gen_vector_loop_niters): Refactor.  Set range information
for the new vector loop bound variable.
(vect_do_peeling): Ditto.

From-SVN: r248958

7 years agotree-affine.c (ssa.h): Include header file.
Bin Cheng [Wed, 7 Jun 2017 10:49:09 +0000 (10:49 +0000)]
tree-affine.c (ssa.h): Include header file.

* tree-affine.c (ssa.h): Include header file.
(tree_to_aff_combination): Handle (T1)(X - CST) when inner type
has wrapping overflow behavior.

From-SVN: r248957

7 years ago* tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
Bin Cheng [Wed, 7 Jun 2017 10:47:26 +0000 (10:47 +0000)]
* tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).

From-SVN: r248956

7 years ago(aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
Bin Cheng [Wed, 7 Jun 2017 10:46:21 +0000 (10:46 +0000)]
(aff_combination_expand): Move (T1)(X *+- CST) simplification to ...

(tree_to_aff_combination): ... here.

From-SVN: r248955

7 years agotree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New reg_pressure model function.
Bin Cheng [Wed, 7 Jun 2017 10:45:03 +0000 (10:45 +0000)]
tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New reg_pressure model function.

* tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
reg_pressure model function.
(ivopts_global_cost_for_size): Delete.
(determine_set_costs, iv_ca_recount_cost): Call new model function
ivopts_estimate_reg_pressure.

From-SVN: r248954

7 years agoaarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv.
Tamar Christina [Wed, 7 Jun 2017 10:06:29 +0000 (10:06 +0000)]
aarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv.

2017-06-07  Tamar Christina  <tamar.christina@arm.com>

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

From-SVN: r248953

7 years agoRTEMS: Use TLS for Ada run-time
Sebastian Huber [Wed, 7 Jun 2017 09:49:27 +0000 (09:49 +0000)]
RTEMS: Use TLS for Ada run-time

Do not use the RTEMS-specific task variables for the Ada run-time since
they are not available in RTEMS 4.12 or later.  Use thread-local storage
instead.

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

From-SVN: r248952

7 years agoaarch-cost-tables.h (cortexa53_extra_cost): Increase idiv cost.
Tamar Christina [Wed, 7 Jun 2017 09:45:53 +0000 (09:45 +0000)]
aarch-cost-tables.h (cortexa53_extra_cost): Increase idiv cost.

2017-06-07  Tamar Christina  <tamar.christina@arm.com>

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

From-SVN: r248951

7 years agore PR tree-optimization/80928 (SLP vectorization does not handle induction in outer...
Richard Biener [Wed, 7 Jun 2017 09:39:53 +0000 (09:39 +0000)]
re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)

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

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

From-SVN: r248950

7 years ago2017-06-07 Tamar Christina <tamar.christina@arm.com>
Tamar Christina [Wed, 7 Jun 2017 09:36:17 +0000 (09:36 +0000)]
2017-06-07  Tamar Christina  <tamar.christina@arm.com>

        * config/aarch64/aarch64.md
        (copysignsf3): Fix mask generation.

From-SVN: r248949

7 years agore PR tree-optimization/80928 (SLP vectorization does not handle induction in outer...
Richard Biener [Wed, 7 Jun 2017 09:10:17 +0000 (09:10 +0000)]
re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)

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

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

From-SVN: r248948

7 years agodumpfile.h (enum tree_dump_index): Rename TDI_generic to TDI_gimple.
Jakub Jelinek [Wed, 7 Jun 2017 08:57:11 +0000 (10:57 +0200)]
dumpfile.h (enum tree_dump_index): Rename TDI_generic to TDI_gimple.

* dumpfile.h (enum tree_dump_index): Rename TDI_generic to
TDI_gimple.
(class dump_manager): Add register_dumps method.
* dumpfile.c: Include langhooks.h.
(dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
(FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
(FIRST_ME_AUTO_NUMBERED_DUMP): Define.
(dump_manager::dump_register): Start with 512 entries instead of 32.
(dump_manager::register_dumps): New method.
* toplev.c (general_init): Instead of invoking register_dumps
langhook, invoke register_dumps method on the dump manager.
* gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
TDI_generic.

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

From-SVN: r248947

7 years agoClarify define_insn documentation
Richard Sandiford [Wed, 7 Jun 2017 06:45:36 +0000 (06:45 +0000)]
Clarify define_insn documentation

This patch tries to clarify some of the restrictions on define_insn
conditions, and also on the use of "#".

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

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

From-SVN: r248946

7 years agocfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
Jan Hubicka [Wed, 7 Jun 2017 06:42:43 +0000 (08:42 +0200)]
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

7 years agoRemove aarch32 support for falkor/qdf24xx, not in released hardware.
Jim Wilson [Wed, 7 Jun 2017 01:55:12 +0000 (01:55 +0000)]
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

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

From-SVN: r248942

7 years agoname-lookup.c (suggest_alternatives_for): Use qualified lookup sans using directives.
Nathan Sidwell [Tue, 6 Jun 2017 23:02:49 +0000 (23:02 +0000)]
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

7 years agocompiler: typing fixes for Interface_mtable_expression
Ian Lance Taylor [Tue, 6 Jun 2017 20:57:03 +0000 (20:57 +0000)]
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

7 years agore PR fortran/80975 (matmul for zero-length arrays)
Thomas Koenig [Tue, 6 Jun 2017 19:18:37 +0000 (19:18 +0000)]
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

7 years agore PR c/79983 (Improve enum and struct redefinition diagnostic)
Marek Polacek [Tue, 6 Jun 2017 17:40:34 +0000 (17:40 +0000)]
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

7 years agosparc: Fix stack references in return delay slot.
David S. Miller [Tue, 6 Jun 2017 17:02:22 +0000 (17:02 +0000)]
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

7 years agoImprove debug output of loop data prefetching.
Maxim Kuvyrkov [Tue, 6 Jun 2017 17:01:00 +0000 (17:01 +0000)]
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

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