From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29364 invoked by alias); 23 Jan 2005 14:36:23 -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 29349 invoked by uid 48); 23 Jan 2005 14:36:20 -0000 Date: Sun, 23 Jan 2005 14:36:00 -0000 Message-ID: <20050123143620.29348.qmail@sourceware.org> From: "belyshev at depni dot sinp dot msu dot ru" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050123013419.19580.belyshev@depni.sinp.msu.ru> References: <20050123013419.19580.belyshev@depni.sinp.msu.ru> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug rtl-optimization/19580] [3.4/4.0 Regression] missed load/store motion X-Bugzilla-Reason: CC X-SW-Source: 2005-01/txt/msg03286.txt.bz2 List-Id: ------- Additional Comments From belyshev at depni dot sinp dot msu dot ru 2005-01-23 14:36 ------- (In reply to comment #8) > Closing this as won't fix. Lets focus on PR19581 instead. Two notes: 1) tree-outof-ssa does not coalesce variables in this case: g.c: g.c.t65.optimized: ------------------------------------------------------------------------ void g () | { | : r [0] += r [2]; | D.1129 = r[0] + r[2]; r [1] += r [0]; | r[0] = D.1129; r [2] += r [1]; | D.1131 = D.1129 + r[1]; } | r[1] = D.1131; | r[2] = D.1131 + r[2]; | return; | ------------------------------------------------------------------------ ... while it does in this: f.c: f.c.t65.optimized: ------------------------------------------------------------------------ void f () | { | : r [0] += r [1]; | r[0] = r[0] + r[1]; r [1] += r [2]; | r[1] = r[1] + r[2]; r [2] += r [0]; | r[2] = r[2] + r[0]; } | return; | ------------------------------------------------------------------------ 2) and disabling -fgcse-lm *fixes* original problem for 3.4 and 4.0. I cannot believe this bug is WONTFIX for 4.0 just because it will be fixed in 4.1 at tree level. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580