Commit Graph

154124 Commits

Author SHA1 Message Date
Jonathan Wakely
d840779ff4 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
2017-06-07 16:43:35 +01:00
Segher Boessenkool
fa1ae56a2f I love SVN.
From-SVN: r248988
2017-06-07 17:35:40 +02:00
Segher Boessenkool
be9596fe8f 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
2017-06-07 17:33:58 +02:00
Segher Boessenkool
346081bd18 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
2017-06-07 17:32:39 +02:00
Segher Boessenkool
3e2bca2e2c 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
2017-06-07 17:30:55 +02:00
Segher Boessenkool
fba1803a77 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
2017-06-07 17:29:14 +02:00
Segher Boessenkool
4768200a93 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
2017-06-07 17:27:45 +02:00
Segher Boessenkool
0ea948e25d 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
2017-06-07 17:25:01 +02:00
Segher Boessenkool
6958e60ff7 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
2017-06-07 17:23:49 +02:00
Segher Boessenkool
e075a6ccbf 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
2017-06-07 17:22:33 +02:00
Segher Boessenkool
beaca945bb rs6000: Remove UNSPEC_MV_CR_GT
config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.

From-SVN: r248979
2017-06-07 17:16:44 +02:00
Segher Boessenkool
1cad57128d 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
2017-06-07 17:14:29 +02:00
Segher Boessenkool
817b5d3a9e 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
2017-06-07 17:06:53 +02:00
Segher Boessenkool
4cdd1c4c48 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
2017-06-07 17:04:46 +02:00
Segher Boessenkool
f7c12ec44d 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
2017-06-07 16:59:11 +02:00
Segher Boessenkool
11d8d07e31 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
2017-06-07 16:55:54 +02:00
Nathan Sidwell
a6d31e8499 class.c (layout_class_type): Restructure overlong-bitfield tpe search.
* class.c (layout_class_type): Restructure overlong-bitfield tpe
	search.

From-SVN: r248971
2017-06-07 13:41:20 +00:00
David Edelsohn
2f8d29a497 Fix white space.
From-SVN: r248969
2017-06-07 08:41:20 -04:00
Tony Reix
d8b9cd2700 aix-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Define unconditionally.
2017-06-07  Tony Reix  <tony.reix@atos.net>
            Matthieu Sarter  <matthieu.sarter.external@atos.net>
            David Edelsohn  <dje.gcc@gmail.com>

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

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

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

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

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

gcc/testsuite:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gcc/testsuite/

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

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

Change-Id: Ia594d5854de96183f3c5a669c161e5a9a73a29d7

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

Change-Id: Ia6160364735a889fb6d2370be21d98f87c0fe962

From-SVN: r248924
2017-06-06 17:00:46 +00:00