--- Comment #17 from ubizjak at gmail dot com 2009-07-03 08:46 ---
(In reply to comment #16)
One of the cases SCEV is confused about pointer-plus offsets being sizetype:
Do we have a solution for this problem...?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34163
--- Comment #18 from rguenther at suse dot de 2009-07-03 09:08 ---
Subject: Re: [4.3/4.4/4.5 Regression] 10% performance
regression since Nov 1 on Polyhedron's NF on AMD64
On Fri, 3 Jul 2009, ubizjak at gmail dot com wrote:
--- Comment #17 from ubizjak at gmail dot com
--- Comment #19 from rguenth at gcc dot gnu dot org 2009-07-03 11:05
---
In fact, in this case we have the C equivalent
int i;
long j = (long)(i - 1);
vs.
long j = (long)i - 1;
which I believe are equivalent if overflow is undefined (or i - 1 does not
wrap).
It is just that
--- Comment #20 from rguenth at gcc dot gnu dot org 2009-07-03 11:14
---
Before:
Time for setup 0.139
Time per iteration 0.271
Total Time 6.649
Time for setup 0.136
Time per iteration 0.265
Total Time 10.210
Time for setup
--- Comment #21 from rguenth at gcc dot gnu dot org 2009-07-03 11:22
---
Created an attachment (id=18133)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18133action=view)
patch
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34163
--- Comment #22 from rguenth at gcc dot gnu dot org 2009-07-03 14:11
---
Subject: Bug 34163
Author: rguenth
Date: Fri Jul 3 14:11:14 2009
New Revision: 149207
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149207
Log:
2009-07-03 Richard Guenther rguent...@suse.de
PR
--- Comment #14 from ubizjak at gmail dot com 2009-06-25 08:25 ---
(In reply to comment #13)
Predictive commoning does exactly what you want.
It is not effective for the testcase in Comment #9. The dumps for innermost
loop are the same for -O2 -funroll-loops [-fpredictive-commoning]:
--- Comment #15 from ubizjak at gmail dot com 2009-06-25 08:31 ---
(In reply to comment #14)
(In reply to comment #13)
Predictive commoning does exactly what you want.
Predictive commoning failed: no suitable chains
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34163
--- Comment #16 from rguenth at gcc dot gnu dot org 2009-06-25 09:01
---
Executing predictive commoning without unrolling.
with -m32. One of the cases SCEV is confused about pointer-plus offsets
being sizetype:
(Data Ref:
stmt: (*x_58(D))[D.1627_54] = D.1638_71;
ref: