Commit Graph

154357 Commits

Author SHA1 Message Date
Jakub Jelinek
34361776fb re PR c++/81011 (ICE with #pragma omp task and inaccessible copy-constructor)
PR c++/81011
	* cp-gimplify.c (cxx_omp_finish_clause): When changing clause
	to OMP_CLAUSE_SHARED, also clear OMP_CLAUSE_SHARED_FIRSTPRIVATE
	and OMP_CLAUSE_SHARED_READONLY flags.

	* g++.dg/gomp/pr81011.C: New test.

From-SVN: r249031
2017-06-08 20:55:04 +02:00
Jakub Jelinek
0d05f68547 re PR middle-end/81005 (-fsanitize=null and -fsanitize=alignment doesn't check aggregate arguments of calls)
PR middle-end/81005
	* ubsan.c (instrument_null): Avoid pointless code temporary.
	(pass_ubsan::execute): Instrument aggregate arguments of calls.

	* c-c++-common/ubsan/align-10.c: New test.
	* c-c++-common/ubsan/null-13.c: New test.

From-SVN: r249030
2017-06-08 20:53:16 +02:00
Ian Lance Taylor
3159d897bd compiler: lvalue context fixes in Unary_expression::do_get_backend
A couple of the Backend::var_expression invocations in
    Unary_expression::do_get_backend were selecting "lvalue" context
    incorrectly (these var exprs were not in an assignment or LHS
    position); fix is to change back to "rvalue" context.
    
    Reviewed-on: https://go-review.googlesource.com/45136

From-SVN: r249029
2017-06-08 18:42:04 +00:00
Uros Bizjak
2163b9bcc6 re PR target/81015 (Bad codegen for __builtin_clz(unsigned short))
PR target/81015
	Revert:
	2016-12-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59874
	* config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
	(*clzhi2): Ditto.

testsuite/ChangeLog:

	PR target/81015
	* gcc.target/i386/pr59874-1.c (foo): Call __builtin_ctzs.
	* gcc.target/i386/pr59874-2.c (foo): Call __builtin_clzs.
	* gcc.target/i386/pr81015.c: New test.

From-SVN: r249028
2017-06-08 19:28:19 +02:00
Tom de Vries
73f49ad743 Remove NO_TRAMPOLINES
2017-06-08  Tom de Vries  <tom@codesourcery.com>

	* gcc.c-torture/compile/930506-2.c: Use dg-require-effective-target
	trampolines instead of NO_TRAMPOLINES.
	* gcc.c-torture/execute/20000822-1.c: Same.
	* gcc.c-torture/execute/920428-2.c: Same.
	* gcc.c-torture/execute/920501-7.c: Same.
	* gcc.c-torture/execute/920612-2.c: Same.
	* gcc.c-torture/execute/921017-1.c: Same.
	* gcc.c-torture/execute/921215-1.c: Same.
	* gcc.c-torture/execute/931002-1.c: Same.
	* gcc.c-torture/execute/comp-goto-2.c: Same.
	* gcc.c-torture/execute/nestfunc-1.c: Same.
	* gcc.c-torture/execute/nestfunc-2.c: Same.
	* gcc.c-torture/execute/nestfunc-3.c: Same.
	* gcc.c-torture/execute/nestfunc-5.c: Same.
	* gcc.c-torture/execute/nestfunc-6.c: Same.
	* gcc.c-torture/execute/pr24135.c: Same.
	* gcc.dg/Wtrampolines.c: Same.
	* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
	* gcc.dg/torture/stackalign/nested-5.c: Same.
	* gcc.dg/torture/stackalign/nested-6.c: Same.
	* gcc.dg/torture/stackalign/non-local-goto-3.c: Same.
	* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
	* gcc.dg/torture/stackalign/non-local-goto-5.c: Same.
	* gcc.dg/trampoline-1.c: Same.
	* gcc.dg/tree-prof/pr44777.c: Same.
	* gcc.target/i386/pr67770.c: Same.
	* lib/gcc.exp (gcc_target_compile): Remove appending of
	-DNO_TRAMPOLINES to additional_flags.
	* lib/objc.exp (objc_target_compile): Same.

From-SVN: r249027
2017-06-08 17:16:10 +00:00
Tom de Vries
b9835925b1 Fix no_trampolines test in check_effective_target_trampolines
2017-06-08  Tom de Vries  <tom@codesourcery.com>

	* lib/target-supports.exp (check_effective_target_trampolines): Test for
	'gcc,no_trampolines' instead of 'no_trampolines'.

From-SVN: r249026
2017-06-08 17:15:56 +00:00
Jan Hubicka
5591f0dd96 predict.c (unlikely_executed_edge_p): Move ahead.
* predict.c (unlikely_executed_edge_p): Move ahead.
	(probably_never_executed_edge_p): Use it.

From-SVN: r249025
2017-06-08 16:41:35 +00:00
Ian Lance Taylor
dadcc51c88 compiler: fix undefined symbol error with unexported method
When an interface I1 in an imported package has an unexported method,
    and is then embedded into another interface I2, in a different
    package, that has other methods, and a type T2 is converted to I2, we
    failed to ever define the required interface method table.  Naturally
    T2 must implement the unexported method, and must therefore either be
    defined in the same package as I1, or embed a type from that package.
    In this case the compiler was assuming that that package would define
    the interface method table, but of course, since I2 was not defined in
    that package, that did not happen.
    
    The fix is to only assume that the interface method table will be
    defined elsewhere in the case where T2 and I2 are defined in the same
    package.  The compiler ensures that all such interface method tables
    are created, in Gogo::build_interface_method_tables.  This requires
    knowing the package in which an interface type is defined, a simple
    tweak to the importer.
    
    Testing this revealed that the special case for stub methods created
    for the embedded unexported methods of T2 needs to be done for
    function declarations as it currently is for function definitions, so
    that the newly created interface method tables use the correct name.
    
    Testing that revealed that the code to determine the pkgpath symbol
    for such stub methods was wrong.  It assumed that one could call
    pkgpath_for_symbol on the pkgpath to get the pkgpath symbol.  Would
    that it twere so simple.  Instead, add a function to look up the
    package, which must be known, and fetch the pkgpath symbol.
    
    The test for this is https://golang.org/cl/45085.
    
    Reviewed-on: https://go-review.googlesource.com/45086

From-SVN: r249024
2017-06-08 16:40:21 +00:00
Alexander Ivchenko
77db6c1549 re PR middle-end/79988 ([CHKP] ICE in tree check: accessed operand 5 of call_expr with 4 operands in ix86_expand_builtin, at config/i386/i386.c:36851)
2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>

       PR middle-end/79988
       * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
       gimple_call_builtin_p call.

017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>

        PR middle-end/79988
        * gcc.target/i386/mpx/pr79988.c: New test.

From-SVN: r249023
2017-06-08 16:05:59 +00:00
Jan Hubicka
e6026dc04c system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
* system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
	* rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
	rtl_check_failed_type2, rtl_check_failed_code1,
	rtl_check_failed_code2, rtl_check_failed_code_mode,
	rtl_check_failed_block_symbol, cwi_check_failed_bounds,
	rtvec_check_failed_bounds, rtl_check_failed_flag,
	_fatal_insn_not_found, _fatal_insn): Likewise.
	* tree.h (tree_contains_struct_check_failed,
	tree_check_failed, tree_not_check_failed,
	tree_class_check_failed, tree_range_check_failed,
	tree_not_class_check_failed, tree_int_cst_elt_check_failed,
	tree_vec_elt_check_failed, phi_node_elt_check_failed,
	tree_operand_check_failed, omp_clause_check_failed,
	omp_clause_operand_check_failed, omp_clause_range_check_failed):
	Likewise.

	* cp-tree.h (lang_check_failed): Annotate by ATTRIBUTE_COLD.

From-SVN: r249022
2017-06-08 15:24:38 +00:00
Jan Hubicka
ee4e85b78f cgraph.c (cgraph_edge::maybe_hot_p): Do not check flag_branch_probabilities.
* cgraph.c (cgraph_edge::maybe_hot_p): Do not check
	flag_branch_probabilities.
	* ipa-inline.c (edge_badness): Likewise.
	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
	* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
	* predict.c (maybe_hot_frequency_p): Likewise.
	(probably_never_executed): Likewise.
	* sched-ebb.c (schedule_ebbs): Likewise.
	* sched-rgn.c (find_single_block_region): Likewise.
	* tracer.c (tail_duplicate): Likewise.

From-SVN: r249020
2017-06-08 15:15:51 +00:00
Jan Hubicka
ae5512dd4f opts.c (finish_options): x_flag_reorder_blocks_and_partition no longer requires x_flag_profile_use.
* opts.c (finish_options): x_flag_reorder_blocks_and_partition no
	longer requires x_flag_profile_use.

From-SVN: r249019
2017-06-08 14:47:26 +00:00
Jonathan Wakely
853ed6bc10 PR libstdc++/81017 add noexcept to std::function move operations
PR libstdc++/81017
	* include/bits/std_function.h (function::function(function&&))
	(function::operator=(funtion&&)): Add noexcept.
	* testsuite/20_util/function/assign/move.cc: Check for noexcept.
	* testsuite/20_util/function/cons/move.cc: Likewise.

From-SVN: r249018
2017-06-08 15:27:45 +01:00
Jan Hubicka
0b6bc90422 cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition instead of flag_reorder_blocks_and_partition.
* cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
	instead of flag_reorder_blocks_and_partition.
	* dbxout.c (dbxout_function_end): Likewise.
	* dwarf2out.c (gen_subprogram_die): Likewise.
	* haifa-sched.c (sched_create_recovery_edges): Likewise.
	* hw-doloop.c (reorg_loops): Likewise.
	* varasm.c (assemble_start_function,
	assemble_end_function): Likewise.
	(decide_function_section): Do not check for
	flag_reorder_blocks_and_partition.

From-SVN: r249017
2017-06-08 14:23:43 +00:00
Olivier Hainque
1ac644c8d0 t-vxworks (LIBGCC2_INCLUDES): Add path to wrn/coreip to the set of -I options...
2017-06-08  Olivier Hainque  <hainque@adacore.com>

        * config/t-vxworks (LIBGCC2_INCLUDES): Add path to wrn/coreip to
        the set of -I options, support for direct inclusions of net/uio.h
        by VxWorks header files via ioLib.h.

From-SVN: r249016
2017-06-08 14:08:56 +00:00
Alexander Ivchenko
0036534fa3 tree-chkp.c (chkp_get_hard_register_var_fake_base_address): New function.
gcc/ChangeLog:

2017-05-09  Alexander Ivchenko  <aivchenk@gmail.com>

        * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
        New function.
        (chkp_get_hard_register_fake_addr_expr): Ditto.
        (chkp_build_addr_expr): Add check for hard reg case.
        (chkp_parse_array_and_component_ref): Ditto.
        (chkp_find_bounds_1): Ditto.
        (chkp_process_stmt): Don't generate bounds store for
        hard reg case.


gcc/testsuite/ChangeLog:

2017-05-09  Alexander Ivchenko  <aivchenk@gmail.com>

        * gcc.target/i386/mpx/hard-reg-2-lbv.c: New test.
        * gcc.target/i386/mpx/hard-reg-2-nov.c: New test.
        * gcc.target/i386/mpx/hard-reg-2-ubv.c: New test.

From-SVN: r249015
2017-06-08 14:07:21 +00:00
Jan Hubicka
b69d9ac6a9 predict.c (maybe_hot_bb_p): Do not check profile status.
* predict.c (maybe_hot_bb_p): Do not check profile status.
	(maybe_hot_edge_p): Likewise.
	(probably_never_executed): Check for zero counts even if profile
	is not read.
	(unlikely_executed_edge_p): New function.
	(unlikely_executed_stmt_p): New function.
	(unlikely_executed_bb_p): New function.
	(set_even_probabilities): Use unlikely predicates.
	(combine_predictions_for_bb): Likewise.
	(predict_paths_for_bb): Likewise.
	(predict_paths_leading_to_edge): Likewise.
	(determine_unlikely_bbs): New function.
	(estimate_bb_frequencies): Use it.
	(compute_function_frequency): Use zero counts even if profile is
	not read.
	* profile-count.h: Fix typo.

	* g++.dg/tree-ssa/counts-1.C: New testcase.
	* gcc.dg/tree-ssa/counts-1.c: New testcase.

From-SVN: r249013
2017-06-08 13:16:44 +00:00
Julia Koval
c46f905165 Add mov[us]wb store intrinsics.
gcc/
	* config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
	_mm512_mask_cvtsepi16_storeu_epi8,
	_mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
	* config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
	_mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
	_mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
	_mm_mask_cvtepi16_storeu_epi8): New intrinsics.
	* config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
	(VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
	VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
	* config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
	__builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
	__builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
	__builtin_ia32_pmovuswb256mem_mask,
	__builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
	__builtin_ia32_pmovwb512mem_mask): New builtins.

