1. 19 Jun, 2017 9 commits
    • Fix multi-versioning issues (PR ipa/80732). · 871cc215
      2017-06-19  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/80732
      	* attribs.c (make_dispatcher_decl): Do not append '.ifunc'
      	to dispatcher function name.
      	* multiple_target.c (replace_function_decl): New function.
      	(create_dispatcher_calls): Redirect both edges and references.
      2017-06-19  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/80732
      	* gcc.target/i386/mvc5.c: Scan indirect_function.
      	* gcc.target/i386/mvc7.c: Likewise.
      	* gcc.target/i386/pr80732.c: New test.
      
      From-SVN: r249365
      Martin Liska committed
    • re PR c++/66093 (g++ produces incorrect output on code with constexpr function… · 431abe69
      re PR c++/66093 (g++ produces incorrect output on code with constexpr function initializing class with private fields)
      
      2017-06-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/66093
      	* g++.dg/cpp1y/constexpr-66093.C: New.
      
      From-SVN: r249364
      Paolo Carlini committed
    • Update Solaris baselines for GCC 8.0 (PR libstdc++/81092) · a06a5385
      	* config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
      	* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
      	* config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
      	* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
      	* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
      	* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
      	Likewise.
      	* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
      	* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
      	Likewise.
      
      From-SVN: r249362
      Rainer Orth committed
    • Fix typo · b2c2a7e4
      From-SVN: r249361
      Jan Hubicka committed
    • profile-count.c (profile_count::dump): Dump quality. · 4e9a497f
      	* profile-count.c (profile_count::dump): Dump quality.
      	(profile_count::differs_from_p): Update for unsigned val.
      	* profile-count.h (profile_count_quality): New enum.
      	(profile_count): Turn m_val to 62bit unsigned, add quality tracking.
      
      From-SVN: r249360
      Jan Hubicka committed
    • Remove reference to Solaris 2.[56] · fe1ae165
      	* g++.dg/other/unused1.C: Remove *-*-solaris2.[56]* from
      	dg-skip-if list.
      
      From-SVN: r249359
      Rainer Orth committed
    • tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take struct function as arg. · adb7eaa2
      2017-06-19  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
      	struct function as arg.
      	(estimate_numbers_of_iterations): Export overload with loop arg.
      	(free_numbers_of_iterations_estimates_loop): Use an overload of
      	free_numbers_of_iterations_estimates instead.
      	* tree-cfg.c (remove_bb): Adjust.
      	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
      	* tree-parloops.c (gen_parallel_loop): Likewise.
      	* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
      	Likewise.
      	(tree_unroll_loops_completely): Likewise.
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
      	Use an overload instead and export.
      	(estimated_loop_iterations): Adjust.
      	(max_loop_iterations): Likewise.
      	(likely_max_loop_iterations): Likewise.
      	(estimate_numbers_of_iterations): Take struct function as arg
      	and adjust.
      	(loop_exits_before_overflow): Adjust.
      	(free_numbers_of_iterations_estimates_loop): Use an overload.
      	* tree-vect-loop.c (vect_analyze_loop_form): Adjust.
      	* tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
      
      From-SVN: r249358
      Richard Biener committed
    • re PR ipa/81112 (internal compiler error: tree check: expected integer_cst, have… · db9bbdec
      re PR ipa/81112 (internal compiler error: tree check: expected integer_cst, have range_expr in get_len, at tree.h:5321)
      
      2017-06-19  Richard Biener  <rguenther@suse.de>
      
      	PR ipa/81112
      	* ipa-prop.c (find_constructor_constant_at_offset): Handle
      	RANGE_EXPR conservatively.
      
      	* g++.dg/torture/pr81112.C: New testcase.
      
      From-SVN: r249357
      Richard Biener committed
    • Daily bump. · 245ad722
      From-SVN: r249356
      GCC Administrator committed
  2. 18 Jun, 2017 7 commits
  3. 17 Jun, 2017 13 commits
  4. 16 Jun, 2017 11 commits
    • rs6000-c.c (altivec_overloaded_builtins): Add definitions for vec_float,… · be1418c7
      rs6000-c.c (altivec_overloaded_builtins): Add definitions for vec_float, vec_float2, vec_floato, vec_floate built-ins.
      
      gcc/ChangeLog:
      
      2017-06-16  Carl Love  <cel@us.ibm.com>
      
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
      	definitions for vec_float, vec_float2, vec_floato,
      	vec_floate built-ins.
      	* config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
      	for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
      	floate.
      	* config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
      	FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
      	UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
      	* config/altivec.md (define_insn "p8_vmrgew_<mode>",
      	define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
      	* config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
      	vec_floato): Add builtin defines.
      	* doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
      	Update the built-in documentation file for the new built-in
      	functions.
      
      gcc/testsuite/ChangeLog:
      
      2017-06-16  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/builtins-3-runnable.c (test_result_sp,
      	main): Add runnable tests and test checker for vec_float,
      	vec_float2, vec_floate and vec_floato builtins.
      
      From-SVN: r249311
      Carl Love committed
    • [arm] Fix various tests · e3e266bf
      The neon-thumb2-move.c test was overriding the options that had been
      detected as being necessary to enable Neon.  The result was that the
      combination of the test's options and those auto-detected were not
      compatible with neon leading to a test failure.  The correct fix here
      is to stick with the options that dg-add-options arm_neon has worked
      out.
      
      The thumb2-slow-flash-data tests were relying (incorrectly) on a
      particular FPU being enabled by default.  These tests are fixed by
      adding +fp to the architecture selected.
      
      	* gcc.target/arm/neon-thumb2-move.c (dg-options): Don't override
      	the architecture options added by dg-add-options arm_neon.
      	* gcc.target/arm/thumb2-slow-flash-data-2.c (dg-opitions): Add +fp
      	to the architecture.
      	* gcc.target/arm/thumb3-slow-flash-data-3.c (dg-opitions): Likewise.
      	* gcc.target/arm/thumb4-slow-flash-data-3.c (dg-opitions): Likewise.
      	* gcc.target/arm/thumb5-slow-flash-data-3.c (dg-opitions): Likewise.
      
      From-SVN: r249310
      Richard Earnshaw committed
    • [arm] Mark -marm and -mthumb as being inverse options · 718a3eab
      -marm and -mthumb are opposites: one cancels out the other.  This patch
      marks them as such so that the driver will eliminate all but the last
      option on the command line.  This aids multilib selection which otherwise
      can get confused if both are present.
      
      	* config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
      	(mthumb): Mark as the negative of -marm.
      
      From-SVN: r249309
      Richard Earnshaw committed
    • [arm][doc] Document changes to -mcpu, -mtune and -mfpu. · f54133ea
      This patch adds the remainder of the main documentation changes.  It
      adds the changes for -mcpu, -mtune and -mfpu.  I've chosen to document
      the extension options under -mcpu rather than under -mtune because,
      while they are permitted with -mtune, they do not affect the behaviour
      of the tuning done by the compiler.
      
      I've also inverted the sense of the table (making the primary index
      the extension name and then listing the CPU names to which it applies.
      This is because the extensions are much more orthoganal in meaning
      here and having a primary entry via the CPU name would lead to
      enormous duplication.
      
      Finally, it adds the relevant changes to -mfpu.  I haven't stated yet
      that any setting of -mfpu other than 'auto' is deprecated, but that is
      certainly the long-term goal of this patch series.
      
      	* doc/invoke.texi (ARM Options, -mcpu): Document supported
      	extension options.
      	(ARM Options, -mtune): Document that this accepts the same
      	extension options as -mcpu.
      	(ARM Options, -mfpu): Document addition of -mfpu=auto.
      
      From-SVN: r249308
      Richard Earnshaw committed
    • [arm][doc] Document new -march= syntax. · 6d2f99aa
      This adds documentation for the new extension options to -march= on ARM.
      I tried a number of different ways of formatting the information, but this
      seems the best, given what can be achieved in texinfo format.
      
      	* doc/invoke.texi (ARM Options, -march=): Document new syntax and
      	permitted extensions.
      
      From-SVN: r249307
      Richard Earnshaw committed
    • [arm] Add a few missing architecture extension options. · ffc12690
      Reviewing the list of options for the purposes of writing the
      documentation revealed that a small number of options were missing.
      Mostly these are aliases for existing options, but in a couple of
      cases we lacked the ability to disable certain other options.
      
      	* config/arm/arm-cpus.in (armv7): Add extension +nofp.
      	(armv7-r): Add aliases vfpv3xd and vfpv3-d16.
      	(armv8-m.main): Add option +nodsp.
      	* config/arm/arm-cpu-cdata.h: Regenerated.
      
      From-SVN: r249306
      Richard Earnshaw committed
    • [arm] Rework multilib support · be5c4e06
      It looks like the fuchsia port relied on inheriting the multilib rules from
      the bare-metal port (the t-arm-elf makefile fragment), but that has now been
      rewritten on the assuption that the base architecture is ARMv4t; fuchsia
      has a base architecture of ARMv7-a.
      
      To account for this, I've cloned the original t-arm-elf rules into a
      new makefile fragment t-fuchsia and arranged for that to be used when
      targetting this system.
      
      	* config/arm/t-fuchsia: New file.
      	* config.gcc (arm*-*-fuchsia*): Use it.
      
      From-SVN: r249305
      Richard Earnshaw committed
    • [arm] Rework multlib builds for symbianelf · e61a3cdd
      Symbianelf used to build multilib for armv5t with softfp, but that
      architecture doesn't really support floating point instructions.  This
      patch reworks the multilib configuration to use armv5te as the base
      when building for floating point.
      
      I'm not sure just how useful the symbian port is these days, so this
      has only been very lightly tested (checks that libgcc builds for all
      multilib variants).  Perhaps we should consider deprecating this
      config?
      
      	* config/arm/t-symbian: Rewrite for new option infrastructure.
      
      From-SVN: r249304
      Richard Earnshaw committed
    • [arm] reset all multilib variables · 99d6bcf7
      NB.  This configuration does not build in GCC-7 and doesn't build now either.
      
      This patch resets a couple of multlib variables which previously were
      not cleared.
      
      It almost certainly needs further work to make it use the new option
      framework correctly, but since the library configurations are already
      clearly wrong, it's not clear what the changes need to be.  In
      particular it tries to build a hard-float library for ARM7TDMI in both
      ARM and thumb modes, but ARMv4t does not support any floating-point
      instructions; furthermore, GCC has never supported a hard-float thumb1
      library.
      
      	* config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
      	(MULTILIB_REQUIRED): Likewise.
      
      From-SVN: r249303
      Richard Earnshaw committed
    • [arm] Ensure all multilib variables are reset · e1674337
      No real change, but for consistency reset all multilib related variables.
      
      	* config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
      	(MULTILIB_RESUE): Likewise.
      	(MULTILIB_MATCHES): Likewise.
      	(MULTLIB_REQUIRED): Likewise.
      
      From-SVN: r249302
      Richard Earnshaw committed
    • [arm] Update t-rtems for new option framework · d59ee314
      [This patch has only been fairly lightly tested (I've built a compiler
      with all the relevant multilibs and smoke-tested a few combinations to
      check that the tools still produce a sensible object file).]
      
      This patch updates the RTEMS build to use the new option framework.
      It tries as far as possible to keep the existing supported options,
      but there are two necessary changes and one cleanup.  I've also
      restructed the file slightly to make it slightly easier (IMO) to
      understand.
      
      Necessary changes:
      
      1: ARMv4t does not support a hard-float ABI, the earliest supported
      architecture with floating-point support is ARMv5te, so I've rebased
      the original fpu/hard libraries to that revision of the architecture.
      
      2: Similarly, the earliest version of the -m profile to support
      hardware floating-point is armv7e-m (not armv7-m), so the base
      architecture for m-profile with FP has been correspondingly updated.
      
      Clean-up:
      
      1: For greater consistency I've changed the
      -mcpu=cortex-m7/-mfpu=fpv5-d16/-mhard-float to
      -march=armv7e-m+fp.dp/-mhard-float.  The built-in -mcpu rewrite rules
      take care of mapping the existing option sets onto the architecture
      string to ensure compatibility.
      
      Since the existing rule set does not contain any MULTILIB_REUSE rules,
      I have not added any here this time around, but it would be worth the
      maintainers of this file considering whether adding some rules would
      make their toolchain more friendly to users.
      
      Finally, I've added lines to reset all the multilib variables at the
      head of the file.  I found during testing that some definitions from
      t-arm-elf were leaking through and causing unexpected behviour.
      
      	* config/arm/t-rtems: Rewrite for new option framework.
      
      From-SVN: r249301
      Richard Earnshaw committed