1. 08 Jun, 2017 23 commits
    • re PR target/81015 (Bad codegen for __builtin_clz(unsigned short)) · 2163b9bc
      	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
      Uros Bizjak committed
    • Remove NO_TRAMPOLINES · 73f49ad7
      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
      Tom de Vries committed
    • Fix no_trampolines test in check_effective_target_trampolines · b9835925
      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
      Tom de Vries committed
    • predict.c (unlikely_executed_edge_p): Move ahead. · 5591f0dd
      	* predict.c (unlikely_executed_edge_p): Move ahead.
      	(probably_never_executed_edge_p): Use it.
      
      From-SVN: r249025
      Jan Hubicka committed
    • compiler: fix undefined symbol error with unexported method · dadcc51c
          
          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
      Ian Lance Taylor committed
    • re PR middle-end/79988 ([CHKP] ICE in tree check: accessed operand 5 of… · 77db6c15
      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
      Alexander Ivchenko committed
    • system.h (fancy_abort): Annotate by ATTRIBUTE_COLD. · e6026dc0
      
      	* 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
      Jan Hubicka committed
    • cgraph.c (cgraph_edge::maybe_hot_p): Do not check flag_branch_probabilities. · ee4e85b7
      
      	* 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
      Jan Hubicka committed
    • opts.c (finish_options): x_flag_reorder_blocks_and_partition no longer requires x_flag_profile_use. · ae5512dd
      
      	* opts.c (finish_options): x_flag_reorder_blocks_and_partition no
      	longer requires x_flag_profile_use.
      
      From-SVN: r249019
      Jan Hubicka committed
    • PR libstdc++/81017 add noexcept to std::function move operations · 853ed6bc
      	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
      Jonathan Wakely committed
    • cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition instead of… · 0b6bc904
      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
      Jan Hubicka committed
    • t-vxworks (LIBGCC2_INCLUDES): Add path to wrn/coreip to the set of -I options... · 1ac644c8
      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
      Olivier Hainque committed
    • tree-chkp.c (chkp_get_hard_register_var_fake_base_address): New function. · 0036534f
      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
      Alexander Ivchenko committed
    • predict.c (maybe_hot_bb_p): Do not check profile status. · b69d9ac6
      
      	* 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
      Jan Hubicka committed
    • Add mov[us]wb store intrinsics. · c46f9051
      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
      Julia Koval committed
    • re PR sanitizer/80932 (UBSAN: false positive as a result of distribution:… · 5ed41889
      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
      Marek Polacek committed
    • [PR73350][PR80862] Improve subst for RC-capable insns. · 8055904e
      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
      Julia Koval committed
    • * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko. · 1972030c
      From-SVN: r249008
      Jan Hubicka committed
    • vx_crtbegin_auto.c: Update year in copyright notice. · 724faf7b
      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
      Olivier Hainque committed
    • gcov: Add block_info::block_info (PR gcov-profile/80911). · a82be9d5
      2017-06-08  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/80911
      	* gcov.c (block_info::block_info): New constructor.
      
      From-SVN: r249006
      Martin Liska committed
    • re PR middle-end/77925 (Add __builtin_issubnormal) · 94fc87ec
      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
      Tamar Christina committed
    • re PR tree-optimization/80928 (SLP vectorization does not handle induction in… · fb4bc6ff
      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
      Richard Biener committed
    • Daily bump. · 4d3cb819
      From-SVN: r249003
      GCC Administrator committed
  2. 07 Jun, 2017 17 commits
    • simple-object-xcoff.c (simple_object_xcoff_find_sections): Search symbol table… · c1d24904
      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
      Tony Reix committed
    • rs6000-c: The return type of the following built-in functions was implemented as int not... · 989cc652
      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 committed
    • re PR target/80982 (gcc.target/powerpc/builtins-3-runnable.c fails starting with… · 4a7f0dc0
      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 committed
    • altivec.md: Fix argument swizzle in vec_doublel support... · 618f988c
      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
      Carl Love committed
    • doc: update x86 -mcx16 option description · a4fe64ee
      	* doc/invoke.texi (mcx16): Rewrite.
      
      From-SVN: r248995
      Alexander Monakov committed
    • runtime: support ia64 in lfstack · aa549311
          
          Patch by Andreas Schwab.
          
          Reviewed-on: https://go-review.googlesource.com/45071
      
      From-SVN: r248994
      Ian Lance Taylor committed
    • Add C++17 deduction guide for std::basic_regex (P0433R2, partial) · bfd88d1d
      	* 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 committed
    • PR libstdc++/81002 fix std::basic_regex range constructor · d840779f
      	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
      Jonathan Wakely committed
    • I love SVN. · fa1ae56a
      From-SVN: r248988
      Segher Boessenkool committed
    • rs6000: Remove rs6000_nonimmediate_operand · be9596fe
      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 committed
    • rs6000: Remove spe_acc and spefscr · 346081bd
      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 committed
    • rs6000: Remove SPE high registers · 3e2bca2e
      
      	* 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 committed
    • rs6000: Remove type attribute "brinc" · fba1803a
      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 committed
    • rs6000: Remove spe.md, spe.h, linuxspe.h · 4768200a
      
      	* 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 committed
    • rs6000: Remove reg_or_none500mem_operand · 0ea948e2
      
      	* 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 committed
    • rs6000: Remove -mspe options · 6958e60f
      
      	* 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 committed
    • rs6000: Remove TARGET_SPE and TARGET_SPE_ABI and friends · e075a6cc
      
      	* 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 committed