From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30572 invoked by alias); 27 May 2009 11:01:55 -0000 Received: (qmail 27392 invoked by uid 48); 27 May 2009 11:01:43 -0000 Date: Wed, 27 May 2009 11:01:00 -0000 Message-ID: <20090527110143.27391.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug fortran/40168] missing unrolling/scalarization/reassoc/free In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-05/txt/msg02115.txt.bz2 ------- Comment #15 from rguenth at gcc dot gnu dot org 2009-05-27 11:01 ------- The issue is not the temporary array but the way how CSE works. In S2 there are simply no CSE opportunities - for example consider t1 = a * b; t2 = t1 * c; t3 = a * c; t4 = t3 * b; The current CSE implementation cannot see the opportunity here. (*b_3(D))[79] = (*b_3(D))[1] * (*s_1(D))[2] * (*s_1(D))[5] * (*s_1(D))[8] * (*s_1(D))[10]; (*b_3(D))[80] = (*b_9(D))[0] * (*s_1(D))[2] * (*s_1(D))[5] * (*s_1(D))[8] * (*s_1(D))[11]; I will try to do something here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40168