gcc/testsuite/
	* gcc.target/i386/avx512bw-vpmovswb-1.c: Add new intrinsics to test.
	* gcc.target/i386/avx512bw-vpmovswb-2.c: Ditto.
	* gcc.target/i386/avx512bw-vpmovuswb-1.c: Ditto.
	* gcc.target/i386/avx512bw-vpmovuswb-2.c: Ditto.
	* gcc.target/i386/avx512bw-vpmovwb-1.c: Ditto.
	* gcc.target/i386/avx512bw-vpmovwb-2.c: Ditto.

From-SVN: r249012
2017-06-08 13:04:43 +00:00
Marek Polacek
5ed418891b re PR sanitizer/80932 (UBSAN: false positive as a result of distribution: c1*(c2*v1-c3*v2)=>c1*c2*v1-c1*c3*v2)
PR sanitize/80932
	* c-c++-common/ubsan/pr80932.c: Test with ints, not with long ints.

From-SVN: r249010
2017-06-08 12:38:27 +00:00
Julia Koval
8055904e9e [PR73350][PR80862] Improve subst for RC-capable insns.
PR target/73350,80862
gcc/
	* config/i386/subst.md (round): Fix round pattern.
	* config/i386/i386.c (ix86_erase_embedded_rounding):
	Fix erasing rounding for the fixed pattern.

