From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13243 invoked by alias); 25 Jan 2005 11:16:41 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 13112 invoked by alias); 25 Jan 2005 11:16:14 -0000 Date: Tue, 25 Jan 2005 11:16:00 -0000 Message-ID: <20050125111614.13110.qmail@sourceware.org> From: "rakdver at atrey dot karlin dot mff dot cuni dot cz" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20041121145949.18595.pinskia@gcc.gnu.org> References: <20041121145949.18595.pinskia@gcc.gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug tree-optimization/18595] [4.0 Regression] IV-OPTS is O(N^3) X-Bugzilla-Reason: CC X-SW-Source: 2005-01/txt/msg03663.txt.bz2 List-Id: ------- Additional Comments From rakdver at atrey dot karlin dot mff dot cuni dot cz 2005-01-25 11:16 ------- Subject: Re: [4.0 Regression] IV-OPTS is O(N^3) > > How? If the reference is left in symbolic form, it means that you know > > nothing about its value, so the only thing you can do with it is to > > check its equality/inequality, in code like > > > > while (...) > > { > > i = something_weird (); > > > > a[i] = ...; (a) > > a[i+1] = ...; (b) > > a[i] = ...; (c) > > } > > > > The following is probably a more frequent case: > > i = 0 > x = something_weird () or a function parameter > loop > i = i + 1 > a[i] = ... > ... = a[i + x] > endloop > > where you end with a symbolic distance vector. But here x is a loop invariant. Nothing would change here if we were keeping the evolutions fully instantiated. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18595