From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17055 invoked by alias); 10 Dec 2004 16:21:07 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 16444 invoked from network); 10 Dec 2004 16:20:47 -0000 Received: from unknown (HELO smtp2.fuse.net) (216.68.8.175) by sourceware.org with SMTP; 10 Dec 2004 16:20:47 -0000 Received: from gx6.fuse.net ([66.42.246.223]) by smtp2.fuse.net (InterMail vM.6.01.03.04 201-2131-111-106-20040729) with ESMTP id <20041210161936.MGIR26919.smtp2.fuse.net@gx6.fuse.net> for ; Fri, 10 Dec 2004 11:19:36 -0500 Received: from dellpi.pinski.fam ([66.42.246.223]) by gx6.fuse.net (InterMail vG.1.00.00.00 201-2136-104-20040331) with ESMTP id <20041210161908.NNAP29070.gx6.fuse.net@dellpi.pinski.fam>; Fri, 10 Dec 2004 11:19:08 -0500 Received: from [10.0.0.80] (zhivago.i.pinski.fam [10.0.0.80]) by dellpi.pinski.fam (8.12.2/8.12.1) with ESMTP id iBAGKfVT019159; Fri, 10 Dec 2004 11:20:41 -0500 (EST) In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v619) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <6E9B793A-4AC7-11D9-8186-000A95D692F4@physics.uc.edu> Content-Transfer-Encoding: 7bit Cc: gcc@gcc.gnu.org From: Andrew Pinski Subject: Re: Simple loops not interchanged? Date: Fri, 10 Dec 2004 16:21:00 -0000 To: Richard Guenther X-SW-Source: 2004-12/txt/msg00363.txt.bz2 On Dec 10, 2004, at 10:36 AM, Richard Guenther wrote: > Hi! > > I expected -ftree-loop-linear to exchange loops in > > double foo(double *a) > { > int i,j; > double r = 0.0; > for (i=0; i<8; ++i) > for (j=0; j<8; ++j) > r += a[j*8+i]; > return r; > } > > but it tells me (regardless of loop order) that > "Won't transform loop. Optimal transform is the identity transform" > which I cannot believe, obviously. > > What's going wrong here? First file a bug. Second the loop linearizer loves ARRAY_REF and not INDIRECT_REF for 4.1, we should be able to get MEM_REF which is like ARRAY_REF and the loop lineaerizer will just do its job. I tested the theory by having a local array instead of passing the pointer. Thanks, Andrew Pinski