[Bug target/39423] [SH] performance regression: lost mov @(disp,Rn)

2009-03-12 Thread chrbr at gcc dot gnu dot org
--- Comment #9 from chrbr at gcc dot gnu dot org 2009-03-12 15:04 --- The attached patch improves the SH generation, but I noticed a small regression with the ARM that could make use before of a shifted constant addressing mode, so not using the extra register for the value. A target

[Bug target/39423] [SH] performance regression: lost mov @(disp,Rn)

2009-03-12 Thread chrbr at gcc dot gnu dot org
--- Comment #10 from chrbr at gcc dot gnu dot org 2009-03-12 15:10 --- Created an attachment (id=17447) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17447action=view) SH illustrative patch for feedback only. win on SH. lost on ARM 2009-03-12 Christian Bruel

[Bug target/39423] [SH] performance regression: lost mov @(disp,Rn)

2009-03-11 Thread chrbr at gcc dot gnu dot org
--- Comment #2 from chrbr at gcc dot gnu dot org 2009-03-11 08:46 --- I observed some large performance regressions in 4.3 and upwards for many benchmarks for the superh targets, There are many causes but the main one is reduced to the indirect+offset access : int foo (int tab[], int

[Bug target/39423] [SH] performance regression: lost mov @(disp,Rn)

2009-03-11 Thread chrbr at gcc dot gnu dot org
-- chrbr at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |chrbr at gcc dot gnu dot org |dot org

[Bug target/39423] [SH] performance regression: lost mov @(disp,Rn)

2009-03-11 Thread ebotcazou at gcc dot gnu dot org
--- Comment #3 from ebotcazou at gcc dot gnu dot org 2009-03-11 09:06 --- See http://gcc.gnu.org/ml/gcc-patches/2008-12/msg01134.html -- ebotcazou at gcc dot gnu dot org changed: What|Removed |Added

[Bug target/39423] [SH] performance regression: lost mov @(disp,Rn)

2009-03-11 Thread chrbr at gcc dot gnu dot org
--- Comment #4 from chrbr at gcc dot gnu dot org 2009-03-11 09:30 --- (In reply to comment #3) See http://gcc.gnu.org/ml/gcc-patches/2008-12/msg01134.html Thanks, I tried your patch against a 4.3.3 base but it didn't fix the problem, your patch canonicalizes while what I need is a

[Bug target/39423] [SH] performance regression: lost mov @(disp,Rn)

2009-03-11 Thread ebotcazou at gcc dot gnu dot org
--- Comment #7 from ebotcazou at gcc dot gnu dot org 2009-03-11 10:25 --- I thought that the now what as with your patch. So it looks indeed like quite similar to what I see. I'll try to see why it doesn't solve my case. Reverting to the old canonicalization at the tree level is not

[Bug target/39423] [SH] performance regression: lost mov @(disp,Rn)

2009-03-11 Thread chrbr at gcc dot gnu dot org
--- Comment #8 from chrbr at gcc dot gnu dot org 2009-03-11 14:07 --- I have picky disabled the canonicalization in fold_plusminus_mult_expr for identical constants that are power of 2, so my mov @(disp, rn) is back :-(. For some reason your patch let the base+index computation