1. 03 Aug, 2016 11 commits
  2. 02 Aug, 2016 21 commits
    • escape: Add basic debugging. · 7295570d
          
          Emit basic debug information when compiling with the flag
          -fgo-debug-escape#.
          
          Reviewed-on: https://go-review.googlesource.com/22376
      
      	2016-08-02  Chris Manghane  <cmang@google.com>
      
      	* lang.opt: Add -fgo-debug-escape option.
      	* go-c.h (go_create_gogo): Add debug_escape_level parameter.
      	* go-lang.c (go_langhook_init): Pass go_debug_escape_level to
      	go_create_gogo.
      
      From-SVN: r239002
      Chris Manghane committed
    • re PR rtl-optimization/72778 (internal compiler error: in create_pre_exit, at mode-switching.c:451) · 00803109
      2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR middle-end/72778
      	* lra-spills.c (regno_in_use_p): New.
      	(lra_final_code_change): Use it.
      
      From-SVN: r239000
      Vladimir Makarov committed
    • Fix std::wstring allocator tests · 589a30d1
      	* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
      	Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
      	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
      	Likewise.
      	* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
      	Likewise.
      
      From-SVN: r238996
      Jonathan Wakely committed
    • Improve comments on check_v3_target_filesystem_ts · 8bcd00bb
      	* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
      	comments.
      
      From-SVN: r238995
      Jonathan Wakely committed
    • Move dg-error directives to relevant lines · a4e1011c
      	* testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
      	dg-error to relevant line.
      	* testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
      	Likewise.
      	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
      
      From-SVN: r238994
      Jonathan Wakely committed
    • Add -fno-show-column to libstdc++ test flags · 64dde682
      	* scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
      
      From-SVN: r238993
      Jonathan Wakely committed
    • expr.c (push_value): Only call flush_quick_stack for non-constant arguments. · 0e84fd17
      2016-08-02  Roger Sayle  <roger@nextmovesoftware.com>
      
      	* expr.c (push_value): Only call flush_quick_stack for non-constant
      	arguments.
      	(build_java_throw_out_of_bounds_exception): No longer wrap calls
      	to _Jv_ThowBadArrayIndex in a COMPOUND_EXPR as no longer needed.
      	(java_check_reference): Annotate COND_EXPR with __builtin_expect
      	to indicate that calling _Jv_ThrowNullPointerException is unlikely.
      	(build_java_arrayaccess): Construct an unlikely COND_EXPR instead
      	of a TRUTH_ANDIF_EXPR in a COMPOUND_EXPR.  Only generate array
      	index MULT_EXPR when size_exp is not unity.
      	(build_array_length_annotation): When optimizing, generate a write
      	to the allocated array's length field to expose constant lengths
      	to GCC's optimizers.
      	(build_newarray): Call new build_array_length_annotation.
      	(build_anewarray): Likewise.
      
      	(expand_java_multianewarray): Fix whitespace.
      	(expand_java_return): Likewise.
      	(expand_invoke): Likewise.
      	(load_type_state): Likewise.
      
      From-SVN: r238992
      Roger Sayle committed
    • re PR rtl-optimization/69847 (Spec 2006 403.gcc slows down with -mlra vs. reload on PowerPC) · 8a8330b7
      2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/69847
      	* lra-int.h (struct lra-reg): Use restore_rtx instead of
      	restore_regno.
      	(lra_rtx_hash): New.
      	* lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
      	of restore_regno.
      	(lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
      	* lra-remat.c (rtx_hash): Rename and Move to lra.c.
      	* lra-spills.c (lra_final_code_change): Don't delete insn when the
      	next insn is USE with the same reg as the current insn source.
      	* lra-constraints.c (curr_insn_transform): Use restore_rtx instead
      	of restore_regno.
      	(lra_constraints_init): Call initiate_invariants.
      	(lra_constraints_finish): Call finish_invariants.
      	(struct invariant, invariant_t, invariant_ptr_t): New.
      	(const_invariant_ptr_t, invariants, invariants_pool): New.
      	(invariant_table, invariant_hash, invariant_eq_p): New.
      	(insert_invariant, initiate_invariants, finish_invariants): New.
      	(clear_invariants, invalid_invariant_regs): New.
      	(inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
      	instead of restore_regno.
      	(invariant_p, process_invariant_for_inheritance): New.
      	(inherit_in_ebb): Implement invariant inheritance.
      	(lra_inheritance): Initialize and finalize invalid_invariant_regs.
      	(remove_inheritance_pseudos): Implement undoing invariant
      	inheritance.
      	(undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
      	instead of restore_regno.
      	* lra-assigns.c (regno_live_length): New.
      	(reload_pseudo_compare_func): Use regno_live_length.
      	(assign_by_spills): Use restore_rtx instead of restore_regno.
      	(lra_assign): Ditto.  Initiate regno_live_length.
      
      From-SVN: r238991
      Vladimir Makarov committed
    • * fixinc.in: Use --parents option to make LIB directory. · 354c5470
      From-SVN: r238990
      Muhammad Bilal committed
    • [Patch AArch64 Obvious] Fix Bootstrap for my mistake in r238977 · 1f19ed02
      I deleted an 'f' halfway through a line when applying r238977. Not sure
      how I managed it, but entirely my fault.
      
      gcc/
      
      	* config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
      	__builtin_aarch64_fmindf.
      
      From-SVN: r238989
      James Greenhalgh committed
    • Skip C tests if test flags include C++ options · 807bd096
      	* testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
      	options are present that aren't valid for C.
      	* testsuite/abi/header_cxxabi.c: Likewise.
      
      From-SVN: r238988
      Jonathan Wakely committed
    • Test TR1 special functions without adding them to std · 8c65cd30
      	* testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
      	check_value.cc: Do not add special functions to namespace std in TR1
      	test.
      
      From-SVN: r238987
      Jonathan Wakely committed
    • Only run math special function tests for C++11 and later · 196c9e7a
      	* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
      	run for C++11 and later.
      	* testsuite/ext/special_functions/conf_hyperg/check_value.cc:
      	Likewise.
      	* testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
      	* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
      	* testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
      	* testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
      	* testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
      	Likewise.
      	* testsuite/special_functions/01_assoc_laguerre/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
      	* testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
      	Likewise.
      	* testsuite/special_functions/02_assoc_legendre/check_nan.cc:
      	Likewise.
      	* testsuite/special_functions/02_assoc_legendre/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
      	* testsuite/special_functions/02_assoc_legendre/compile_2.cc:
      	* testsuite/special_functions/03_beta/check_nan.cc: Likewise.
      	* testsuite/special_functions/03_beta/check_value.cc: Likewise.
      	* testsuite/special_functions/03_beta/compile.cc: Likewise.
      	* testsuite/special_functions/03_beta/compile_2.cc: Likewise.
      	* testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
      	* testsuite/special_functions/04_comp_ellint_1/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
      	* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
      	* testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
      	* testsuite/special_functions/05_comp_ellint_2/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
      	* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
      	* testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
      	* testsuite/special_functions/06_comp_ellint_3/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
      	* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
      	* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
      	* testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
      	* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
      	* testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
      	* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
      	* testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
      	* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
      	* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
      	* testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
      	* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
      	* testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
      	* testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
      	* testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
      	* testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
      	* testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
      	* testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
      	* testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
      	* testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
      	* testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
      	* testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
      	* testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
      	* testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
      	* testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
      	* testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
      	* testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
      	* testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
      	* testsuite/special_functions/14_expint/check_nan.cc: Likewise.
      	* testsuite/special_functions/14_expint/check_value.cc: Likewise.
      	* testsuite/special_functions/14_expint/compile.cc: Likewise.
      	* testsuite/special_functions/14_expint/compile_2.cc: Likewise.
      	* testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
      	* testsuite/special_functions/15_hermite/check_value.cc: Likewise.
      	* testsuite/special_functions/15_hermite/compile.cc: Likewise.
      	* testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
      	* testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
      	* testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
      	* testsuite/special_functions/16_laguerre/compile.cc: Likewise.
      	* testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
      	* testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
      	* testsuite/special_functions/17_legendre/check_value.cc: Likewise.
      	* testsuite/special_functions/17_legendre/compile.cc: Likewise.
      	* testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
      	* testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
      	* testsuite/special_functions/18_riemann_zeta/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
      	* testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
      	* testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
      	* testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
      	* testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
      	* testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
      	* testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
      	* testsuite/special_functions/20_sph_legendre/check_value.cc:
      	Likewise.
      	* testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
      	* testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
      	* testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
      	* testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
      	* testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
      	* testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
      
      From-SVN: r238986
      Jonathan Wakely committed
    • Make TR1 special function tests support C++98 · 69332dba
      	* testsuite/tr1/5_numerical_facilities/special_functions/
      	08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
      	of [[gnu::unused]].
      	* testsuite/tr1/5_numerical_facilities/special_functions/
      	09_cyl_bessel_j/check_value.cc: Likewise.
      	* testsuite/tr1/5_numerical_facilities/special_functions/
      	10_cyl_bessel_k/check_value.cc: Likewise.
      	* testsuite/tr1/5_numerical_facilities/special_functions/
      	11_cyl_neumann/check_value.cc: Likewise.
      	* testsuite/tr1/5_numerical_facilities/special_functions/
      	21_sph_bessel/check_value.cc: Likewise.
      	* testsuite/tr1/5_numerical_facilities/special_functions/
      	23_sph_neumann/check_value.cc: Likewise.
      
      From-SVN: r238985
      Jonathan Wakely committed
    • Update Solaris baselines · e1539627
      	* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
      	* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
      	* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
      	* config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
      	* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
      	* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
      
      From-SVN: r238984
      Rainer Orth committed
    • re PR tree-optimization/34114 (Missed optimization: cannot determine loop termination) · 69b806f6
      	PR tree-optimization/34114
      	* tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
      	information for more control IVs.
      
      	gcc/testsuite
      	PR tree-optimization/34114
      	* gcc.dg/tree-ssa/loop-42.c: New test.
      
      From-SVN: r238983
      Bin Cheng committed
    • re PR tree-optimization/34114 (Missed optimization: cannot determine loop termination) · 4e2f2da3
      	PR tree-optimization/34114
      	* fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
      	PLUS_EXPR case.  Handle SSA_NAME case.
      
      From-SVN: r238982
      Bin Cheng committed
    • Skip scan-assembler test when -flto is used · e877144d
      	* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
      	test if -flto used.
      
      From-SVN: r238981
      Jonathan Wakely committed
    • Support using -flto with libstdc++ testsuite · c1b6948e
      	* testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
      	additional flags for compiling libtestc++.a objects.
      
      From-SVN: r238978
      Jonathan Wakely committed
    • [PATCH AArch64] Add more AArch64 NEON intrinsics · 1efafef3
      Add vmaxnm_f64, vminnm_f64, vmax_f64, vmin_f64.
      
      Committed on behalf of Tamar Christina <tamar.christina@arm.com> .
      
      gcc/
      
      	* config/aarch64/aarch64-simd-builtins.def
      	(__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
      	(__builtin_aarch64_fmaxdf): Likewise.
      	(__builtin_aarch64_smin_nandf): Likewise.
      	(__builtin_aarch64_smax_nandf): Likewise.
      	* config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
      	* config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
      	(<fmaxmin><mode>3): ...this.
      	* config/aarch64/arm_neon.h (vmaxnm_f64): New.
      	(vminnm_f64): Likewise.
      	(vmin_f64): Likewise.
      	(vmax_f64): Likewise.
      	* config/aarch64/iterators.md (FMAXMIN): Merge with...
      	(FMAXMIN_UNS): ...this.
      	(fmaxmin): Merged with
      	(fmaxmin_op): ...this...
      	(maxmin_uns_op): ...in to this.
      
      gcc/testsuite/
      
      	* gcc.target/aarch64/vminmaxnm.c: New.
      	* gcc.target/aarch64/simd/vminmaxnm_1.c (main): Added float64x1_t
      	tests.
      
      From-SVN: r238977
      Tamar Christina committed
    • Daily bump. · 0b953808
      From-SVN: r238976
      GCC Administrator committed
  3. 01 Aug, 2016 8 commits
    • rs6000-c.c (altivec_resolve_overloaded_builtin): Add support for vec_extract on vector float... · e2a99194
      [gcc]
      2016-08-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Add support for vec_extract on vector float, vector int, vector
      	short, and vector char vector types.
      	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
      	vector float, vector int, vector short, and vector char
      	optimizations on 64-bit ISA 2.07 systems for both constant and
      	variable element numbers.
      	(rs6000_split_vec_extract_var): Likewise.
      	* config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
      	Altivec registers on ISA 2.07 and above.
      	(vsx_extract_v4sf): Delete alternative that hard coded element 0,
      	which never was matched due to the split occuring before register
      	allocation (and the code would not have worked on little endian
      	systems if it did match).  Allow extracts to go to the Altivec
      	registers if ISA 2.07 (power8).  Change from using "" around the
      	C++ code to using {}'s.
      	(vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
      	vec_extracts when the vector is in memory.
      	(vsx_extract_v4sf_var): New insn to optimize vector float
      	vec_extracts when the element number is variable on 64-bit ISA
      	2.07 systems.
      	(vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
      	for 64-bit ISA 2.07 as well as ISA 3.0.
      	(vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
      	(vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
      	(vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
      	optimize vector int, vector short, and vector char vec_extracts
      	when the vector is in memory.
      	(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
      	optimize vector int, vector short, and vector char vec_extracts
      	when the element number is variable.
      
      [gcc/testsuite]
      2016-08-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/vec-extract-5.c: New tests to test
      	vec_extract for vector float, vector int, vector short, and vector
      	char.
      	* gcc.target/powerpc/vec-extract-6.c: Likewise.
      	* gcc.target/powerpc/vec-extract-7.c: Likewise.
      	* gcc.target/powerpc/vec-extract-8.c: Likewise.
      	* gcc.target/powerpc/vec-extract-9.c: Likewise.
      
      From-SVN: r238971
      Michael Meissner committed
    • Warn about mangled name change even if DECL_REALLY_EXTERN. · 72a30e45
      	* mangle.c (mangle_decl): Warn about mangled name change even if
      	DECL_REALLY_EXTERN.
      
      From-SVN: r238966
      Jason Merrill committed
    • mangle.c (get_abi_tags): New. · 884929e2
      	* mangle.c (get_abi_tags): New.
      
      	(find_substitution, write_unqualified_name, write_abi_tags)
      	(maybe_check_abi_tags): Use it.
      
      From-SVN: r238965
      Jason Merrill committed
    • * mangle.c (mangle_decl): Fix mangled name change warning. · 352b8bab
      From-SVN: r238964
      Jason Merrill committed
    • Add non-const std::basic_string::data() for C++17 · 92d58dee
      	* include/bits/basic_string.h (data() const): Update comment.
      	(data()): Add non-const overload for C++17.
      	* testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
      	* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
      
      From-SVN: r238963
      Jonathan Wakely committed
    • re PR target/71948 ([avr] Make progmem work on reduced Tiny cores by adding 0x4000 to symbols) · 3ce9aa83
      	PR target/71948
      	* config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
      	does not overlap with other symbol flags.
      
      From-SVN: r238961
      Georg-Johann Lay committed
    • This patch optimizes the prolog and epilog code to reduce the number of… · 71bfb77a
      This patch optimizes the prolog and epilog code to reduce the number of instructions and avoid multiple writes to SP.
      
      This patch optimizes the prolog and epilog code to reduce the number of
      instructions and avoid multiple writes to SP.  The key idea is that epilogs
      are almost exact reverses of prologs, and thus all the decisions only need
      to be taken once.  The frame layout is decided in aarch64_layout_frame()
      and decisions recorded in the new aarch64_frame fields initial_adjust,
      callee_adjust, callee_offset and final_adjust.
      
      A generic frame setup consists of 5 basic steps:
      
      1. sub sp, sp, initial_adjust
      2. stp reg1, reg2, [sp, -callee_adjust]!      (push if callee_adjust != 0)
      3. add fp, sp, callee_offset                  (if frame_pointer_needed)
      4. stp reg3, reg4, [sp, callee_offset + N*16] (store remaining callee-saves)
      5. sub sp, sp, final_adjust
      
      The epilog reverses this, and may omit step 3 if alloca wasn't used.
      
          gcc/
      	* config/aarch64/aarch64.h (aarch64_frame):
      	Remove padding0 and hardfp_offset.  Add locals_offset,
      	initial_adjust, callee_adjust, callee_offset and final_adjust.
      	* config/aarch64/aarch64.c (aarch64_layout_frame):
      	Remove unused padding0 and hardfp_offset initializations.
      	Choose frame layout and set frame variables accordingly.
      	Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
      	(aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
      	(aarch64_pop_regs): Likewise.
      	(aarch64_expand_prologue): Remove all decision code, just emit
      	prolog according to frame variables.
      	(aarch64_expand_epilogue): Remove all decision code, just emit
      	epilog according to frame variables.
      	(aarch64_initial_elimination_offset): Use offset to local/arg area.
      
          testsuite/
      	* gcc.target/aarch64/test_frame_10.c: Fix test to check for a
      	single stack adjustment, no writeback.	
      	* gcc.target/aarch64/test_frame_12.c: Likewise.
      	* gcc.target/aarch64/test_frame_13.c: Likewise.
      	* gcc.target/aarch64/test_frame_15.c: Likewise.
      	* gcc.target/aarch64/test_frame_6.c: Likewise.
      	* gcc.target/aarch64/test_frame_7.c: Likewise.
      	* gcc.target/aarch64/test_frame_8.c: Likewise.
      	* gcc.target/aarch64/test_frame_16.c: New test.
      
      From-SVN: r238960
      Wilco Dijkstra committed
    • Disable std::string and std::wstring extern templates for C++17 · 0f86525a
      	* include/bits/basic_string.tcc: Disable explicit instantiation
      	declarations for C++17.
      
      From-SVN: r238959
      Jonathan Wakely committed