[Bug target/51244] SH Target: Inefficient conditional branch

2012-09-04 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #52 from Oleg Endo 2012-09-04 08:03:08 UTC --- Author: olegendo Date: Tue Sep 4 08:03:01 2012 New Revision: 190909 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190909 Log: PR target/51244 * config/sh/sh.c (prepare_c

[Bug target/51244] SH Target: Inefficient conditional branch

2012-08-31 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #51 from Oleg Endo 2012-08-31 15:50:35 UTC --- (In reply to comment #50) Thanks! Hmm .. difficult. There seem to be 17 improvements and 10 dis-improvements, but the dis-improvements seem heavier. The improvement avg is 1.1% and th

[Bug target/51244] SH Target: Inefficient conditional branch

2012-08-31 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #50 from Kazumoto Kojima 2012-08-31 10:54:44 UTC --- (In reply to comment #49) > Kaz, if you have some time, could you please gather some CSiBE runtime numbers > for '-mpretend-cmove' and without it? Here is the runtime result with -

[Bug target/51244] SH Target: Inefficient conditional branch

2012-08-30 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #49 from Oleg Endo 2012-08-30 22:54:23 UTC --- Kaz, if you have some time, could you please gather some CSiBE runtime numbers for '-mpretend-cmove' and without it? I've compared the result-size of the CSiBE set and with -mpretend-cmo

[Bug target/51244] SH Target: Inefficient conditional branch

2012-08-20 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #48 from Oleg Endo 2012-08-20 20:51:12 UTC --- Author: olegendo Date: Mon Aug 20 20:51:06 2012 New Revision: 190544 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190544 Log: PR target/51244 * config/sh/sh.md (*cset_ze

[Bug target/51244] SH Target: Inefficient conditional branch

2012-08-12 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #47 from Oleg Endo 2012-08-12 22:47:21 UTC --- Author: olegendo Date: Sun Aug 12 22:47:15 2012 New Revision: 190331 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190331 Log: PR target/51244 * config/sh/sh.md: Add spli

[Bug target/51244] SH Target: Inefficient conditional branch

2012-08-09 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #46 from Oleg Endo 2012-08-09 15:55:23 UTC --- Author: olegendo Date: Thu Aug 9 15:55:18 2012 New Revision: 190258 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190258 Log: PR target/51244 * config/sh/sh.md: Add negc

[Bug target/51244] SH Target: Inefficient conditional branch

2012-07-29 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #45 from Oleg Endo 2012-07-30 06:46:40 UTC --- Author: olegendo Date: Mon Jul 30 06:46:36 2012 New Revision: 189953 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=189953 Log: PR target/51244 * config/sh/sh.md (mov_neg_

[Bug target/51244] SH Target: Inefficient conditional branch

2012-07-25 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #44 from Oleg Endo 2012-07-26 00:20:05 UTC --- Author: olegendo Date: Thu Jul 26 00:19:58 2012 New Revision: 189877 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=189877 Log: PR target/51244 * config/sh/sh.opt (mzdcbra

[Bug target/51244] SH Target: Inefficient conditional branch

2012-07-23 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #43 from Oleg Endo 2012-07-23 23:29:02 UTC --- I have noticed that on SH the CANONICALIZE_COMPARISON macro is not defined, although it seems to be useful for the combine pass. Another thing that I'd like to try out is using zero-disp

[Bug target/51244] SH Target: Inefficient conditional branch

2012-07-23 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #42 from Oleg Endo 2012-07-23 22:57:42 UTC --- Author: olegendo Date: Mon Jul 23 22:57:36 2012 New Revision: 189797 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=189797 Log: PR target/51244 * config/sh/predicates.md (

[Bug target/51244] SH Target: Inefficient conditional branch

2012-07-08 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #41 from Oleg Endo 2012-07-08 15:03:26 UTC --- Author: olegendo Date: Sun Jul 8 15:03:21 2012 New Revision: 189360 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=189360 Log: PR target/51244 * config/sh/sh.md (*branch_

[Bug target/51244] SH Target: Inefficient conditional branch

2012-07-02 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #40 from Oleg Endo 2012-07-02 19:24:03 UTC --- Author: olegendo Date: Mon Jul 2 19:23:56 2012 New Revision: 189177 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=189177 Log: PR target/51244 * config/sh/predicates.md (

[Bug target/51244] SH Target: Inefficient conditional branch

2012-06-30 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #39 from Oleg Endo 2012-06-30 12:00:38 UTC --- Created attachment 27724 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27724 Another patch I have noticed that the branch_true and branch_false insns also require some subreg varia

[Bug target/51244] SH Target: Inefficient conditional branch

2012-05-08 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #38 from Oleg Endo 2012-05-08 21:36:35 UTC --- Author: olegendo Date: Tue May 8 21:36:30 2012 New Revision: 187298 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=187298 Log: PR target/51244 * config/sh/sh.md (*branch_

[Bug target/51244] SH Target: Inefficient conditional branch

