Tony Reix [Wed, 7 Jun 2017 23:23:55 +0000 (23:23 +0000)]
simple-object-xcoff.c (simple_object_xcoff_find_sections): Search symbol table for .go_export symbol and apply pfn if found.
2017-06-07 Tony Reix <tony.reix@atos.net>
Matthieu Sarter <matthieu.sarter.external@atos.net>
David Edelsohn <dje.gcc@gmail.com>
* simple-object-xcoff.c (simple_object_xcoff_find_sections):
Search symbol table for .go_export symbol and apply pfn if found.
Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
Co-Authored-By: Matthieu Sarter <matthieu.sarter.external@atos.net>
From-SVN: r248999
Carl Love [Wed, 7 Jun 2017 22:23:15 +0000 (22:23 +0000)]
rs6000-c: The return type of the following built-in functions was implemented as int not...
gcc/ChangeLog:
2017-06-07 Carl Love <cel@us.ibm.com>
* config/rs6000/rs6000-c: The return type of the following
built-in functions was implemented as int not long long. Fix sign
of return value for the unsigned version of vec_mulo and vec_mule.
vector unsigned long long vec_bperm (vector unsigned long long,
vector unsigned char)
vector signed long long vec_mule (vector signed int,
vector signed int)
vector unsigned long long vec_mule (vector unsigned int,
vector unsigned int)
vector signed long long vec_mulo (vector signed int,
vector signed int)
vector unsigned long long vec_mulo (vector unsigned int,
vector unsigned int)
* doc/extend.texi: Fix the documentation for the built-in
functions.
gcc/testsuite/ChangeLog:
2017-06-07 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/builtins-3.c: Fix vec_mule, vec_mulo test cases.
---
From-SVN: r248998
Carl Love [Wed, 7 Jun 2017 22:03:48 +0000 (22:03 +0000)]
re PR target/80982 (gcc.target/powerpc/builtins-3-runnable.c fails starting with its introduction in r248846)
gcc/ChangeLog:
2017-06-07 Carl Love <cel@us.ibm.com>
PR target/80982
* config/rs6000/altivec.md (double<mode>2): Fix the implementation of
for BE.
From-SVN: r248997
Carl Love [Wed, 7 Jun 2017 21:59:06 +0000 (21:59 +0000)]
altivec.md: Fix argument swizzle in vec_doublel support...
gcc/ChangeLog:
2017-06-07 Carl Love <cel@us.ibm.com>
* config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
support, Generate doublehv for signed int/float for BE case only.
From-SVN: r248996
Alexander Monakov [Wed, 7 Jun 2017 21:51:51 +0000 (00:51 +0300)]
doc: update x86 -mcx16 option description
* doc/invoke.texi (mcx16): Rewrite.
From-SVN: r248995
Ian Lance Taylor [Wed, 7 Jun 2017 18:12:58 +0000 (18:12 +0000)]
runtime: support ia64 in lfstack
Patch by Andreas Schwab.
Reviewed-on: https://go-review.googlesource.com/45071
From-SVN: r248994
Jonathan Wakely [Wed, 7 Jun 2017 15:43:54 +0000 (16:43 +0100)]
Add C++17 deduction guide for std::basic_regex (P0433R2, partial)
* include/bits/regex.h (basic_regex): Add deduction guide from P0433.
* testsuite/28_regex/basic_regex/ctors/deduction.cc: New.
From-SVN: r248990
Jonathan Wakely [Wed, 7 Jun 2017 15:43:35 +0000 (16:43 +0100)]
PR libstdc++/81002 fix std::basic_regex range constructor
PR libstdc++/81002
* include/bits/regex.h (basic_regex): Adjust call to __compile_nfa
so iterator type is deduced.
* include/bits/regex_compiler.h (__compile_nfa): Reorder template
parameters to allow iterator type to be deduced.
* testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New.
From-SVN: r248989
Segher Boessenkool [Wed, 7 Jun 2017 15:35:40 +0000 (17:35 +0200)]
I love SVN.
From-SVN: r248988
Segher Boessenkool [Wed, 7 Jun 2017 15:33:58 +0000 (17:33 +0200)]
rs6000: Remove rs6000_nonimmediate_operand
Now rs6000_nonimmediate_operand is just nonimmediate_operand.
* config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
* config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
*mov<mode>_softfloat, and an anonymous splitter): Use
nonimmediate_operand instead of rs6000_nonimmediate_operand.
From-SVN: r248987
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
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
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
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
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
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
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
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
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
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
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
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
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
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
David Edelsohn [Wed, 7 Jun 2017 12:41:20 +0000 (08:41 -0400)]
Fix white space.
From-SVN: r248969
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Wed, 7 Jun 2017 00:16:31 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248942
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Tue, 6 Jun 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248908
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
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
Bernd Edlinger [Mon, 5 Jun 2017 19:44:29 +0000 (19:44 +0000)]
changelog for r248894
From-SVN: r248895
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
Jan Hubicka [Mon, 5 Jun 2017 19:14:49 +0000 (21:14 +0200)]
* shring-wrap.c: Revert accidental commit.
From-SVN: r248893
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Mon, 5 Jun 2017 00:16:31 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248867
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
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
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
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
GCC Administrator [Sun, 4 Jun 2017 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r248859