This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/14046] [tree-ssa regression] address calculation not moved out of innermost loop
- From: "dberlin at dberlin dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Feb 2004 15:40:41 -0000
- Subject: [Bug optimization/14046] [tree-ssa regression] address calculation not moved out of innermost loop
- References: <20040206124008.14046.rguenth@tat.physik.uni-tuebingen.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From dberlin at dberlin dot org 2004-02-06 15:40 -------
Subject: Re: New: [tree-ssa regression] address calculation not moved out of innermost loop
On Feb 6, 2004, at 7:40 AM, rguenth at tat dot physik dot uni-tuebingen
dot de wrote:
> For the simple testcase
>
> void foo(double *a, int o, int f0, int e0, int f1, int e1, int s0, int
> s1)
> {
> for (int i1=f1; i1<=e1; ++i1)
> for (int i0=f0; i0<=e0; ++i0)
> a[o + i0*s0 + i1*s1] = 0.0;
> }
>
> tree-ssa is not able to move the address calculation partly out of the
> innermost
> loop, while 3.4 is able to do this:
On the normal tree-ssa branch, Load PRE would have been able to move
this, but it doesn't because it's too expensive to run load PRE on
calculations that only occur once right now.
Zdenek posted a LICM patch (which should also move it out of the loop),
and committed it to the lno-branch.
--Dan
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14046