1. 26 Oct, 2014 18 commits
  2. 25 Oct, 2014 8 commits
    • re PR tree-optimization/63641 (Invalid shift leads to incorrect code on 32-bit system) · 46a54708
      	PR tree-optimization/63641
      	* tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
      	to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
      
      	* gcc.c-torture/execute/pr63641.c: New test.
      
      From-SVN: r216693
      Jakub Jelinek committed
    • status_cxx2011.xml: Update unordered container specific behavior. · 608b9c88
      2014-10-25  François Dumont  <fdumont@gcc.gnu.org>
      
      	* doc/xml/manual/status_cxx2011.xml: Update unordered container
      	specific behavior.
      
      From-SVN: r216692
      François Dumont committed
    • re PR rtl-optimization/63615 (FAIL: gcc.target/i386/addr-sel-1.c) · f27dfe87
      	PR rtl-optimization/63615
      	* simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
      	decomposing PLUS or MINUS if operands are not placed adjacent
      	in the "ops" array.
      
      From-SVN: r216689
      Alan Modra committed
    • Only allow e500 double in SPE_SIMD_REGNO_P registers. · 4aa19422
      rs6000_hard_regno_nregs_internal allows SPE vectors in single
      registers satisfying SPE_SIMD_REGNO_P (i.e. register numbers 0 to
      31).  However, the corresponding test for e500 double treats all
      registers as being able to store a 64-bit value, rather than just
      those GPRs.
      
      Logically this inconsistency is wrong; in addition, it causes problems
      unwinding from signal handlers.  linux-unwind.h uses
      ARG_POINTER_REGNUM as a place to store the return address from a
      signal handler, but this logic in rs6000_hard_regno_nregs_internal
      results in that being considered an 8-byte register, resulting in
      assertion failures.
      (<https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02625.html> first
      needs to be applied for unwinding to work in general on e500.)  This
      patch makes rs6000_hard_regno_nregs_internal handle the e500 double
      case consistently with SPE vectors.
      
      Tested with no regressions with cross to powerpc-linux-gnuspe (given
      the aforementioned patch applied).  Failures of signal handling
      unwinding tests such as gcc.dg/cleanup-{8,9,10,11}.c are fixed by this
      patch.
      
      	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
      	not allow e500 double in registers not satisyfing
      	SPE_SIMD_REGNO_P.
      
      From-SVN: r216688
      Joseph Myers committed
    • Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use. · d80c2bea
      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 32-bit
      classic hard-float and soft-float cases.  (e500 will be dealt with in
      a separate patch which will need to add new features to t-hardfp and
      t-softfp; this patch keeps the status quo for e500.)
      
      For hard-float, while the functions in question are part of the libgcc
      ABI there is no need for them to contain software floating point code:
      no newly built code should use them, and if anything does use them
      it's most efficient (space and speed) for them to pass straight
      through to floating-point hardware instructions; this case is made to
      use t-hardfp to achieve that.  For soft-float, direct use of soft-fp
      functions for operations involving DImode or unsigned integers is more
      efficient than using the libgcc2.c versions of those operations to
      convert to operations on other types (which then end up calling
      soft-fp functions for those other types, possibly more than once);
      this case is thus stopped from using t-softfp-excl.  (A future patch
      will stop the e500 cases from using t-softfp-excl as well.)
      
      Tested with no regressions for crosses to powerpc-linux-gnu (soft
      float and classic hard float); also checked that the same set of
      symbols and versions is exported from shared libgcc before and after
      the patch.
      
      	* configure.ac (ppc_fp_type): Set variable on powerpc*-*-linux*.
      	* configure: Regenerate.
      	* config.host (powerpc*-*-linux*): Use $ppc_fp_type to determine
      	additions to tmake_file.  Use t-hardfp-sfdf and t-hardfp instead
      	of soft-fp for 32-bit classic hard float.  Do not use
      	t-softfp-excl for soft float.
      
      From-SVN: r216687
      Joseph Myers committed
    • Daily bump. · 0f849c16
      From-SVN: r216686
      GCC Administrator committed
    • dwarf2out.c (declare_in_namespace): Only emit external declarations in the local scope once. · c22354fd
      	* dwarf2out.c (declare_in_namespace): Only emit external
      	declarations in the local scope once.
      
      From-SVN: r216683
      Aldy Hernandez committed
  3. 24 Oct, 2014 14 commits