1. 31 Oct, 2014 2 commits
  2. 30 Oct, 2014 23 commits
    • Add zero-cost loops for xtensa port. · 6383386a
      2014-10-10  Felix Yang  <felix.yang@huawei.com>
      
      	* config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
      	* config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
      	(xtensa_reorg, xtensa_reorg_loops): New.
      	(xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
      	(hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
      	(xtensa_emit_loop_end): Emit the zero-overhead loop end label.
      	(xtensa_doloop_hooks): Define.
      	* config/xtensa/xtensa.md (doloop_end, loop_end): New
      	(zero_cost_loop_start): Rewritten.
      	(zero_cost_loop_end): Likewise.
      
      From-SVN: r216945
      Felix Yang committed
    • config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases. · 77893d0b
      2014-10-30  Steve Ellcey  <sellcey@imgtec.com>
      
      	* config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
      
      From-SVN: r216944
      Steve Ellcey committed
    • Make soft-fp symbols into compat symbols for powerpc*-*-linux*. · e610393c
      Continuing preparations for implementing
      TARGET_ATOMIC_ASSIGN_EXPAND_FENV for powerpc*-*-linux* soft-float and
      e500, this patch makes soft-fp symbols used for those targets into
      compat symbols when building with glibc >= 2.19, so that they are only
      in shared libgcc for existing binaries requiring them, not in static
      libgcc and not available for new links using shared libgcc.  Instead,
      new links will get the symbols from libc, which has exported all of
      them since 2.19.  (Actually all the symbols were exported from glibc
      since 2.4, but some of them were exported by glibc as compat symbols
      only - because of a confusion between deliberately present soft-fp
      symbols and old accidental reexports of libgcc functions from glibc
      2.0 - until 2.19.)
      
      This allows user floating-point arithmetic to interoperate properly
      with the state handled by <fenv.h> functions, whether software state
      (for soft-float; TLS variables that don't form a public part of
      glibc's ABI, so can only be accessed directly by functions within
      glibc) or hardware state (for e500 - the copies of the soft-fp
      functions in glibc being built to interoperate with the hardware state
      whereas those in libgcc aren't).  Previously only glibc's own
      functions, and those operations done in hardware on e500, properly
      worked with that state, not direct floating-point arithmetic
      operations that were implemented in software.
      
      The intended next step is the actual TARGET_ATOMIC_ASSIGN_EXPAND_FENV
      implementation.
      
      The test of glibc >= 2.19 uses the same --with-glibc-version configure
      option as in the gcc/ directory (but differently implemented; in gcc/
      the fallback is to examine headers to find the version, while in
      libgcc/ we can use compile for the target and so use AC_COMPUTE_INT).
      The TARGET_ATOMIC_ASSIGN_EXPAND_FENV implementation will also only do
      anything for glibc >= 2.19, as it will depend on generating calls to
      functions __atomic_feholdexcept __atomic_feclearexcept
      __atomic_feupdateenv that were added in 2.19 for that purpose (even
      for e500, inline code is not readily possible because of the need to
      make prctl syscalls from the implementation of these functions).
      
      In order to make symbols compat symbols, the soft-fp files need
      wrapping with generated wrappers including asm .symver directives,
      which need to name the symbol version in question.  This is extracted
      by an awk script from an intermediate stage of generating the .map
      file for linking libgcc (that .map itself depends on the objects that
      go into the library, so can't be used for this purpose as that would
      mean a circular dependency); the extraction is not fully general
      regarding the features available in .map generation, but suffices for
      the present purpose.
      
      It would make sense for hardfp.c symbols to be compat symbols as well
      (in the cases where hardfp.c gets used, the functions in question
      should not be used for new links), but this isn't required for the
      present purpose, which is only concerned with ensuring that where
      functions that should be affected by rounding modes or exceptions get
      used, those functions are actually affected by those rounding modes or
      exceptions.
      
      Tested with no regressions with cross to powerpc-linux-gnu
      (soft-float); c11-atomic-exec-5.c moves from UNSUPPORTED to FAIL, as
      expected, now that floating-point arithmetic in user programs uses the
      same state as <fenv.h> functions, so the fenv_exceptions test passes,
      but TARGET_ATOMIC_ASSIGN_EXPAND_FENV isn't yet implemented.  (For
      e500, c11-atomic-exec-5.c was already FAILing, as enough operations
      worked with the hardware state for the fenv_exceptions effective
      target test to pass.)  Also verified that the exported symbols and
      versions are unchanged, with the expected symbols becoming compat
      symbols at the same versions, and that with --with-glibc-version=2.18
      the symbols remain normal rather than compat symbols.
      
      	* Makefile.in (libgcc.map.in): New target.
      	(libgcc.map): Use libgcc.map.in.
      	* config/t-softfp (softfp_compat): New variable to be set by
      	users.
      	[$(softfp_compat) = y] (softfp_map_dep, softfp_set_symver): New
      	variables.
      	[$(softfp_compat) = y] (softfp_file_list): Use files in the build
      	directory.
      	[$(softfp_compat) = y] ($(softfp_file_list)): Generate wrappers
      	that use compat symbols and disable all code unless [SHARED].
      	* config/t-softfp-compat: New file.
      	* find-symver.awk: New file.
      	* configure.ac (--with-glibc-version): New configure option.
      	(ppc_fp_compat): New variable set for powerpc*-*-linux*.
      	* configure: Regenerate.
      	* config.host (powerpc*-*-linux*): Use ${ppc_fp_compat} for
      	soft-float and e500.
      
      From-SVN: r216942
      Joseph Myers committed
    • c-objc-common.c (c_tree_printer): For a typedef name, print the stripped version… · 2d51fcef
      c-objc-common.c (c_tree_printer): For a typedef name, print the stripped version as well, if they're not the same.
      
      	* c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name,
      	print the stripped version as well, if they're not the same.
      
      	* gcc.dg/diag-aka-1.c: New test.
      	* gcc.dg/pr13804-1.c: Adjust dg-error.
      	* gcc.dg/redecl-14.c: Likewise.
      	* gcc.dg/pr56980.c: Adjust dg-message.
      
      From-SVN: r216941
      Marek Polacek committed
    • genmatch.c: Remove <map>, <utility> and <string> includes. · f1308e4b
      2014-10-30  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c: Remove <map>, <utility> and <string> includes.
      	Include ggc.h and hash-map.h.
      	(ggc_internal_cleared_alloc): Provide stub definition.
      	(ggc_free): Likewise.
      	(struct capture_id_map_hasher): New traits for hash_map.
      	(cid_map_t): New typedef.
      	(everywhere else): Replace std::map use with cid_map_t.
      	* hash-map.h (hash_map::elements): New member function.
      	* Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
      	hash-map.h and $(GGC_H) as dependency.
      
      From-SVN: r216940
      Richard Biener committed
    • genmatch.c (capture_info::walk_c_expr): Ignore capture uses inside TREE_TYPE (). · d822570f
      2014-10-30  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (capture_info::walk_c_expr): Ignore capture
      	uses inside TREE_TYPE ().
      	* gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
      	(find_candidates_dom_walker::before_dom_children): Likewise.
      	(replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
      	(replace_profitable_candidates): Likewise.
      	* tree-ssa-dom.c (initialize_hash_element): Canonicalize
      	CONVERT_EXPR_CODE_P to CONVERT_EXPR.
      	* convert.c (convert_to_integer): Use CASE_CONVERT.
      
      From-SVN: r216939
      Richard Biener committed
    • * gcc.misc-tests/godump-1.c: Skip if ! lp64. · 665c06ce
      From-SVN: r216938
      Ian Lance Taylor committed
    • godump-1.c: Skip -fdump-go-spec tests for all platforms except s390[x] and x86_64. · d8f8ea00
      	* gcc.misc-tests/godump-1.c: Skip -fdump-go-spec tests for all
      	platforms except s390[x] and x86_64.
      
      From-SVN: r216936
      Dominik Vogt committed
    • configure.host (aix5+): New stanza. · 020bd6f4
              * configure.host (aix5+): New stanza.
              (aix4.3+): Do not use -G in link command.
      
      From-SVN: r216935
      David Edelsohn committed
    • match.pd: Implement more patterns that simplify to a single value. · 36a60e48
      2014-10-30  Richard Biener  <rguenther@suse.de>
      
      	* match.pd: Implement more patterns that simplify to a single value.
      	* fold-const.c (fold_binary_loc): Remove them here.
      	* tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
      	(fwprop_ssa_val): Remove restriction on single uses.
      
      From-SVN: r216933
      Richard Biener committed
    • driver-avr.c (avr_set_current_device): Remove. · 6327f612
      2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
      
      	* config/avr/driver-avr.c (avr_set_current_device): Remove.
      
      From-SVN: r216932
      Jan-Benedict Glaw committed
    • [multiple changes] · cc9b1e1c
      2014-10-30  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb (Expand_N_Object_Declaration): Code cleanup.
      
      2014-10-30  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch5.adb (Analyze_Iterator_Specification): If a subtype
      	indication is provided, check properly that it covers the element
      	type of of the container type.
      
      2014-10-30  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* g-dynhta.ads, g-dynhta.adb: Add the implementation of a load facto
      	-based hash table.
      
      From-SVN: r216926
      Arnaud Charlet committed
    • Recommit wrongly reverted change. · 35fdafcd
      From-SVN: r216924
      Arnaud Charlet committed
    • Recommit wrongly reverted change. · f11ac8e7
      From-SVN: r216923
      Arnaud Charlet committed
    • Re-commit wrongly reverted previous change. · 1572e2c3
      From-SVN: r216922
      Arnaud Charlet committed
    • [multiple changes] · cd2c6027
      2014-10-30  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.ads, exp_util.adb (Following_Address_Clause): Modify
      	Has_Following_Address_Clause so that it returns the address
      	clause if present, rather than a boolean value.
      	* sem_ch3.adb (Analyze_Object_Declaration): use
      	Following_Address_Clause.
      	* exp_ch3.adb (Expand_N_Object_Declaration): When a tagged object
      	is initialized, insert tag assignment after object is frozen,
      	which may be after an address clause that follows the declaration.
      
      2014-10-30  Tristan Gingold  <gingold@adacore.com>
      
      	* system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,
      	system-vxworks-arm.ads, system-freebsd-x86_64.ads,
      	system-linux-hppa.ads, system-linux-s390.ads,
      	system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,
      	system-vxworks-sparcv9.ads, system-linux-ppc.ads, system-aix64.ads,
      	system-linux-sh4.ads, system-solaris-x86.ads, system-linux-x86_64.ads,
      	system-linux-x86.ads, system-vxworks-ppc.ads, system-hpux.ads,
      	system-linux-armel.ads, system-darwin-ppc.ads, system-solaris-sparc.ads,
      	system-vxworks-m68k.ads, system-hpux-ia64.ads, system.ads,
      	system-solaris-x86_64.ads, system-mingw-x86_64.ads,
      	system-vxworks-mips.ads, system-linux-sparc.ads, system-freebsd-x86.ads,
      	system-aix.ads, system-darwin-x86_64.ads, system-vxworks-x86.ads: Add
      	pragma No_Elaboration_Code_All.
      
      2014-10-30  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* gnat_ugn.texi: Minor improvement to -flto entry.
      
      From-SVN: r216921
      Arnaud Charlet committed
    • [multiple changes] · b3407ce0
      2014-10-30  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb (Inherit_Subprogram_Contract):
      	Add a guard to protect against enumeration literal overriding.
      	* sem_ch3.adb, sem_ch4.adb, sem_res.adb, sem_util.adb:
      	Minor reformatting (add SPARK RM references).
      
      2014-10-30  Robert Dewar  <dewar@adacore.com>
      
      	* exp_dbug.adb, opt.ads: Minor reformatting.
      
      From-SVN: r216920
      Arnaud Charlet committed
    • [multiple changes] · 039538bc
      2014-10-30  Yannick Moy  <moy@adacore.com>
      
      	* inline.adb (Has_Single_Return_In_GNATprove_Mode):
      	Return False when return statement is inside one or more blocks.
      
      2014-10-30  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch7.adb (Is_Subprogram_Call): Account for the case where an
      	object declaration initialized by a function call that returns
      	an unconstrained result may be rewritted as a renaming of the
      	secondary stack result.
      
      2014-10-30  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* aspects.adb: Add an entry for aspect Extensions_Visible in
      	table Canonical_Aspect.
      	* aspects.ads: Add entry for aspect Extensions_Visible in
      	tables Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names,
      	Implementation_Defined_Aspect.
      	* einfo.adb (Get_Pragma): Include pragma Extensions_Visible in
      	the list of contract pragmas.
      	* par-prag.adb Pragma Extensions_Visible does not require special
      	processing from the parser.
      	* sem_ch3.adb (Analyze_Object_Declaration): Prevent an
      	implicit class-wide conversion of a formal parameter
      	of a specific tagged type whose related subprogram is
      	subject to pragma Extensions_Visible with value "False".
      	(Check_Abstract_Overriding): Add various overriding checks
      	related to pragma Extensions_Visible.
      	(Derive_Subprogram):
      	A subprogram subject to pragma Extensions_Visible with value
      	False requires overriding if the subprogram has at least one
      	controlling OUT parameter.
      	(Is_EVF_Procedure): New routine.
      	* sem_ch4.adb (Analyze_Type_Conversion): A formal parameter of
      	a specific tagged type whose related subprogram is subject to
      	pragma Extensions_Visible with value "False" cannot appear in
      	a class-wide conversion.
      	* sem_ch6.adb (Analyze_Subprogram_Contract): Remove
      	the assertion to account for pragma Extensions_Visible.
      	(Check_Overriding_Indicator): An overriding subprogram
      	inherits the contact of the overridden subprogram.
      	(New_Overloaded_Entity): An overriding subprogram inherits the
      	contact of the overridden subprogram.
      	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
      	for aspect Extensions_Visible.
      	(Check_Aspect_At_Freeze_Point): Aspect Extensions_Visible does not
      	require special processing at the freeze point.
      	* sem_prag.adb Add an entry for pragma Extensions_Visible in
      	table Sig_Flags.
      	(Analyze_Pragma): Ensure that various SPARK
      	pragmas lack identifiers in their arguments. Add processing for
      	pragma Extensions_Visible.
      	(Chain_CTC): Code reformatting.
      	* sem_res.adb (Resolve_Actuals): A formal parameter of a
      	specific tagged type whose related subprogram is subject to
      	pragma Extensions_Visible with value "False" cannot act as an
      	actual in a subprogram with value "True".
      	* sem_util.adb (Add_Classification): New routine.
      	(Add_Contract_Item): Account for pragma Extensions_Visible. Code
      	reformatting.
      	(Add_Contract_Test_Case): New routine.
      	(Add_Pre_Post_Condition): New routine.
      	(Extensions_Visible_Status): New routine.
      	(Inherit_Subprogram_Contract): New routine.
      	(Is_EVF_Expression): New routine.
      	(Is_Specific_Tagged_Type): New routine.
      	* sem_util.ads Add type Extensions_Visible_Mode and document all values.
      	(Add_Contract_Item): Add pragma Extensions_Visible to the
      	comment on usage.
      	(Inherit_Subprogram_Contract): New routine.
      	(Is_EVF_Expression): New routine.
      	(Is_Specific_Tagged_Type): New routine.
      	* sinfo.adb (Is_Inherited): New routine.
      	(Set_Is_Inherited): New routine.
      	* sinfo.ads Add flag Is_Inherited along with its usage in
      	nodes.
      	(Is_Inherited): New routine along with pragma Inline.
      	(Set_Is_Inherited): New routine along with pragma Inline.
      	* snames.ads-tmpl: Add predefined name "Extensions_Visible"
      	and a new Pragma_Id for the pragma.
      
      From-SVN: r216919
      Arnaud Charlet committed
    • Add svn:executable property for generate_libstdcxx_web_docs. · 67848724
      From-SVN: r216914
      Jakub Jelinek committed
    • re PR tree-optimization/63574 (ICE building libjava (segfault) on arm-linux-gnueabihf) · 47a668cd
      	PR ipa/63574
      	PR ipa/63664
      	* g++.dg/ipa/pr63574.C: New test.
      	* ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
      	(func_checker::compare_gimple_label): Simlified comparison introduced.
      	* ipa-icf-gimple.h: Missing comment added.
      
      From-SVN: r216913
      Martin Liska committed
    • Build a shared host libiberty also for libcc1's benefit. · fca38047
      	* configure.ac (extra_host_libiberty_configure_flags): Add
      	--enable-shared also for libcc1's benefit.
      	* configure: Regenerate.
      
      From-SVN: r216912
      Thomas Schwinge committed
    • pa-protos.h (pa_output_arg_descriptor): Strengthen argument from rtx to rtx_insn *. · e0d80a58
      	* config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
      	argument from rtx to rtx_insn *.
      	(compute_movmem_length, compute_clrmem_length): Likewise.
      	(copy_fp_args, length_fp_args): Likewise.
      	* config/pa/pa.c (legitimize_pic_address): Promote local variable
      	"insn" from rtx to rtx_insn *.
      	(legitimize_tls_address, pa_emit_move_sequence): Likewise.
      	(pa_output_block_move, store_reg, store_reg_modify): Likewise.
      	(set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
      	(branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
      	(pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
      	(compute_movmem_length, compute_clrmem_length): Likewise.
      	(copy_fp-args, length_fp_args): Likewise.
      
      From-SVN: r216859
      Jeff Law committed
    • Daily bump. · ed33cc24
      From-SVN: r216858
      GCC Administrator committed
  3. 29 Oct, 2014 15 commits
    • Fix build fallout with machine_mode changes. · 2c0122c9
      2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
              * config/arm/arm.h (MACHMODE): Treat machine_mode as a
              scalar typedef.
              (CUMULATIVE_ARGS): Guard against target includes.
              (machine_function): Likewise.
      
      From-SVN: r216855
      Ramana Radhakrishnan committed
    • [AArch64] Restore recog state after finding pre-madd instruction · 3fea1a75
      	* config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
      	recog state after aarch64_prev_real_insn call.
      
      	* gcc.target/aarch64/madd_after_asm_1.c: New test.
      
      From-SVN: r216852
      Kyrylo Tkachov committed
    • Use perfect forwarding in std::function invokers. · a56561ac
      	* include/std/functional: (_Function_base::_Function_base()): Use
      	nullptr instead of literal zero.
      	(function::operator=(nullptr_t)): Likewise.
      	(_Function_handler::_M_invoke): Use perfect forwarding for _ArgTypes.
      	(function::_Invoker_type): Likewise.
      	* testsuite/20_util/function/invoke/forwarding.cc: New.
      
      From-SVN: r216849
      Jonathan Wakely committed
    • any: Add feature-testing macro. · c2513a1f
      	* include/experimental/any: Add feature-testing macro.
      	* include/experimental/optional: Likewise.
      	* include/experimental/string_view: Likewise.
      	* include/experimental/tuple: Likewise.
      	* include/experimental/type_traits: Likewise.
      	* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
      
      From-SVN: r216848
      Jonathan Wakely committed
    • Add <experimental/algorithm> and <experimental/functional>. · 43e9f722
      	* doc/xml/manual/status_cxx2014.xml: Update TS status.
      	* include/Makefile.am: Add new headers.
      	* include/Makefile.in: Regenerate.
      	* include/experimental/algorithm: New.
      	* include/experimental/functional: New.
      	* testsuite/experimental/algorithm/sample.cc: New.
      	* testsuite/experimental/algorithm/search.cc: New.
      	* testsuite/experimental/functional/not_fn.cc: New.
      	* testsuite/experimental/functional/searchers.cc: New.
      	* testsuite/experimental/functional/value.cc: New.
      	* testsuite/experimental/feat-lib-fund.cc: Add headers and reorder.
      
      From-SVN: r216847
      Jonathan Wakely committed
    • [AArch64] Fix/revert fallout from machine_mode change · 86fea2cb
      	* config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
      
      From-SVN: r216846
      Kyrylo Tkachov committed
    • [ARM] Fix/revert fallout from machine_mode change. · f74e9910
      	* config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
      	(struct machine_function): Gate definition on
      	!defined(USED_FOR_TARGET).
      
      From-SVN: r216845
      Kyrylo Tkachov committed
    • expmed.c (strict_volatile_bitfield_p): Fix off-by-one error. · 40f94f7d
      * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
      * gcc.dg/20141029-1.c: New.
      
      From-SVN: r216844
      DJ Delorie committed
    • re PR ipa/63587 (ICE : tree check: expected var_decl, have result_decl in… · 5cf18d25
      re PR ipa/63587 (ICE : tree check: expected var_decl, have result_decl in add_local_variables, at tree-inline.c:4112)
      
      PR ipa/63587
      
      	* g++.dg/ipa/pr63587-1.C: New test
      	* g++.dg/ipa/pr63587-2.C: New test.
      
      	* cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
      	to local declarations.
      	* function.c (add_local_decl): Implementation moved from header
      	file, assert introduced for tree type.
      	* function.h: Likewise.
      
      From-SVN: r216841
      Martin Liska committed
    • godump.c (go_format_type): Represent "float _Complex" and "double _Complex" as… · 7b310e90
      godump.c (go_format_type): Represent "float _Complex" and "double _Complex" as complex64 or complex128 in...
      
      gcc/:
      	* godump.c (go_format_type): Represent "float _Complex" and
      	"double _Complex" as complex64 or complex128 in Go, as appropriate.
      gcc/testsuite/:
      	* gcc.misc-tests/godump-1.c: Add tests for complex types.
      
      From-SVN: r216840
      Dominik Vogt committed
    • match.pd: Implement a first set of conversion patterns. · d4573ffe
      2014-10-29  Richard Biener  <rguenther@suse.de>
      
      	* match.pd: Implement a first set of conversion patterns.
      	* fold-const.c (fold_unary_loc): Remove them here.
      	* tree-ssa-forwprop.c (simplify_vce): Remove.
      	(pass_forwprop::execute): Do not call simplify_vce.
      
      From-SVN: r216839
      Richard Biener committed
    • Optimize powerpc*-*-linux* e500 hardfp/soft-fp use. · bc1b3a88
      Continuing the cleanups of libgcc soft-fp configuration for
      powerpc*-*-linux* in preparation for implementing
      TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch
      optimizes the choice of which functions to build for the e500 cases.
      
      For e500v2, use of hardfp is generally right, except that calls to
      __unordsf2 and __unorddf2 are actually generated by GCC from
      __builtin_isunordered and so they need to be implemented with soft-fp
      to avoid recursively calling themselves.  For e500v1, hardfp is right
      for SFmode (except for __unordsf2) but soft-fp for DFmode (and when
      using soft-fp, as usual it's best for the conversions between DFmode
      and integers all to come directly from soft-fp rather than some coming
      from libgcc2.c).  Thus, new variables hardfp_exclusions and
      softfp_extras are added that configurations using t-hardfp and
      t-softfp can use to achieve the desired effect of selectively mixing
      the two sources of functions.
      
      Tested with no regressions for crosses to powerpc-linux-gnuspe (both
      e500v1 and e500v2); also checked that the same set of symbols and
      versions is exported from shared libgcc before and after the patch.
      
      	* config/t-hardfp (hardfp_exclusions): Document new variable for
      	user to define.
      	(hardfp_func_list): Exclude functions from $(hardfp_exclusions).
      	* config/t-softfp (softfp_extras): Document new variable for user
      	to define.
      	(softfp_func_list): Add functions from $(softfp_extras).
      	* config/rs6000/t-e500v1-fp, config/rs6000/t-e500v2-fp: New files.
      	* config.host (powerpc*-*-linux*): For e500v1, use
      	rs6000/t-e500v1-fp and t-hardfp; do not use t-softfp-sfdf and
      	t-softfp-excl.  For e500v2, use t-hardfp-sfdf, rs6000/t-e500v2-fp
      	and t-hardfp; do not use t-softfp-sfdf and t-softfp-excl.
      
      From-SVN: r216835
      Joseph Myers committed
    • decl.c, [...]: Remove redundant enum from machine_mode. · ef4bddc2
      gcc/ada/
      	* gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/misc.c,
      	gcc-interface/trans.c, gcc-interface/utils.c, gcc-interface/utils2.c:
      	Remove redundant enum from machine_mode.
      
      gcc/c-family/
      	* c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant
      	enum from machine_mode.
      
      gcc/c/
      	* c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
      	machine_mode.
      
      gcc/cp/
      	* constexpr.c: Remove redundant enum from machine_mode.
      
      gcc/fortran/
      	* trans-types.c, trans-types.h: Remove redundant enum from
      	machine_mode.
      
      gcc/go/
      	* go-lang.c: Remove redundant enum from machine_mode.
      
      gcc/java/
      	* builtins.c, java-tree.h, typeck.c: Remove redundant enum from
      	machine_mode.
      
      gcc/lto/
      	* lto-lang.c: Remove redundant enum from machine_mode.
      
      gcc/
      	* addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
      	builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
      	cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
      	config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
      	config/aarch64/aarch64.c, config/aarch64/aarch64.h,
      	config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
      	config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
      	config/arc/arc.h, config/arc/predicates.md,
      	config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
      	config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
      	config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
      	config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
      	config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
      	config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
      	config/cr16/cr16-protos.h, config/cr16/cr16.c,
      	config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
      	config/darwin-protos.h, config/darwin.c,
      	config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
      	config/epiphany/epiphany.md, config/fr30/fr30.c,
      	config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
      	config/h8300/h8300-protos.h, config/h8300/h8300.c,
      	config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
      	config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
      	config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
      	config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
      	config/iq2000/iq2000.c, config/iq2000/iq2000.md,
      	config/lm32/lm32-protos.h, config/lm32/lm32.c,
      	config/m32c/m32c-protos.h, config/m32c/m32c.c,
      	config/m32r/m32r-protos.h, config/m32r/m32r.c,
      	config/m68k/m68k-protos.h, config/m68k/m68k.c,
      	config/mcore/mcore-protos.h, config/mcore/mcore.c,
      	config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
      	config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
      	config/mips/mips-protos.h, config/mips/mips.c,
      	config/mmix/mmix-protos.h, config/mmix/mmix.c,
      	config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
      	config/moxie/moxie.c, config/msp430/msp430-protos.h,
      	config/msp430/msp430.c, config/nds32/nds32-cost.c,
      	config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
      	config/nds32/nds32-protos.h, config/nds32/nds32.c,
      	config/nios2/nios2-protos.h, config/nios2/nios2.c,
      	config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
      	config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
      	config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
      	config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
      	config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
      	config/s390/predicates.md, config/s390/s390-protos.h,
      	config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
      	config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
      	config/sh/sh.md, config/sparc/predicates.md,
      	config/sparc/sparc-protos.h, config/sparc/sparc.c,
      	config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
      	config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
      	config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
      	config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
      	config/tilepro/tilepro.c, config/v850/v850-protos.h,
      	config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
      	config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
      	config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
      	dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
      	doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
      	dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
      	except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
      	fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
      	fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
      	genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
      	graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
      	internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
      	ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
      	libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
      	loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
      	lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
      	lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
      	output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
      	recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
      	regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
      	rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
      	sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
      	simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
      	targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
      	tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
      	tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
      	tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
      	tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
      	tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
      	tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
      	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
      	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
      	tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
      	var-tracking.c, varasm.c: Remove redundant enum from
      	machine_mode.
      gcc/
      	* gengtype.c (main): Treat machine_mode as a scalar typedef.
      	* genmodes.c (emit_insn_modes_h): Hide inline functions if
      	USED_FOR_TARGET.
      
      From-SVN: r216834
      Richard Sandiford committed
    • configure.ac: Remove -Werror addition to WARN_FLAGS. · ca557f53
      	* configure.ac: Remove -Werror addition to WARN_FLAGS.  Add
      	ACX_PROG_CC_WARNINGS_ARE_ERRORS and AC_ARG_VAR for GMPINC.
      	* Makefile.am (AM_CPPFLAGS): Add $(GMPINC).
      	(WERROR_FLAG): Remove.
      	(AM_CXXFLAGS): Use $(WERROR) instead of $(WERROR_FLAG).
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      
      Co-Authored-By: Phil Muldoon <pmuldoon@redhat.com>
      
      From-SVN: r216833
      Jakub Jelinek committed
    • Makefile.am (CXXFLAGS, LDFLAGS): Filter out -fsanitize=address. · 56f274b2
      	* Makefile.am (CXXFLAGS, LDFLAGS): Filter out -fsanitize=address.
      	(libiberty_normal, libiberty_noasan, libiberty_pic, libiberty_dep):
      	New variables.
      	(libiberty): Set to -Wc, followed by the first existing noasan/,
      	pic/ or . libiberty.a.
      	(libcc1plugin_la_DEPENDENCIES, libcc1plugin_la_LINK,
      	libcc1_la_DEPENDENCIES, libcc1_la_LINK, LTLDFLAGS): New variables.
      	* Makefile.in: Regenerated.
      
      From-SVN: r216832
      Jakub Jelinek committed