2012-05-07 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #37 from Oleg Endo 2012-05-07 20:50:31 UTC --- Created attachment 27336 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27336 Supplementary patch As of rev 187217, the pr51244-1.c target testcase fails at least for m4*. The attac

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-20 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #36 from Oleg Endo 2012-03-20 20:33:30 UTC --- I have created a new PR 52642 for the libstdc++ failures.

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-19 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #35 from Kazumoto Kojima 2012-03-20 01:45:14 UTC --- (In reply to comment #34) > Interesting, thanks! I'll also test your patch and send it around, OK? OK, thanks! > I'm a bit confused... was the issue caused by my patches to for t

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-19 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #34 from Oleg Endo 2012-03-20 01:04:19 UTC --- (In reply to comment #33) > FYI, looking into the libstdc++ failures for sh4-unknown-linux-gnu, > it seems that the call insn was swapped before prologue frame insns > and then it makes u

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-15 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #33 from Kazumoto Kojima 2012-03-15 07:52:21 UTC --- (In reply to comment #31) > Created attachment 26859 [details] > testresult on sh4-unknown-linux-gnu [trunk revision 185088]. FYI, looking into the libstdc++ failures for sh4-unkno

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-11 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #32 from Oleg Endo 2012-03-11 13:18:12 UTC --- Author: olegendo Date: Sun Mar 11 13:18:08 2012 New Revision: 185192 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185192 Log: PR target/51244 * config/sh/sh.md (movnegt)

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-09 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #31 from Kazumoto Kojima 2012-03-09 10:36:31 UTC --- Created attachment 26859 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26859 A test result testresult on sh4-unknown-linux-gnu [trunk revision 185088].

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-09 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #30 from Oleg Endo 2012-03-09 10:02:25 UTC --- (In reply to comment #29) > (In reply to comment #28) > Regtest on sh4-unknown-lunix-gnu has been done successfully. > Oleg, your patch is pre-approved. Thanks a lot! Could you please at

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-09 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #29 from Kazumoto Kojima 2012-03-09 08:40:32 UTC --- (In reply to comment #28) Regtest on sh4-unknown-lunix-gnu has been done successfully. Oleg, your patch is pre-approved.

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-08 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #28 from Kazumoto Kojima 2012-03-09 01:44:52 UTC --- (In reply to comment #27) > Created attachment 26858 [details] > Patch for the patch Looks all fortran regressions gone away. I'll run full tests on sh4-unknown-lunix-gnu.

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-08 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 Oleg Endo changed: What|Removed |Added Attachment #26853|0 |1 is obsolete|

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-08 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #26 from Kazumoto Kojima 2012-03-08 11:16:39 UTC --- Created attachment 26855 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26855 unworked .s file associated_4_bad.s I've attached .s files against gfortran.dg/associated_4.f90 -

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-08 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #25 from Kazumoto Kojima 2012-03-08 11:13:39 UTC --- Created attachment 26854 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26854 worked .s file associated_4_good.s

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-08 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #24 from Kazumoto Kojima 2012-03-08 11:11:32 UTC --- (In reply to comment #23) > Kaz, if you have some time, could you try it out in your setup, too please? On trunk revision 185088, for sh4-unknown-linux-gnu, the result of compare_t

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-07 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #23 from Oleg Endo 2012-03-08 01:25:21 UTC --- Created attachment 26853 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26853 Patch for the patch The attached patch seems to fix the problem. GCC (C,C++) and CSiBE set compiles wit

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-06 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #22 from Oleg Endo 2012-03-06 23:42:15 UTC --- This is a reduced test case: int test (volatile int* a, int b, int c) { a[1] = b != 0; if (b == 0) a[10] = c; return b == 0; } with '-O2 -m4-single -mb' it gets compiled to:

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-06 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #21 from Oleg Endo 2012-03-06 11:29:17 UTC --- (In reply to comment #20) > I've confirmed that 22_locale/ctype/is/char/3.cc doesn't fail > if linking with libstdc++.a which is built with the compiler > without r184966 changes. The .s

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-06 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #20 from Kazumoto Kojima 2012-03-06 10:40:31 UTC --- (In reply to comment #16) > Can we keep the r184966 changes anyways? I will keep an eye on these failures > whether I can reproduce them. If you have some time, could you please s

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-06 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #19 from Kazumoto Kojima 2012-03-06 10:38:22 UTC --- Created attachment 26839 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26839 unworked .s file ctype_configure_char_bad.s

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-06 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #18 from Kazumoto Kojima 2012-03-06 10:37:13 UTC --- Created attachment 26838 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26838 worked .s file ctype_configure_char_good.s

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-06 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #17 from Kazumoto Kojima 2012-03-06 10:36:01 UTC --- Created attachment 26837 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26837 preprocessed file ctype_configure_char.i

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-06 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #16 from Oleg Endo 2012-03-06 09:48:31 UTC --- (In reply to comment #15) > I've seen same failures on sh4-unknown-linux-gnu for trunk rev 184971. > With backing r184966 changes out, they went away. Weird. Can we keep the r184966 cha

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-06 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #15 from Kazumoto Kojima 2012-03-06 08:49:27 UTC --- (In reply to comment #14) > I've run the testsuite on rev 184966 (without fortran though), but the > failures > that you've mentioned did not show up. Usually when I rebuild the w

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-06 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #14 from Oleg Endo 2012-03-06 08:26:06 UTC --- (In reply to comment #13) > On Tue, 2012-03-06 at 08:13 +0900, Kaz Kojima wrote: > > > I've tested your latest patch on sh4-unknown-linux-gnu with trunk > > revision 184872. It looks th

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-05 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #13 from Oleg Endo 2012-03-05 23:37:35 UTC --- On Tue, 2012-03-06 at 08:13 +0900, Kaz Kojima wrote: > I've tested your latest patch on sh4-unknown-linux-gnu with trunk > revision 184872. It looks that some new failures are poping up

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-05 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #12 from Oleg Endo 2012-03-05 23:12:27 UTC --- Author: olegendo Date: Mon Mar 5 23:12:20 2012 New Revision: 184966 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184966 Log: PR target/51244 * config/sh/sh.c (sh_expand

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-04 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 Oleg Endo changed: What|Removed |Added Attachment #26812|0 |1 is obsolete|

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-03 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #10 from Oleg Endo 2012-03-03 12:32:29 UTC --- (In reply to comment #9) > Created attachment 26812 [details] > Proposed patch > > I've tested this patch again against rev 184764 (GCC 4.7) with > > make -k check RUNTESTFLAGS="--targe

[Bug target/51244] SH Target: Inefficient conditional branch

2012-03-02 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 Oleg Endo changed: What|Removed |Added Attachment #26191|0 |1 is obsolete|

[Bug target/51244] SH Target: Inefficient conditional branch

2012-02-26 Thread olegendo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 olegendo at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed|

[Bug target/51244] SH Target: Inefficient conditional branch

2011-12-30 Thread oleg.e...@t-online.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #8 from Oleg Endo 2011-12-30 21:21:14 UTC --- (In reply to comment #7) > (In reply to comment #3) > > I haven't ran all tests on it yet, but CSiBE shows average code size > > reduction > > of approx. -0.1% for -m4* with some code siz

[Bug target/51244] SH Target: Inefficient conditional branch

2011-12-28 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #7 from Kazumoto Kojima 2011-12-28 22:25:48 UTC --- (In reply to comment #3) > I haven't ran all tests on it yet, but CSiBE shows average code size reduction > of approx. -0.1% for -m4* with some code size increases in some files. > W

[Bug target/51244] SH Target: Inefficient conditional branch

2011-12-28 Thread oleg.e...@t-online.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #6 from Oleg Endo 2011-12-28 15:59:35 UTC --- (In reply to comment #3) > Created attachment 26191 [details] > Proposed patch to improve some of the issues. > > The attached patch removes the useless sequence and still allows the -1 >

[Bug target/51244] SH Target: Inefficient conditional branch

2011-12-27 Thread oleg.e...@t-online.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #5 from Oleg Endo 2011-12-28 02:44:05 UTC --- (In reply to comment #2) > (In reply to comment #1) > > > > BTW, OT, (a != b || a != c) ? b : c could be reduced to b, I think. > > > > Yes, very much so. > It is reduced to "return b"

[Bug target/51244] SH Target: Inefficient conditional branch

2011-12-27 Thread oleg.e...@t-online.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #4 from Oleg Endo 2011-12-27 23:17:03 UTC --- (In reply to comment #1) > > > return a >= 0 && b >= 0 ? c : d; > > x >= 0 is expanded to the sequence like > > ra = not x > rb = -31 > rc = ra >> (neg rb) > T = (rc == 0) >

[Bug target/51244] SH Target: Inefficient conditional branch

2011-12-27 Thread oleg.e...@t-online.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #3 from Oleg Endo 2011-12-27 22:43:11 UTC --- Created attachment 26191 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26191 Proposed patch to improve some of the issues. (In reply to comment #1) > > [...] > > mov #-1,rn >

[Bug target/51244] SH Target: Inefficient conditional branch

2011-12-27 Thread oleg.e...@t-online.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #2 from Oleg Endo 2011-12-27 21:26:33 UTC --- (In reply to comment #1) > > BTW, OT, (a != b || a != c) ? b : c could be reduced to b, I think. > Yes, very much so. It is reduced to "return b" for -m2, -m2e, -m2a, -m3, -m3e but not

[Bug target/51244] SH Target: Inefficient conditional branch

2011-11-22 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51244 --- Comment #1 from Kazumoto Kojima 2011-11-22 22:33:43 UTC --- > return (a != b || a != c) ? b : c; test_func_0_NG and test_func_1_NG cases are related with the target implementation of cstoresi4. The middle end expands a complex conditional j