On Mon, Nov 14, 2016 at 05:56:49AM +0100, Michael Matz wrote:
> With this patch there are now no regressions on x86-64-linux (bootstrapped 
> with all languages+ada).  Okay for trunk?

I build cross-compilers for this for a whole bunch of archs, and built
Linux with that, to see what effect this has.  This is the code size
generated before and after the patch; "0" means something failed to
build (either the compiler, for the mips targets and tilegx after the
patch, or Linux):

                before    after
       alpha   5410232   5410264
         arc   3624274   3624338
         arm         0         0
       arm64   9086689   9082593
    blackfin   1963170   1963226
         c6x   2086879   2086911
        cris   2186162   2186130
         frv   3623264   3623264
       h8300   1052810   1052850
        i386   9723021   9721407
        ia64  15243432  15244136
        m32r   3415580   3415580
        m68k   3221030   3221070
  microblaze         0         0
        mips         0         0
      mips64         0         0
     mn10300   2349253   2349237
       nios2   3172110   3172182
      parisc   8241147   8241147
    parisc64   7197909   7196853
     powerpc   8396871   8396863
   powerpc64  14908442  14907866
        s390  12579952  12579568
          sh   2819700   2819716
     shnommu   1360512   1360512
       sparc   3734865   3734881
     sparc64   5932081   5932249
      tilegx  10839527         0
     tilepro  10092546  10092610
      x86_64  10349451  10349038
      xtensa   1766572   1766572

So the patch helps nicely on many targets.  I looked into the regressions;
they all seem to be just unlucky, noise, or bad rtx_cost.  The tilegx build
fail is a target bug building _negvsi2.o -- the backend accepts shifts by
70 or 87 bits, but the assembler doesn't ;-)

> @@ -11994,6 +12006,29 @@ simplify_comparison (enum rtx_code code, rtx *pop0, 
> rtx *pop1)
>         if (subreg_lowpart_p (op0)
>             && GET_MODE_PRECISION (GET_MODE (SUBREG_REG (op0))) < mode_width)
>           ;
> +       else if (subreg_lowpart_p (op0)

Many of these lines start with a space before the tab, please fix.
Okay for trunk with that fixed.  Thank you!


Segher

Reply via email to