1. 16 Jun, 2019 1 commit
    • MSP430: Implement 64-bit shifts in assembly code · 0fcc78f7
      gcc/ChangeLog:
      
      2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
      	describe how to perform MSPABI compliant 64-bit shift.
      	* config/msp430/msp430.md (ashldi3): New define_expand.
      	(ashrdi3): New define_expand.
      	(lshrdi3): New define_expand.
      
      libgcc/ChangeLog:
      
      2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/slli.S (__mspabi_sllll): New library function for
      	performing a logical left shift of a 64-bit value.
      	* config/msp430/srai.S (__mspabi_srall): New library function for
      	performing a arithmetic right shift of a 64-bit value.
      	* config/msp430/srll.S (__mspabi_srlll): New library function for
      	performing a logical right shift of a 64-bit value.
      
      gcc/testsuite/ChangeLog:
      
      2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* gcc.target/msp430/mspabi_sllll.c: New test.
      	* gcc.target/msp430/mspabi_srall.c: New test.
      	* gcc.target/msp430/mspabi_srlll.c: New test.
      	* gcc.c-torture/execute/shiftdi-2.c: New test.
      
      From-SVN: r272360
      Jozef Lawrynowicz committed
  2. 14 Jun, 2019 1 commit
    • [NetBSD] Add support for the Arm EABI. · b27c1082
      This is a roll-up of a set of changes needed to support the Arm EABI on NetBSD.
      
      2019-06-14  Matt Thomas  <matt@3am-software.com>
      	    Matthew Green  <mrg@eterna.com.au>
      	    Nick Hudson  <skrll@netbsd.org>
      	    Maya Rashish  <coypu@sdf.org>
      	    Richard Earnshaw  <rearnsha@arm.com>
      
      gcc:
      
      	* config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
      	* config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
      	* config/arm/netbsd-eabi.h: New file.
      	* config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
      	redefining.
      	(SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
      	* config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
      	(NETBSD_SUBTARGET_EXTRA_SPECS): New define.
      	(SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
      
      libatomic:
      	* configure.tgt (arm*): Handle NetBSD in the same way as FreeBSD.
      
      libgcc:
      	* config.host (arm*-*-netbsdelf*): Add support for EABI configurations.
      	* config/arm/t-netbsd (LIB1ASMFUNCS): Add some additional assembler
      	functions to build.
      	* config/arm/t-netbsd-eabi: New file.
      
      
      Co-Authored-By: Matthew Green <mrg@eterna.com.au>
      Co-Authored-By: Maya Rashish <coypu@sdf.org>
      Co-Authored-By: Nick Hudson <skrll@netbsd.org>
      Co-Authored-By: Richard Earnshaw <rearnsha@arm.com>
      
      From-SVN: r272290
      Matt Thomas committed
  3. 12 Jun, 2019 1 commit
    • Initial TI PRU libgcc port · ae7deb4b
      libgcc/ChangeLog:
      
      2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>
      
      	* config.host: Add PRU target.
      	* config/pru/asri.c: New file.
      	* config/pru/eqd.c: New file.
      	* config/pru/eqf.c: New file.
      	* config/pru/ged.c: New file.
      	* config/pru/gef.c: New file.
      	* config/pru/gtd.c: New file.
      	* config/pru/gtf.c: New file.
      	* config/pru/led.c: New file.
      	* config/pru/lef.c: New file.
      	* config/pru/lib2bitcountHI.c: New file.
      	* config/pru/lib2divHI.c: New file.
      	* config/pru/lib2divQI.c: New file.
      	* config/pru/lib2divSI.c: New file.
      	* config/pru/libgcc-eabi.ver: New file.
      	* config/pru/ltd.c: New file.
      	* config/pru/ltf.c: New file.
      	* config/pru/mpyll.S: New file.
      	* config/pru/pru-abi.h: New file.
      	* config/pru/pru-asm.h: New file.
      	* config/pru/pru-divmod.h: New file.
      	* config/pru/sfp-machine.h: New file.
      	* config/pru/t-pru: New file.
      
      From-SVN: r272204
      Dimitar Dimitrov committed
  4. 11 Jun, 2019 1 commit
  5. 10 Jun, 2019 2 commits
    • Add missing ATTR_UNUSED (PR bootstrap/90808). · 54e2d83c
      2019-06-10  Martin Liska  <mliska@suse.cz>
      
      	PR bootstrap/90808
      	* libgcov.h: Add ATTRIBUTE_UNUSED.
      
      From-SVN: r272114
      Martin Liska committed
    • Implement N disk counters for single value and indirect call counters. · 92d41717
      2019-06-10  Martin Liska  <mliska@suse.cz>
      
      	* gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
      	(GCOV_SINGLE_VALUE_COUNTERS): Likewise.
      	* ipa-profile.c (ipa_profile_generate_summary):
      	Use get_most_common_single_value.
      	* tree-profile.c (gimple_init_gcov_profiler):
      	Instrument with __gcov_one_value_profiler_v2
      	and __gcov_indirect_call_profiler_v4.
      	* value-prof.c (dump_histogram_value):
      	Print all values for HIST_TYPE_SINGLE_VALUE.
      	(stream_out_histogram_value): Update assert for
      	N values.
      	(stream_in_histogram_value): Set number of
      	counters for HIST_TYPE_SINGLE_VALUE.
      	(get_most_common_single_value): New.
      	(gimple_divmod_fixed_value_transform):
      	Use get_most_common_single_value.
      	(gimple_ic_transform): Likewise.
      	(gimple_stringops_transform): Likewise.
      	(gimple_find_values_to_profile): Set number
      	of counters for HIST_TYPE_SINGLE_VALUE.
      	* value-prof.h (get_most_common_single_value):
      	New.
      2019-06-10  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Add __gcov_one_value_profiler_v2,
      	__gcov_one_value_profiler_v2_atomic and
      	__gcov_indirect_call_profiler_v4.
      	* libgcov-merge.c (__gcov_merge_single): Change
      	function signature.
      	(merge_single_value_set): New.
      	* libgcov-profiler.c (__gcov_one_value_profiler_body):
      	Update functionality.
      	(__gcov_one_value_profiler): Remove.
      	(__gcov_one_value_profiler_v2): ... this.
      	(__gcov_one_value_profiler_atomic): Rename to ...
      	(__gcov_one_value_profiler_v2_atomic): this.
      	(__gcov_indirect_call_profiler_v3): Rename to ...
      	(__gcov_indirect_call_profiler_v4): ... this.
      	* libgcov.h (__gcov_one_value_profiler): Remove.
      	(__gcov_one_value_profiler_atomic): Remove.
      	(__gcov_one_value_profiler_v2_atomic): New.
      	(__gcov_indirect_call_profiler_v3): Remove.
      	(__gcov_one_value_profiler_v2): New.
      	(__gcov_indirect_call_profiler_v4): New.
      	(gcov_get_counter_ignore_scaling): New function.
      
      From-SVN: r272106
      Martin Liska committed
  6. 07 Jun, 2019 1 commit
    • Remove indirect call top N counter type. · e37333ba
      2019-06-07  Martin Liska  <mliska@suse.cz>
      
      	* doc/invoke.texi: Remove param.
      	* gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
      	Remove.
      	* gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
      	(GCOV_ICALL_TOPN_NCOUNTS): Likewise.
      	* params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
      	* profile.c (instrument_values): Remove
      	HIST_TYPE_INDIR_CALL_TOPN.
      	* tree-profile.c (init_ic_make_global_vars):
      	Always build __gcov_indirect_call only.
      	(gimple_init_gcov_profiler): Remove usage
      	of PARAM_INDIR_CALL_TOPN_PROFILE.
      	(gimple_gen_ic_profiler): Likewise.
      	* value-prof.c (dump_histogram_value): Likewise.
      	(stream_in_histogram_value): Likewise.
      	(gimple_indirect_call_to_profile): Likewise.
      	(gimple_find_values_to_profile): Likewise.
      	* value-prof.h (enum hist_type): Likewise.
      2019-06-07  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Remove usage of
      	_gcov_merge_icall_topn.
      	* libgcov-driver.c (gcov_sort_n_vals): Remove.
      	(gcov_sort_icall_topn_counter): Likewise.
      	(gcov_sort_topn_counter_arrays): Likewise.
      	(dump_one_gcov): Remove call to gcov_sort_topn_counter_arrays.
      	* libgcov-merge.c (__gcov_merge_icall_topn): Remove.
      	* libgcov-profiler.c (__gcov_topn_value_profiler_body):
      	Likewise.
      	(GCOV_ICALL_COUNTER_CLEAR_THRESHOLD): Remove.
      	(struct indirect_call_tuple): Remove.
      	(__gcov_indirect_call_topn_profiler): Remove.
      	* libgcov-util.c (__gcov_icall_topn_counter_op): Remove.
      	* libgcov.h (gcov_sort_n_vals): Remove.
      	(L_gcov_merge_icall_topn): Likewise.
      	(__gcov_merge_icall_topn): Likewise.
      	(__gcov_indirect_call_topn_profiler): Likewise.
      
      From-SVN: r272030
      Martin Liska committed
  7. 06 Jun, 2019 2 commits
    • Darwin, PowerPC, libgcc - Ensure unwinder is built with altivec enabled. · 34a4a9c2
      When libgcc is built on Darwin, it is usually built for the earliest potential
      target (Darwin8, 10.4).  Build for that revision default to assuming that the
      processor might be G3 (without vector ops) and there is an outlined function
      used for save/restore that checks whether the processor is G3 or G4+ at run-
      time.  However, the unwinder itself needs to be built with the assumption of
      vector usage so that the relevant outlined functions are called.
      
      2019-06-06  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/t-darwin: Ensure that the unwinder is built with
      	altivec enabled.
      
      From-SVN: r272017
      Iain Sandoe committed
    • MSP430: Put libgcc shift functions in their own section · d1b2f85f
      2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/slli.S (__mspabi_slli_n): Put function in its own
      	section.
      	(__mspabi_slli): Likewise.
      	(__mspabi_slll_n): Likewise.
      	(__mspabi_slll): Likewise.
      	* config/msp430/srai.S (__mspabi_srai_n): Likewise.
      	(__mspabi_srai): Likewise.
      	(__mspabi_sral_n): Likewise.
      	(__mspabi_sral): Likewise.
      	* config/msp430/srli.S (__mspabi_srli_n): Likewise.
      	(__mspabi_srli): Likewise.
      	(__mspabi_srll_n): Likewise.
      	(__mspabi_srll): Likewise.
      
      From-SVN: r271992
      Jozef Lawrynowicz committed
  8. 05 Jun, 2019 3 commits
  9. 29 May, 2019 2 commits
    • config.gcc (rx-*-linux*): New target. · 76aaa9cd
      	* config.gcc (rx-*-linux*): New target.
      	* config/rx/elf.opt: New file.
      	* config/rx/linux.h: Likewise.
      	* config/rx/t-linux: Likewise.
      	* config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
      	make it zero.
      	* config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
      	(ASM_APP_OFF): Likewise.
      	* config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
      	moved elsewhere.
      
      	* config.host (rx-*-linux*): Add new case.
      	* config/rx/t-rx (HOST_LIBGCC2_CFLAGS): Force DFmode to SFmode.
      
      From-SVN: r271748
      Yoshinori Sato committed
    • [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key · 8fc16d72
      gcc/
      2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>
      
      	* config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
      	AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
      	* config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
      	Add autib1716 and pacib1716 initialisation.
      	* config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
      	for autib1716 and pacib1716.
      	* config/aarch64/aarch64-protos.h (aarch64_key_type,
      	aarch64_post_cfi_startproc): Define.
      	* config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
      	* config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
      	aarch64_handle_pac_ret_protection): Set default sign key to A.
      	* config/aarch64/aarch64.c (aarch64_expand_epilogue,
      	aarch64_expand_prologue): Add check for b-key.
      	* config/aarch64/aarch64.c (aarch64_ra_sign_key,
      	aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
      	* config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
      	* config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
      	* config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
      	UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
      	UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
      	* config/aarch64/aarch64.md (do_return): Add check for b-key.
      	* config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
      	pauth_hint_num_a with pauth_hint_num.
      	* config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
      	pauth_hint_num_a with pauth_hint_num.
      	* config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
      	* config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
      	UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
      	* config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
      	UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
      	* config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
      	UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
      	UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
      	* config/aarch64/iterators.md (pauth_hint_num_a): Replace
      	UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
      	UNSPEC_AUTIA1716 respectively.
      	* config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
      	and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
      	* doc/invoke.texi (-mbranch-protection): Add b-key type.
      	* config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
      	UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
      
      gcc/testsuite
      2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>
      
      	* gcc.target/aarch64/return_address_sign_b_1.c: New file.
      	* gcc.target/aarch64/return_address_sign_b_2.c: New file.
      	* gcc.target/aarch64/return_address_sign_b_3.c: New file.
      	* gcc.target/aarch64/return_address_sign_b_exception.c: New file.
      	* gcc.target/aarch64/return_address_sign_ab_exception.c: New file.
      	* gcc.target/aarch64/return_address_sign_builtin.c: New file
      
      libgcc/
      2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>
      
      	* config/aarch64/aarch64-unwind.h (aarch64_cie_signed_with_b_key): New
      	function.
      	* config/aarch64/aarch64-unwind.h (aarch64_post_extract_frame_addr,
      	aarch64_post_frob_eh_handler_addr): Add	check for b-key.
      	* config/aarch64/aarch64-unwind-h (aarch64_post_extract_frame_addr,
      	aarch64_post_frob_eh_handler_addr, aarch64_post_frob_update_context):
      	Rename RA_A_SIGNED_BIT to RA_SIGNED_BIT.
      	* unwind-dw2-fde.c (get_cie_encoding): Add check for 'B' in augmentation
      	string.
      	* unwind-dw2.c (extract_cie_info): Add check for 'B' in augmentation
      	string.
      	(RA_A_SIGNED_BIT): Rename to RA_SIGNED_BIT.
      
      From-SVN: r271735
      Sam Tebbs committed
  10. 28 May, 2019 1 commit
  11. 26 May, 2019 1 commit
  12. 22 May, 2019 1 commit
    • Add support for constructors and destuctors on GCN · 7039cebf
      2019-05-22  Kwok Cheung Yeung  <kcy@codesourcery.com>
                  Andrew Stubbs  <amd@codesourcery.com>
      
      	gcc/
      	* config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
      	* config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
      	(kernel): Rename to...
      	(main_kernel): ... this.
      	(load_image): Load _init_array and _fini_array kernels.
      	(run): Add argument for kernel to run.
      	(main): Run init_array_kernel before main_kernel, and
      	fini_array_kernel after.
      	* config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
      	amdgpu_hsa_kernel attribute on functions.
      	(gcn_disable_constructors): Delete.
      	(TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
      	* config/gcn/crt0.c (size_t): Define.
      	(_init_array, _fini_array): New.
      	(__preinit_array_start, __preinit_array_end,
      	__init_array_start, __init_array_end,
      	__fini_array_start, __fini_array_end): Declare weak references.
      
      Co-Authored-By: Andrew Stubbs <ams@codesourcery.com>
      
      From-SVN: r271526
      Kwok Cheung Yeung committed
  13. 17 May, 2019 2 commits
    • trans.c (check_inlining_for_nested_subprog): Quote reserved names. · a9c697b8
      gcc/ada/ChangeLog:
      
              * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
              reserved names.
      
      gcc/brig/ChangeLog:
      
              * brigfrontend/brig-control-handler.cc
              (brig_directive_control_handler::operator): Remove trailing newline
              from a diagnostic.
              * brigfrontend/brig-module-handler.cc
              (brig_directive_module_handler::operator): Remove a duplicated space
              from a diagnostic.
      
      gcc/c/ChangeLog:
      
              * c-decl.c (start_decl): Quote keywords, operators, and
              types in diagnostics.
              (finish_decl): Same.
              * c-parser.c (c_parser_asm_statement): Same.
              (c_parser_conditional_expression): Same.
              (c_parser_transaction_cancel): Same.
              * c-typeck.c (c_common_type): Same.
              (build_conditional_expr): Same.
              (digest_init): Same.
              (process_init_element): Same.
              (build_binary_op): Same.
      
      gcc/c-family/ChangeLog:
      
              * c-attribs.c (handle_no_sanitize_attribute): Quote identifiers,
              keywords, operators, and types in diagnostics.
              (handle_scalar_storage_order_attribute): Same.
              (handle_mode_attribute): Same.
              (handle_visibility_attribute): Same.
              (handle_assume_aligned_attribute): Same.
              (handle_no_split_stack_attribute): Same.
              * c-common.c (shorten_compare): Same.
              (c_common_truthvalue_conversion): Same.
              (cb_get_source_date_epoch): Same.
              * c-lex.c (cb_def_pragma): Quote keywords, operators, and types
              in diagnostics.
              (interpret_float): Same.
              * c-omp.c (c_finish_omp_for): Same.
              * c-opts.c (c_common_post_options): Same.
              * c-pch.c (c_common_pch_pragma): Same.
              * c-pragma.c (pop_alignment): Same.
              (handle_pragma_pack): Same.
              (apply_pragma_weak): Same.
              (handle_pragma_weak): Same.
              (handle_pragma_scalar_storage_order): Same.
              (handle_pragma_redefine_extname): Same.
              (add_to_renaming_pragma_list): Same.
              (maybe_apply_renaming_pragma): Same.
              (push_visibility): Same.
              (handle_pragma_visibility): Same.
              (handle_pragma_optimize): Same.
              (handle_pragma_message): Same.
              * c-warn.c (warn_for_omitted_condop): Same.
              (lvalue_error): Same.
      
      gcc/cp/ChangeLog:
      
              * call.c (print_z_candidate): Wrap diagnostic text in a gettext
              macro.  Adjust.
              (print_z_candidates): Same.
              (build_conditional_expr_1): Quote keywords, operators, and types
              in diagnostics.
              (build_op_delete_call): Same.
              (maybe_print_user_conv_context): Wrap diagnostic text in a gettext
              macro.
              (convert_like_real): Same.
              (convert_arg_to_ellipsis): Quote keywords, operators, and types
              in diagnostics.
              (build_over_call): Same.
              (joust): Break up an overlong line.  Wrap diagnostic text in a gettext
              macro.
              * constexpr.c (cxx_eval_check_shift_p): Spell out >= in English.
              (cxx_eval_constant_expression): Quote keywords, operators, and types
              in diagnostics.
              (potential_constant_expression_1): Same.
              * cp-gimplify.c (cp_genericize_r): Same.
              * cvt.c (maybe_warn_nodiscard): Quote keywords, operators, and types
              in diagnostics.
              (type_promotes_to): Same.
              * decl.c (check_previous_goto_1): Same.
              (check_goto): Same.
              (start_decl): Same.
              (cp_finish_decl): Avoid parenthesizing a sentence for consistency.
              (grok_op_properties): Quote keywords, operators, and types
              in diagnostics.
              * decl2.c (grokfield): Same.
              (coerce_delete_type): Same.
              * except.c (is_admissible_throw_operand_or_catch_parameter): Same.
              * friend.c (do_friend): Quote C++ tokens.
              * init.c (build_new_1): Quote keywords, operators, and types
              in diagnostics.
              (build_vec_delete_1): Same.
              (build_delete): Same.
              * lex.c (parse_strconst_pragma): Same.
              (handle_pragma_implementation): Same.
              (unqualified_fn_lookup_error): Same.
              * mangle.c (write_type): Same.
              * method.c (defaulted_late_check): Avoid two consecutive punctuators.
              * name-lookup.c (cp_binding_level_debug): Remove a trailing newline.
              (pop_everything): Same.
              * parser.c (cp_lexer_start_debugging): Quote a macro name.
              in a diagnostic
              (cp_lexer_stop_debugging): Same.
              (cp_parser_userdef_numeric_literal): Quote a C++ header name
              in a diagnostic.
              (cp_parser_nested_name_specifier_opt): Quote keywords, operators,
              and types in diagnostics.
              (cp_parser_question_colon_clause): Same.
              (cp_parser_asm_definition): Same.
              (cp_parser_init_declarator): Same.
              (cp_parser_template_declaration_after_parameters): Avoid capitalizing
              a sentence in a diagnostic.
              (cp_parser_omp_declare_reduction): Quote keywords, operators, and types
              in diagnostics.
              (cp_parser_transaction): Same.
              * pt.c (maybe_process_partial_specialization): Replace second call
              to permerror with inform for consistency with other uses.
              (expand_integer_pack): Quote keywords, operators, and types
              in diagnostics.
              * rtti.c (get_typeid): Quote keywords, operators, and types
              in diagnostics.
              (build_dynamic_cast_1): Same.
              * semantics.c (finish_asm_stmt): Same.
              (finish_label_decl): Same.
              (finish_bases): Same.
              (finish_offsetof): Same.
              (cp_check_omp_declare_reduction): Same.
              (finish_decltype_type): Same.
              * tree.c (handle_init_priority_attribute): Same.  Add detail
              to diagnostics.
              (maybe_warn_zero_as_null_pointer_constant): Same.
              * typeck.c (cp_build_binary_op): Quote keywords, operators, and types
              in diagnostics.
              (cp_build_unary_op): Same.
              (check_for_casting_away_constness): Same.
              (build_static_cast): Same.
              (build_const_cast_1): Same.
              (maybe_warn_about_returning_address_of_local): Same.
              (check_return_expr): Same.
              * typeck2.c (abstract_virtuals_error_sfinae): Same.
              (digest_init_r): Replace a tab with spaces in a diagnostic.
              (build_functional_cast): Quote keywords, operators, and types
              in diagnostics.
      
      gcc/d/ChangeLog:
      
              * d-builtins.cc (d_init_builtins): Quote keywords, operators,
              and types in diagnostics.
              * d-codegen.cc (get_array_length): Same.  Replace can't with cannot.
              * d-convert.cc (convert_expr): Same.
              * d-frontend.cc (getTypeInfoType): Quote an option name in
              a diagnostic.
              * d-lang.cc (d_handle_option): Same.
              (d_parse_file): Same.
              * decl.cc: Remove a trailing period from a diagnostic.
              * expr.cc: Use a directive for an apostrophe.
              * toir.cc: Quote keywords, operators, and types in diagnostics.
              * typeinfo.cc (build_typeinfo): Quote an option name in a diagnostic.
      
      gcc/fortran/ChangeLog:
      
      	* gfortranspec.c (append_arg): Spell out the word "argument."
      
      gcc/ChangeLog:
      
              * config/i386/i386-expand.c (get_element_number): Quote keywords
              and other internal names in diagnostics.  Adjust other diagnostic
              formatting issues noted by -Wformat-diag.
              * config/i386/i386-features.c
              (ix86_mangle_function_version_assembler_name): Same.
              * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
              * config/i386/i386.c (ix86_function_type_abi): Same.
              (ix86_function_ms_hook_prologue): Same.
              (classify_argument): Same.
              (ix86_expand_prologue): Same.
              (ix86_md_asm_adjust): Same.
              (ix86_memmodel_check): Same.
      
      gcc/ChangeLog:
      
              * builtins.c (expand_builtin_atomic_always_lock_free): Quote
              identifiers, keywords, operators, and types in diagnostics.  Correct
              quoting, spelling, and sentence capitalization issues.
              (expand_builtin_atomic_is_lock_free): Same.
              (fold_builtin_next_arg): Same.
              * cfgexpand.c (expand_one_var): Same.
              (tree_conflicts_with_clobbers_p): Same.
              (expand_asm_stmt): Same.
              (verify_loop_structure): Same.
              * cgraphunit.c (process_function_and_variable_attributes): Same.
              * collect-utils.c (collect_execute): Same.
              * collect2.c (maybe_run_lto_and_relink): Same.
              (is_lto_object_file): Same.
              (scan_prog_file): Same.
              * convert.c (convert_to_real_1): Same.
              * dwarf2out.c (dwarf2out_begin_prologue): Same.
              * except.c (verify_eh_tree): Same.
              * gcc.c (execute): Same.
              (eval_spec_function): Same.
              (run_attempt): Same.
              (driver::set_up_specs): Same.
              (compare_debug_auxbase_opt_spec_function): Same.
              * gcov-tool.c (unlink_gcda_file): Same.
              (do_merge): Same.
              (do_rewrite): Same.
              * gcse.c (gcse_or_cprop_is_too_expensive): Same.
              * gimplify.c (gimplify_asm_expr): Same.
              (gimplify_adjust_omp_clauses): Same.
              * hsa-gen.c (gen_hsa_addr_insns): Same.
              (gen_hsa_insns_for_load): Same.
              (gen_hsa_cmp_insn_from_gimple): Same.
              (gen_hsa_insns_for_operation_assignment): Same.
              (gen_get_level): Same.
              (gen_hsa_alloca): Same.
              (omp_simple_builtin::generate): Same.
              (gen_hsa_atomic_for_builtin): Same.
              (gen_hsa_insns_for_call): Same.
              * input.c (dump_location_info): Same.
              * ipa-devirt.c (compare_virtual_tables): Same.
              * ira.c (ira_setup_eliminable_regset): Same.
              * lra-assigns.c (lra_assign): Same.
              * lra-constraints.c (lra_constraints): Same.
              * lto-streamer-in.c (lto_input_mode_table): Same.
              * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
              (merge_and_complain): Same.
              (compile_offload_image): Same.
              (compile_images_for_offload_targets): Same.
              (debug_objcopy): Same.
              (run_gcc): Same.
              (main): Same.
              * opts.c (print_specific_help): Same.
              (parse_no_sanitize_attribute): Same.
              (print_help): Same.
              (handle_param): Same.
              * plugin.c (add_new_plugin): Same.
              (parse_plugin_arg_opt): Same.
              (try_init_one_plugin): Same.
              * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
              operators, and types in diagnostics.  Correct quoting and spelling
              issues.
              * read-rtl-function.c (parse_edge_flag_token): Same.
              (function_reader::parse_enum_value): Same.
              * reg-stack.c (check_asm_stack_operands): Same.
              * regcprop.c (validate_value_data): Same.
              * sched-rgn.c (make_pass_sched_fusion): Same.
              * stmt.c (check_unique_operand_names): Same.
              * targhooks.c (default_target_option_pragma_parse): Same.
              * tlink.c (recompile_files): Same.
              * toplev.c (process_options): Same.
              (do_compile): Same.
              * trans-mem.c (diagnose_tm_1): Same.
              (ipa_tm_scan_irr_block): Same.
              (ipa_tm_diagnose_transaction): Same.
              * tree-cfg.c (verify_address): Same.  Use get_tree_code_name to
              format a tree code name in a diagnostic.
              (verify_types_in_gimple_min_lval): Same.
              (verify_types_in_gimple_reference): Same.
              (verify_gimple_call): Same.
              (verify_gimple_assign_unary): Same.
              (verify_gimple_assign_binary): Same.
              (verify_gimple_assign_ternary): Same.
              (verify_gimple_assign_single): Same.
              (verify_gimple_switch): Same.
              (verify_gimple_label): Same.
              (verify_gimple_phi): Same.
              (verify_gimple_in_seq): Same.
              (verify_eh_throw_stmt_node): Same.
              (collect_subblocks): Same.
              (gimple_verify_flow_info): Same.
              (do_warn_unused_result): Same.
              * tree-inline.c (expand_call_inline): Same.
              * tree-into-ssa.c (update_ssa): Same.
              * tree.c (tree_int_cst_elt_check_failed): Same.
              (tree_vec_elt_check_failed): Same.
              (omp_clause_operand_check_failed): Same.
              (verify_type_variant): Same.
              (verify_type): Same.
              * value-prof.c (verify_histograms): Same.
              * varasm.c (assemble_start_function): Same.
      
      gcc/lto/ChangeLog:
      
              * lto-dump.c (lto_main): Same.
              * lto.c (stream_out): Same.
      
      gcc/objc/ChangeLog:
      
              * objc-act.c (objc_begin_catch_clause): Quote keywords and options
              in diagnostics.
              (objc_build_throw_stmt): Same.
              (objc_finish_message_expr): Same.
              (get_super_receiver): Same.
              * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell
              out "less than" in English./
              * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell
              out "greater" in English.
      
      gcc/testsuite/ChangeLog:
      
              * c-c++-common/Wbool-operation-1.c: Adjust text of expected diagnostics.
              * c-c++-common/Wvarargs-2.c: Same.
              * c-c++-common/Wvarargs.c: Same.
              * c-c++-common/pr51768.c: Same.
              * c-c++-common/tm/inline-asm.c: Same.
              * c-c++-common/tm/safe-1.c: Same.
              * g++.dg/asm-qual-1.C: Same.
              * g++.dg/asm-qual-3.C: Same.
              * g++.dg/conversion/dynamic1.C: Same.
              * g++.dg/cpp0x/constexpr-89599.C: Same.
              * g++.dg/cpp0x/constexpr-cast.C: Same.
              * g++.dg/cpp0x/constexpr-shift1.C: Same.
              * g++.dg/cpp0x/lambda/lambda-conv11.C: Same.
              * g++.dg/cpp0x/nullptr04.C: Same.
              * g++.dg/cpp0x/static_assert12.C: Same.
              * g++.dg/cpp0x/static_assert8.C: Same.
              * g++.dg/cpp1y/lambda-conv1.C: Same.
              * g++.dg/cpp1y/pr79393-3.C: Same.
              * g++.dg/cpp1y/static_assert1.C: Same.
              * g++.dg/cpp1z/constexpr-if4.C: Same.
              * g++.dg/cpp1z/constexpr-if5.C: Same.
              * g++.dg/cpp1z/constexpr-if9.C: Same.
              * g++.dg/eh/goto2.C: Same.
              * g++.dg/eh/goto3.C: Same.
              * g++.dg/expr/static_cast8.C: Same.
              * g++.dg/ext/flexary5.C: Same.
              * g++.dg/ext/utf-array-short-wchar.C: Same.
              * g++.dg/ext/utf-array.C: Same.
              * g++.dg/ext/utf8-2.C: Same.
              * g++.dg/gomp/loop-4.C: Same.
              * g++.dg/gomp/macro-4.C: Same.
              * g++.dg/gomp/udr-1.C: Same.
              * g++.dg/init/initializer-string-too-long.C: Same.
              * g++.dg/other/offsetof9.C: Same.
              * g++.dg/ubsan/pr63956.C: Same.
              * g++.dg/warn/Wbool-operation-1.C: Same.
              * g++.dg/warn/Wtype-limits-Wextra.C: Same.
              * g++.dg/warn/Wtype-limits.C: Same.
              * g++.dg/wrappers/pr88680.C: Same.
              * g++.old-deja/g++.mike/eh55.C: Same.
              * gcc.dg/Wsign-compare-1.c: Same.
              * gcc.dg/Wtype-limits-Wextra.c: Same.
              * gcc.dg/Wtype-limits.c: Same.
              * gcc.dg/Wunknownprag.c: Same.
              * gcc.dg/Wunsuffixed-float-constants-1.c: Same.
              * gcc.dg/asm-6.c: Same.
              * gcc.dg/asm-qual-1.c: Same.
              * gcc.dg/cast-1.c: Same.
              * gcc.dg/cast-2.c: Same.
              * gcc.dg/cast-3.c: Same.
              * gcc.dg/cpp/source_date_epoch-2.c: Same.
              * gcc.dg/debug/pr85252.c: Same.
              * gcc.dg/dfp/cast-bad.c: Same.
              * gcc.dg/format/gcc_diag-1.c: Same.
              * gcc.dg/format/gcc_diag-11.c: Same.New test.
              * gcc.dg/gcc_diag-11.c: Same.New test.
              * gcc.dg/gnu-cond-expr-2.c: Same.
              * gcc.dg/gnu-cond-expr-3.c: Same.
              * gcc.dg/gomp/macro-4.c: Same.
              * gcc.dg/init-bad-1.c: Same.
              * gcc.dg/init-bad-2.c: Same.
              * gcc.dg/init-bad-3.c: Same.
              * gcc.dg/pr27528.c: Same.
              * gcc.dg/pr48552-1.c: Same.
              * gcc.dg/pr48552-2.c: Same.
              * gcc.dg/pr59846.c: Same.
              * gcc.dg/pr61096-1.c: Same.
              * gcc.dg/pr8788-1.c: Same.
              * gcc.dg/pr90082.c: Same.
              * gcc.dg/simd-2.c: Same.
              * gcc.dg/spellcheck-params-2.c: Same.
              * gcc.dg/spellcheck-params.c: Same.
              * gcc.dg/strlenopt-49.c: Same.
              * gcc.dg/tm/pr52141.c: Same.
              * gcc.dg/torture/pr51106-1.c: Same.
              * gcc.dg/torture/pr51106-2.c: Same.
              * gcc.dg/utf-array-short-wchar.c: Same.
              * gcc.dg/utf-array.c: Same.
              * gcc.dg/utf8-2.c: Same.
              * gcc.dg/warn-sprintf-no-nul.c: Same.
              * gcc.target/i386/asm-flag-0.c: Same.
              * gcc.target/i386/inline_error.c: Same.
              * gcc.target/i386/pr30848.c: Same.
              * gcc.target/i386/pr39082-1.c: Same.
              * gcc.target/i386/pr39678.c: Same.
              * gcc.target/i386/pr57756.c: Same.
              * gcc.target/i386/pr68843-1.c: Same.
              * gcc.target/i386/pr79804.c: Same.
              * gcc.target/i386/pr82673.c: Same.
              * obj-c++.dg/class-protocol-1.mm: Same.
              * obj-c++.dg/exceptions-3.mm: Same.
              * obj-c++.dg/exceptions-4.mm: Same.
              * obj-c++.dg/exceptions-5.mm: Same.
              * obj-c++.dg/exceptions-6.mm: Same.
              * obj-c++.dg/method-12.mm: Same.
              * obj-c++.dg/method-13.mm: Same.
              * obj-c++.dg/method-6.mm: Same.
              * obj-c++.dg/method-7.mm: Same.
              * obj-c++.dg/method-9.mm: Same.
              * obj-c++.dg/method-lookup-1.mm: Same.
              * obj-c++.dg/proto-lossage-4.mm: Same.
              * obj-c++.dg/protocol-qualifier-2.mm: Same.
              * objc.dg/call-super-2.m: Same.
              * objc.dg/class-protocol-1.m: Same.
              * objc.dg/desig-init-1.m: Same.
              * objc.dg/exceptions-3.m: Same.
              * objc.dg/exceptions-4.m: Same.
              * objc.dg/exceptions-5.m: Same.
              * objc.dg/exceptions-6.m: Same.
              * objc.dg/method-19.m: Same.
              * objc.dg/method-2.m: Same.
              * objc.dg/method-5.m: Same.
              * objc.dg/method-6.m: Same.
              * objc.dg/method-7.m: Same.
              * objc.dg/method-lookup-1.m: Same.
              * objc.dg/proto-hier-1.m: Same.
              * objc.dg/proto-lossage-4.m: Same.
      
      From-SVN: r271338
      Martin Sebor committed
    • soft-fp: Update soft-fp from glibc · 2581344d
      This patch is updating all soft-fp from glibc, most changes are
      copyright years update, and changes other than years update are
      
      	* soft-fp/extenddftf2.c: Use "_FP_W_TYPE_SIZE < 64" to check if
      	4_FP_W_TYPEs are used for IEEE quad precision.
      	* soft-fp/extendhftf2.c: Likewise.
      	* soft-fp/extendsftf2.c: Likewise.
      	* soft-fp/extendxftf2.c: Likewise.
      	* soft-fp/trunctfdf2.c: Likewise.
      	* soft-fp/trunctfhf2.c: Likewise.
      	* soft-fp/trunctfsf2.c: Likewise.
      	* soft-fp/trunctfxf2.c: Likewise.
      	* config/rs6000/ibm-ldouble.c: Likewise.
      
      From-SVN: r271327
      H.J. Lu committed
  14. 14 May, 2019 1 commit
    • Remove obsolete Solaris 10 support · ccd1242e
      	libstdc++-v3:
      	* config/os/solaris/solaris2.10: Move to ...
      	* config/os/solaris: ... this.
      	* configure.host (os_include_dir): Adapt.
      	(abi_baseline_pair): Remove Solaris 10 handling.
      	* config/abi/post/i386-solaris2.10: Remove.
      	* config/abi/post/sparc-solaris2.10: Remove.
      	* config/abi/post/i386-solaris2.11: Rename to ...
      	* config/abi/post/i386-solaris: ... this.
      	* config/abi/post/sparc-solaris2.11: Rename to ...
      	* config/abi/post/sparc-solaris: ... this.
      
      	* libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] [__sun]: Remove
      	workaround.
      
      	* testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.10
      	xfail.
      
      	libsanitizer:
      	* configure.ac (have_dl_iterate_phdr): Remove *-*-solaris2.10*
      	handling.
      	* configure: Regenerate.
      
      	libgcc:
      	* config.host: Simplify various *-*-solaris2.1[0-9]* to
      	*-*-solaris2*.
      	* configure.ac: Likewise.
      	* configure: Regenerate.
      
      	* config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
      	Solaris 10 and Solaris 11 < snv_125 handling.
      
      	libbacktrace:
      	* configure.ac (have_dl_iterate_phdr): Remove *-*-solaris2.10*
      	handling.
      	* configure: Regenerate.
      
      	gcc/testsuite:
      	* gcc.dg/atomic/c11-atomic-exec-4.c: Simplify triplet to
      	*-*-solaris2*.
      	* gcc.dg/atomic/c11-atomic-exec-5.c: Likewise.
      	* gcc.dg/c99-math-double-1.c: Likewise.
      	* gcc.dg/c99-math-float-1.c: Likewise.
      	* gcc.dg/c99-math-long-double-1.c: Likewise.
      	* gcc.misc-tests/linkage.exp: Simplify triplet to
      	x86_64-*-solaris2*.
      
      	* gcc.target/i386/mcount_pic.c: Remove *-*-solaris2.10* && !gld
      	xfail.
      	* gcc.target/i386/pr63620.c: Likewise.
      
      	* lib/target-supports.exp (check_sse_os_support_available): Remove
      	Solaris 9/x86 workaround.
      
      	gcc:
      	* config.gcc: Move *-*-solaris2.10* from obsolete configurations
      	to unsupported ones.
      	Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
      	* config.host: Likewise.
      	* config/i386/sol2.h (ASM_COMMENT_START): Remove.
      	* config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
      	__svr4__]: Remove "brand" fallback.
      	[!KSTAT_DATA_STRING]: Remove.
      	* configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
      	to *-*-solaris2*.
      	(comdat_group): Likewise.
      	(set_have_as_tls): Likewise.
      	(gcc_cv_target_dl_iterate_phdr): Likewise.
      	(gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
      	(gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
      	* configure: Regenerate.
      	* doc/install.texi: Simplify Solaris target triplets.
      	(Specific, i?86-*-solaris2*): Remove Solaris 10 references.
      	(Specific, *-*-solaris2*): Document Solaris 10 removal.
      	Remove Solaris 10 references.
      	Remove obsolete Solaris bug reference.
      	(Specific, sparc-sun-solaris2.10): Remove.
      
      From-SVN: r271183
      Rainer Orth committed
  15. 12 May, 2019 1 commit
    • darwin, powerpc - set .machine in an asm file. · ef5eb79d
      The asm file fails to build if we use a modern assembler
      which checks that the machine is consistent with the 
      filetype.  Fixed by adjusting in a similar manner to 
      other assembler.
      
      libgcc/
      
      2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/darwin-vecsave.S: Set .machine appropriately.
      
      From-SVN: r271111
      Iain Sandoe committed
  16. 08 May, 2019 1 commit
    • Enable support for bfloat16 which will be in Future Cooper Lake. · 4f0e90fa
      There are 3 instructions for AVX512BF16: VCVTNE2PS2BF16, VCVTNEPS2BF16 and
      DPBF16PS instructions, which are Vector Neural Network Instructions
      supporting:
          
      - VCVTNE2PS2BF16: Convert Two Packed Single Data to One Packed BF16 Data.
      - VCVTNEPS2BF16: Convert Packed Single Data to Packed BF16 Data.
      - VDPBF16PS: Dot Product of BF16 Pairs Accumulated into Packed Single Precision.
      
      2019-05-07  Wei Xiao  <wei3.xiao@intel.com>
      
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
      	OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
      	(OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
      	(ix86_handle_option): Handle -mavx512bf16.
      	* config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
      	to extra_headers.
      	* config/i386/avx512bf16vlintrin.h: New.
      	* config/i386/avx512bf16intrin.h: New.
      	* config/i386/cpuid.h (bit_AVX512BF16): New.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
      	* config/i386/i386-builtin-types.def: Add new types.
      	* config/i386/i386-builtin.def: Add new builtins.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Define
      	__AVX512BF16__.
      	* config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
      	(ix86_option_override_internal): Handle BF16.
      	(ix86_valid_target_attribute_inner_p): Ditto.
      	* config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
      	* config/i386/i386-builtin.c (enum processor_features): Add
      	F_AVX512BF16.
      	(static const _isa_names_table isa_names_table): Ditto.
      	* config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
      	(PTA_AVX512BF16): Ditto.
      	* config/i386/i386.opt: Add -mavx512bf16.
      	* config/i386/immintrin.h: Include avx512bf16intrin.h
      	and avx512bf16vlintrin.h.
      	* config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
      	avx512f_cvtneps2bf16_<mode><mask_name>,
      	avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
      	* config/i386/subst.md (mask_half): Add new subst.
      	* doc/invoke.texi: Document -mavx512bf16.
      
      2019-05-07  Wei Xiao  <wei3.xiao@intel.com>
      
      	* gcc.target/i386/avx512bf16-vcvtne2ps2bf16-1.c: New test.
      	* gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c: New test.
      	* gcc.target/i386/avx512bf16-vdpbf16ps-1.c: New test.
      	* gcc.target/i386/avx512bf16vl-vcvtne2ps2bf16-1.c: New test.
      	* gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1.c: New test.
      	* gcc.target/i386/avx512bf16vl-vdpbf16ps-1.c: New test.
      	* gcc.target/i386/builtin_target.c: Handle avx512bf16.
      	* gcc.target/i386/sse-12.c: Add -mavx512bf16.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-14.c: Ditto.
      	* gcc.target/i386/sse-22.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      	* g++.dg/other/i386-2.C: Ditto.
      	* g++.dg/other/i386-3.C: Ditto.
      
      2019-05-07  Hongtao Liu  <hongtao.liu@intel.com>
      
      	* config/i386/cpuinfo.c (get_available_features): Detect BF16.
      	* config/i386/cpuinfo.h (enum processor_features): Add
      	FEATURE_AVX512BF16.
      
      From-SVN: r271006
      Hongtao Liu committed
  17. 23 Apr, 2019 1 commit
    • re PR target/89093 (C++ exception handling clobbers d8 VFP register) · 48528842
      	PR target/89093
      	* config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
      	if used with general-regs-only.
      	(arm_conditional_register_usage): Don't add non-general regs if
      	general-regs-only.
      	(arm_valid_target_attribute_rec): Handle general-regs-only.
      	* config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
      	general-regs-only.
      	(TARGET_HARD_FLOAT_SUB): Define.
      	(TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
      	(TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
      	(TARGET_REALLY_IWMMXT2): Likewise.
      	* config/arm/arm.opt: Add -mgeneral-regs-only.
      	* doc/extend.texi: Document ARM general-regs-only target.
      	* doc/invoke.texi: Document ARM -mgeneral-regs-only.
      libgcc/
      	* config/arm/pr-support.c: Add #pragma GCC target("general-regs-only").
      	* config/arm/unwind-arm.c: Likewise.
      	* unwind-c.c (PERSONALITY_FUNCTION): Add general-regs-only target
      	attribute for ARM.
      libobjc/
      	* exception.c (PERSONALITY_FUNCTION): Add general-regs-only target
      	attribute for ARM.
      libphobos/
      	* libdruntime/gcc/deh.d: Import gcc.attribute.
      	(personality_fn_attributes): New enum.
      	(scanLSDA, CONTINUE_UNWINDING, gdc_personality, __gdc_personality):
      	Add @personality_fn_attributes.
      libstdc++-v3/
      	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Add
      	general-regs-only target attribute for ARM.
      
      Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de>
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r270504
      Ramana Radhakrishnan committed
  18. 15 Apr, 2019 1 commit
  19. 21 Feb, 2019 1 commit
  20. 20 Feb, 2019 1 commit
  21. 19 Feb, 2019 1 commit
  22. 15 Feb, 2019 1 commit
    • lib2funcs.c (__set_trampoline_parity): Replace TRAMPOLINE_SIZE with __LIBGCC_TRAMPOLINE_SIZE__. · bf7988f1
      libgcc/
      	* config/visium/lib2funcs.c (__set_trampoline_parity): Replace
      	TRAMPOLINE_SIZE with __LIBGCC_TRAMPOLINE_SIZE__.
      gcc/
      	* final.c (insn_current_reference_address): Replace test on JUMP_P
      	with test on jump_to_label_p.
      	* config/visium/visium-passes.def: New file.
      	* config/visium/t-visium (PASSES_EXTRA): Define.
      	* config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
      	* config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
      	(TRAMPOLINE_ALIGNMENT): Define.
      	* config/visium/visium.c (visium_option_override): Do not register
      	the machine-specific reorg pass here.
      	(visium_trampoline_init): Align the BRA insn on a 64-bit boundary
      	for the GR6.
      	(output_branch): Adjust threshold for long branch instruction.
      	* config/visium/visium.md (cpu): Move around.
      	(length): Adjust for the GR6.
      
      From-SVN: r268931
      Eric Botcazou committed
  23. 31 Jan, 2019 1 commit
  24. 30 Jan, 2019 1 commit
  25. 23 Jan, 2019 1 commit
    • libgcc2.c: Correct DI/TI -> SF/DF conversions · 6395ba73
      FSTYPE FUNC (DWtype u) in libgcc2.c, which converts DI/TI to SF/DF, has
      
        /* No leading bits means u == minimum.  */
        if (count == 0)
          return -(Wtype_MAXp1_F * (Wtype_MAXp1_F / 2));
      
      in the third case (where actually count == 0 only means the high part is
      minimum).  It should be:
      
        /* No leading bits means u == minimum.  */
        if (count == 0)
          return Wtype_MAXp1_F * (FSTYPE) (hi | ((UWtype) u != 0));
      
      instead.
      
      gcc/testsuite/
      
      2019-01-23  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR libgcc/88931
      	* gcc.dg/torture/fp-int-convert-timode-1.c: New test.
      	* gcc.dg/torture/fp-int-convert-timode-2.c: Likewise.
      	* gcc.dg/torture/fp-int-convert-timode-3.c: Likewise.
      	* gcc.dg/torture/fp-int-convert-timode-4.c: Likewise.
      
      libgcc/
      
      2019-01-23  Joseph Myers  <joseph@codesourcery.com>
      
      	PR libgcc/88931
      	* libgcc2.c (FSTYPE FUNC (DWtype u)): Correct no leading bits
      	case.
      
      From-SVN: r268216
      H.J. Lu committed
  26. 18 Jan, 2019 3 commits
  27. 17 Jan, 2019 1 commit
    • GCN libgcc. · 91d7b7fe
      This patch contains the GCN port of libgcc.
      
      2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
      	    Kwok Cheung Yeung  <kcy@codesourcery.com>
      	    Julian Brown  <julian@codesourcery.com>
      	    Tom de Vries  <tom@codesourcery.com>
      
      	libgcc/
      	* config.host: Recognize amdgcn*-*-amdhsa.
      	* config/gcn/crt0.c: New file.
      	* config/gcn/lib2-divmod-hi.c: New file.
      	* config/gcn/lib2-divmod.c: New file.
      	* config/gcn/lib2-gcn.h: New file.
      	* config/gcn/sfp-machine.h: New file.
      	* config/gcn/t-amdgcn: New file.
      
      
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com>
      Co-Authored-By: Tom de Vries <tom@codesourcery.com>
      
      From-SVN: r268021
      Andrew Stubbs committed
  28. 09 Jan, 2019 1 commit
    • PR other/16615 [1/5] · 67914693
      2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR other/16615 [1/5]
      
      	contrib/
      	* mklog: Mechanically replace "can not" with "cannot".
      
      	gcc/
      	* Makefile.in: Mechanically replace "can not" with "cannot".
      	* alias.c: Likewise.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* common/config/i386/i386-common.c: Likewise.
      	* config/aarch64/aarch64.c: Likewise.
      	* config/alpha/sync.md: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arc/predicates.md: Likewise.
      	* config/arm/arm-c.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/arm/arm.h: Likewise.
      	* config/arm/arm.md: Likewise.
      	* config/arm/cortex-r4f.md: Likewise.
      	* config/csky/csky.c: Likewise.
      	* config/csky/csky.h: Likewise.
      	* config/darwin-f.c: Likewise.
      	* config/epiphany/epiphany.md: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/sol2.h: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.h: Likewise.
      	* config/microblaze/microblaze.md: Likewise.
      	* config/mips/20kc.md: Likewise.
      	* config/mips/sb1.md: Likewise.
      	* config/nds32/nds32.c: Likewise.
      	* config/nds32/predicates.md: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/rs6000/e300c2c3.md: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/s390/s390.h: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/sh.md: Likewise.
      	* config/spu/vmx2spu.h: Likewise.
      	* cprop.c: Likewise.
      	* dbxout.c: Likewise.
      	* df-scan.c: Likewise.
      	* doc/cfg.texi: Likewise.
      	* doc/extend.texi: Likewise.
      	* doc/fragments.texi: Likewise.
      	* doc/gty.texi: Likewise.
      	* doc/invoke.texi: Likewise.
      	* doc/lto.texi: Likewise.
      	* doc/md.texi: Likewise.
      	* doc/objc.texi: Likewise.
      	* doc/rtl.texi: Likewise.
      	* doc/tm.texi: Likewise.
      	* dse.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* emit-rtl.h: Likewise.
      	* except.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* fold-const.c: Likewise.
      	* genautomata.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* hard-reg-set.h: Likewise.
      	* ifcvt.c: Likewise.
      	* ipa-comdats.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-fnsummary.c: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-polymorphic-call.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* ira.h: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lra-assigns.c: Likewise.
      	* lra-constraints.c: Likewise.
      	* lra-eliminations.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lra-remat.c: Likewise.
      	* lra-spills.c: Likewise.
      	* lra.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* predict.c: Likewise.
      	* profile-count.h: Likewise.
      	* profile.c: Likewise.
      	* recog.c: Likewise.
      	* ree.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched.c: Likewise.
      	* shrink-wrap.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* symtab.c: Likewise.
      	* target.def: Likewise.
      	* toplev.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-core.h: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-phionlycprop.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* vr-values.c: Likewise.
      
      	gcc/ada/
      	* exp_ch9.adb: Mechanically replace "can not" with "cannot".
      	* libgnat/s-regpat.ads: Likewise.
      	* par-ch4.adb: Likewise.
      	* set_targ.adb: Likewise.
      	* types.ads: Likewise.
      
      	gcc/cp/
      	* cp-tree.h: Mechanically replace "can not" with "cannot".
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      
      	gcc/fortran/
      	* class.c: Mechanically replace "can not" with "cannot".
      	* decl.c: Likewise.
      	* expr.c: Likewise.
      	* gfc-internals.texi: Likewise.
      	* intrinsic.texi: Likewise.
      	* invoke.texi: Likewise.
      	* io.c: Likewise.
      	* match.c: Likewise.
      	* parse.c: Likewise.
      	* primary.c: Likewise.
      	* resolve.c: Likewise.
      	* symbol.c: Likewise.
      	* trans-array.c: Likewise.
      	* trans-decl.c: Likewise.
      	* trans-intrinsic.c: Likewise.
      	* trans-stmt.c: Likewise.
      
      	gcc/go/
      	* go-backend.c: Mechanically replace "can not" with "cannot".
      	* go-gcc.cc: Likewise.
      
      	gcc/lto/
      	* lto-partition.c: Mechanically replace "can not" with "cannot".
      	* lto-symtab.c: Likewise.
      	* lto.c: Likewise.
      
      	gcc/objc/
      	* objc-act.c: Mechanically replace "can not" with "cannot".
      
      	libbacktrace/
      	* backtrace.h: Mechanically replace "can not" with "cannot".
      
      	libgcc/
      	* config/c6x/libunwind.S: Mechanically replace "can not" with
      	"cannot".
      	* config/tilepro/atomic.h: Likewise.
      	* config/vxlib-tls.c: Likewise.
      	* generic-morestack-thread.c: Likewise.
      	* generic-morestack.c: Likewise.
      	* mkmap-symver.awk: Likewise.
      
      	libgfortran/
      	* caf/single.c: Mechanically replace "can not" with "cannot".
      	* io/unit.c: Likewise.
      
      	libobjc/
      	* class.c: Mechanically replace "can not" with "cannot".
      	* objc/runtime.h: Likewise.
      	* sendmsg.c: Likewise.
      
      	liboffloadmic/
      	* include/coi/common/COIResult_common.h: Mechanically replace
      	"can not" with "cannot".
      	* include/coi/source/COIBuffer_source.h: Likewise.
      
      	libstdc++-v3/
      	* include/ext/bitmap_allocator.h: Mechanically replace "can not"
      	with "cannot".
      
      From-SVN: r267783
      Sandra Loosemore committed
  29. 05 Jan, 2019 1 commit
    • PR c/88546 - Copy attribute unusable for weakrefs · 29d24852
      gcc/c-family/ChangeLog:
      
      	PR c/88546
      	* c-attribs.c (handle_copy_attribute): Avoid copying attribute leaf.
      	Handle C++ empty throw specification and C11 _Noreturn.
      	(has_attribute): Also handle C11 _Noreturn.
      
      gcc/ChangeLog:
      
      	PR c/88546
      	* attribs.c (decls_mismatched_attributes): Avoid warning for attribute
      	leaf.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/88546
      	* g++.dg/ext/attr-copy.C: New test.
      	* gcc.dg/attr-copy-4.c: Disable macro expansion tracking.
      	* gcc.dg/attr-copy-6.c: New test.
      	* gcc.dg/attr-copy-7.c: New test.
      
      From-SVN: r267591
      Martin Sebor committed
  30. 01 Jan, 2019 1 commit
  31. 20 Dec, 2018 1 commit
    • C/C++: Add -Waddress-of-packed-member · da77eace
      When address of packed member of struct or union is taken, it may result
      in an unaligned pointer value.  This patch adds -Waddress-of-packed-member
      to check alignment at pointer assignment and warn unaligned address as
      well as unaligned pointer:
      
      $ cat x.i
      struct pair_t
      {
        char c;
        int i;
      } __attribute__ ((packed));
      
      extern struct pair_t p;
      int *addr = &p.i;
      $ gcc -O2 -S x.i
      x.i:8:13: warning: taking address of packed member of ‘struct pair_t’ may result in an unaligned pointer value [-Waddress-of-packed-member]
      8 | int *addr = &p.i;
        |             ^
      
      $ cat c.i
      struct B { int i; };
      struct C { struct B b; } __attribute__ ((packed));
      
      long* g8 (struct C *p) { return p; }
      $ gcc -O2 -S c.i -Wno-incompatible-pointer-types
      c.i: In function ‘g8’:
      c.i:4:18: warning: converting a packed ‘struct C *’ pointer (alignment 1) to ‘long int *’ (alignment 8) may may result in an unaligned pointer value [-Waddress-of-packed-member]
      4 | long* g8 (struct C *p) { return p; }
        |                  ^
      c.i:2:8: note: defined here
      2 | struct C { struct B b; } __attribute__ ((packed));
        |        ^
      $
      
      This warning is enabled by default.  Since read_encoded_value_with_base
      in unwind-pe.h has
      
        union unaligned
          {
            void *ptr;
            unsigned u2 __attribute__ ((mode (HI)));
            unsigned u4 __attribute__ ((mode (SI)));
            unsigned u8 __attribute__ ((mode (DI)));
            signed s2 __attribute__ ((mode (HI)));
            signed s4 __attribute__ ((mode (SI)));
            signed s8 __attribute__ ((mode (DI)));
          } __attribute__((__packed__));
        _Unwind_Internal_Ptr result;
      
      and GCC warns:
      
      gcc/libgcc/unwind-pe.h:210:37: warning: taking address of packed member of 'union unaligned' may result in an unaligned pointer value [-Waddress-of-packed-member]
          result = (_Unwind_Internal_Ptr) u->ptr;
                                          ^
      we need to add GCC pragma to ignore -Waddress-of-packed-member.
      
      gcc/
      
      	PR c/51628
      	* doc/invoke.texi: Document -Wno-address-of-packed-member.
      
      gcc/c-family/
      
      	PR c/51628
      	* c-common.h (warn_for_address_or_pointer_of_packed_member): New.
      	* c-warn.c (check_alignment_of_packed_member): New function.
      	(check_address_of_packed_member): Likewise.
      	(check_and_warn_address_of_packed_member): Likewise.
      	(warn_for_address_or_pointer_of_packed_member): Likewise.
      	* c.opt: Add -Wno-address-of-packed-member.
      
      gcc/c/
      
      	PR c/51628
      	* c-typeck.c (convert_for_assignment): Call
      	warn_for_address_or_pointer_of_packed_member.
      
      gcc/cp/
      
      	PR c/51628
      	* call.c (convert_for_arg_passing): Call
      	warn_for_address_or_pointer_of_packed_member.
      	* typeck.c (convert_for_assignment): Likewise.
      
      gcc/testsuite/
      
      	PR c/51628
      	* c-c++-common/pr51628-1.c: New test.
      	* c-c++-common/pr51628-2.c: Likewise.
      	* c-c++-common/pr51628-3.c: Likewise.
      	* c-c++-common/pr51628-4.c: Likewise.
      	* c-c++-common/pr51628-5.c: Likewise.
      	* c-c++-common/pr51628-6.c: Likewise.
      	* c-c++-common/pr51628-7.c: Likewise.
      	* c-c++-common/pr51628-8.c: Likewise.
      	* c-c++-common/pr51628-9.c: Likewise.
      	* c-c++-common/pr51628-10.c: Likewise.
      	* c-c++-common/pr51628-11.c: Likewise.
      	* c-c++-common/pr51628-12.c: Likewise.
      	* c-c++-common/pr51628-13.c: Likewise.
      	* c-c++-common/pr51628-14.c: Likewise.
      	* c-c++-common/pr51628-15.c: Likewise.
      	* c-c++-common/pr51628-26.c: Likewise.
      	* c-c++-common/pr51628-27.c: Likewise.
      	* c-c++-common/pr51628-28.c: Likewise.
      	* c-c++-common/pr51628-29.c: Likewise.
      	* c-c++-common/pr51628-30.c: Likewise.
      	* c-c++-common/pr51628-31.c: Likewise.
      	* c-c++-common/pr51628-32.c: Likewise.
      	* gcc.dg/pr51628-17.c: Likewise.
      	* gcc.dg/pr51628-18.c: Likewise.
      	* gcc.dg/pr51628-19.c: Likewise.
      	* gcc.dg/pr51628-20.c: Likewise.
      	* gcc.dg/pr51628-21.c: Likewise.
      	* gcc.dg/pr51628-22.c: Likewise.
      	* gcc.dg/pr51628-23.c: Likewise.
      	* gcc.dg/pr51628-24.c: Likewise.
      	* gcc.dg/pr51628-25.c: Likewise.
      	* c-c++-common/asan/misalign-1.c: Add
      	-Wno-address-of-packed-member.
      	* c-c++-common/asan/misalign-2.c: Likewise.
      	* c-c++-common/ubsan/align-2.c: Likewise.
      	* c-c++-common/ubsan/align-4.c: Likewise.
      	* c-c++-common/ubsan/align-6.c: Likewise.
      	* c-c++-common/ubsan/align-7.c: Likewise.
      	* c-c++-common/ubsan/align-8.c: Likewise.
      	* c-c++-common/ubsan/align-10.c: Likewise.
      	* g++.dg/ubsan/align-2.C: Likewise.
      	* gcc.target/i386/avx512bw-vmovdqu16-2.c: Likewise.
      	* gcc.target/i386/avx512f-vmovdqu32-2.c: Likewise.
      	* gcc.target/i386/avx512f-vmovdqu64-2.c: Likewise.
      	* gcc.target/i386/avx512vl-vmovdqu16-2.c: Likewise.
      	* gcc.target/i386/avx512vl-vmovdqu32-2.c: Likewise.
      	* gcc.target/i386/avx512vl-vmovdqu64-2.c: Likewise.
      
      libgcc/
      
      	* unwind-pe.h (read_encoded_value_with_base): Add GCC pragma
      	to ignore -Waddress-of-packed-member.
      
      From-SVN: r267313
      H.J. Lu committed
  32. 19 Dec, 2018 1 commit
    • [ARM] Optimize executable size when using softfloat fmul/dmul · 72e3a529
      Softfloat single precision and double precision floating-point
      multiplication routines in libgcc share some code with the
      floating-point division of their corresponding precision. As the code
      is structured now, this leads to *all* division code being pulled in an
      executable in softfloat mode even if only multiplication is
      performed.
      
      This patch create some new LIB1ASMFUNCS macros to also build files with
      just the multiplication and shared code as weak symbols. By putting
      these earlier in the static library, they can then be picked up when
      only multiplication is used and they are overriden by the global
      definition in the existing file containing both multiplication and
      division code when division is needed.
      
      The patch also removes changes made to the FUNC_START and ARM_FUNC_START
      macros in r218124 since the intent was to put multiplication and
      division code into their own section in a later patch to achieve the
      same size optimization. That approach relied on specific section layout
      to ensure multiplication and division were not too far from the shared
      bit of code in order to the branches to be within range. Due to lack of
      guarantee regarding section layout, in particular with all the
      possibility of linker scripts, this approach was chosen instead. This
      patch keeps the two testcases that were posted by Tony Wang on the mailing
      list to implement this approach and adds a new one.
      
      2018-12-19  Thomas Preud'homme  <thomas.preudhomme@linaro.org>
      
          libgcc/
          * /config/arm/lib1funcs.S (FUNC_START): Remove unused sp_section
          parameter and corresponding code.
          (ARM_FUNC_START): Likewise in both definitions.
          Also update footer comment about condition that need to match with
          gcc/config/arm/elf.h to also include libgcc/config/arm/t-arm.
          * config/arm/ieee754-df.S (muldf3): Also build it if L_arm_muldf3 is
          defined.  Weakly define it in this case.
          * config/arm/ieee754-sf.S (mulsf3): Likewise with L_arm_mulsf3.
          * config/arm/t-elf (LIB1ASMFUNCS): Build _arm_muldf3.o and
          _arm_mulsf3.o before muldiv versions if targeting Thumb-1 only. Add
          comment to keep condition in sync with the one in
          libgcc/config/arm/lib1funcs.S and gcc/config/arm/elf.h.
      
          gcc/
          * config/arm/elf.h: Update comment about condition that need to
          match with libgcc/config/arm/lib1funcs.S to also include
          libgcc/config/arm/t-arm.
          * doc/sourcebuild.texi (output-exists, output-exists-not): Rename
          subsubsection these directives are in to "Check for output files".
          Move scan-symbol to that section and add to it new scan-symbol-not
          directive.
      
      2018-12-19  Tony Wang  <tony.wang@arm.com>
      	    Thomas Preud'homme  <thomas.preudhomme@linaro.org>
      
          gcc/testsuite/
          * lib/lto.exp (lto-execute): Define output_file and testname_with_flags
          to same value as execname.
          (scan-symbol): Move and rename to ...
          * lib/gcc-dg.exp (scan-symbol-common): This.  Adapt into a
          helper function returning true or false if a symbol is present.
          (scan-symbol): New procedure.
          (scan-symbol-not): Likewise.
          * gcc.target/arm/size-optimization-ieee-1.c: New testcase.
          * gcc.target/arm/size-optimization-ieee-2.c: Likewise.
          * gcc.target/arm/size-optimization-ieee-3.c: Likewise.
      
      From-SVN: r267282
      Thomas Preud'homme committed