gcc/testsuite/
	* gcc.target/i386/pr73350.c: New test.

From-SVN: r249009
2017-06-08 11:24:50 +00:00
Jan Hubicka
1972030cf1 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
From-SVN: r249008
2017-06-08 09:34:32 +00:00
Olivier Hainque
724faf7b59 vx_crtbegin_auto.c: Update year in copyright notice.
2017-06-08  Olivier Hainque  <hainque@adacore.com>

        * vx_crtbegin_auto.c: Update year in copyright notice.
        * vx_crtbegin.c: Likewise.
        * vx_crtbegin.inc: Likewise. 
        * vx_crtend.c:  Likewise.

From-SVN: r249007
2017-06-08 08:20:39 +00:00
Martin Liska
a82be9d5f1 gcov: Add block_info::block_info (PR gcov-profile/80911).
2017-06-08  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/80911
	* gcov.c (block_info::block_info): New constructor.

From-SVN: r249006
2017-06-08 07:51:07 +00:00
Tamar Christina
94fc87ecdf re PR middle-end/77925 (Add __builtin_issubnormal)
2017-06-08  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/77925
	PR middle-end/77926
	PR middle-end/66462

	* gcc/builtins.c (fold_builtin_fpclassify): Remove.
	(fold_builtin_interclass_mathfn): Remove.
	(expand_builtin): Add builtins to lowering list.
	(fold_builtin_n): Remove fold_builtin_varargs.
	(fold_builtin_varargs): Remove.
	* gcc/builtins.def (BUILT_IN_ISZERO, BUILT_IN_ISSUBNORMAL): New.
	* gcc/real.h (get_min_float): New.
	(real_format): Add is_ieee_compatible field.
	* gcc/real.c (get_min_float): New.
	(ieee_single_format): Set is_ieee_compatible flag.
	* gcc/gimple-low.c (lower_stm): Define BUILT_IN_FPCLASSIFY,
	CASE_FLT_FN (BUILT_IN_ISINF), BUILT_IN_ISINFD32, BUILT_IN_ISINFD64,
	BUILT_IN_ISINFD128, BUILT_IN_ISNAND32, BUILT_IN_ISNAND64,
	BUILT_IN_ISNAND128, BUILT_IN_ISNAN, BUILT_IN_ISNORMAL, BUILT_IN_ISZERO,
	BUILT_IN_ISSUBNORMAL, CASE_FLT_FN (BUILT_IN_FINITE), BUILT_IN_FINITED32
	BUILT_IN_FINITED64, BUILT_IN_FINITED128, BUILT_IN_ISFINITE.
	(lower_builtin_fpclassify, is_nan, is_normal, is_infinity): New.
	(is_zero, is_subnormal, is_finite, use_ieee_int_mode): Likewise.
	(lower_builtin_isnan, lower_builtin_isinfinite): Likewise.
	(lower_builtin_isnormal, lower_builtin_iszero): Likewise.
	(lower_builtin_issubnormal, lower_builtin_isfinite): Likewise.
	(emit_tree_cond, get_num_as_int, emit_tree_and_return_var): New.
	(mips_single_format): Likewise.
	(motorola_single_format): Likewise.
	(spu_single_format): Likewise.
	(ieee_double_format): Likewise.
	(mips_double_format): Likewise.
	(motorola_double_format): Likewise.
	(ieee_extended_motorola_format): Likewise.
	(ieee_extended_intel_128_format): Likewise.
	(ieee_extended_intel_96_round_53_format): Likewise.
	(ibm_extended_format): Likewise.
	(mips_extended_format): Likewise.
	(ieee_quad_format): Likewise.
	(mips_quad_format): Likewise.
	(vax_f_format): Likewise.
	(vax_d_format): Likewise.
	(vax_g_format): Likewise.
	(decimal_single_format): Likewise.
	(decimal_quad_format): Likewise.
	(iee_half_format): Likewise.
	(mips_single_format): Likewise.
	(arm_half_format): Likewise.
	(real_internal_format): Likewise.
	* gcc/doc/extend.texi: Add documentation for built-ins.
	* gcc/c/c-typeck.c (convert_arguments): Add BUILT_IN_ISZERO
	and BUILT_IN_ISSUBNORMAL.

gcc/testsuite/
2017-06-08  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/aarch64/builtin-fpclassify.c: New codegen test.
	* gcc.dg/fold-notunord.c: Removed.
	* gcc.dg/torture/floatn-tg-4.h: Add tests for iszero and issubnormal.
	* gcc.dg/torture/float128-tg-4.c: Likewise.
	* gcc.dg/torture/float128x-tg-4: Likewise.
	* gcc.dg/torture/float16-tg-4.c: Likewise.
	* gcc.dg/torture/float32-tg-4.c: Likewise.
	* gcc.dg/torture/float32x-tg-4.c: Likewise.
	* gcc.dg/torture/float64-tg-4.c: Likewise.
	* gcc.dg/torture/float64x-tg-4.c: Likewise.
	* gcc.dg/pr28796-1.c: Add -O2.
	* gcc.dg/builtins-43.c: Check lower instead of gimple.
	* gcc.dg/tg-tests.h: Add iszero and issubnormal.
	* gcc.dg/pr77925.c: Add to test safe cases.

From-SVN: r249005
2017-06-08 07:38:42 +00:00
Richard Biener
fb4bc6ff6c re PR tree-optimization/80928 (SLP vectorization does not handle induction in outer loop vectorization)
2017-06-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80928
	* gcc.dg/vect/slp-perm-8.c: Do not expect check loop to be vectorized.

From-SVN: r249004
2017-06-08 07:32:52 +00:00
GCC Administrator
4d3cb8199b Daily bump.
From-SVN: r249003
2017-06-08 00:16:26 +00:00
Tony Reix
c1d2490437 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
2017-06-07 19:23:55 -04:00
Carl Love
989cc652ee 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
2017-06-07 22:23:15 +00:00
Carl Love
4a7f0dc060 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
2017-06-07 22:03:48 +00:00
Carl Love
618f988cb2 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
2017-06-07 21:59:06 +00:00
Alexander Monakov
a4fe64ee20 doc: update x86 -mcx16 option description
* doc/invoke.texi (mcx16): Rewrite.

From-SVN: r248995
2017-06-08 00:51:51 +03:00
Ian Lance Taylor
aa5493116b runtime: support ia64 in lfstack
Patch by Andreas Schwab.
    
    Reviewed-on: https://go-review.googlesource.com/45071

From-SVN: r248994
2017-06-07 18:12:58 +00:00
Jonathan Wakely
bfd88d1df1 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
2017-06-07 16:43:54 +01:00
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