From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18989 invoked by alias); 28 Dec 2004 23:32:03 -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 18946 invoked by uid 48); 28 Dec 2004 23:31:58 -0000 Date: Tue, 28 Dec 2004 23:32:00 -0000 Message-ID: <20041228233158.18945.qmail@sourceware.org> From: "law at redhat dot com" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20041216155140.19038.dje@gcc.gnu.org> References: <20041216155140.19038.dje@gcc.gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug tree-optimization/19038] [4.0 Regression] out-of ssa causing loops to have more than one BB X-Bugzilla-Reason: CC X-SW-Source: 2004-12/txt/msg03817.txt.bz2 List-Id: ------- Additional Comments From law at redhat dot com 2004-12-28 23:31 ------- Yea, the code I've got lying around here to undo unprofitable const/copy propagations definitely helps this code. And better yet, we don't need the full-blown version (which is queued for 4.1). We can get by with the very simplistic version. For the testcase in comment #8 we generate the following .optimized dump: # BLOCK 0 # PRED: ENTRY [100.0%] (fallthru,exec) :; # SUCC: 1 [100.0%] (fallthru,exec) # BLOCK 1 # PRED: 0 [100.0%] (fallthru,exec) 1 [89.0%] (dfs_back,false,exec) :; temp1 = temp2 * xlvj_ - temp3 * zlvj_; temp3 = temp2 * zlvj_ + temp3 * xlvj_; temp2 = temp1; if (temp3 != 0) goto ; else goto ; # SUCC: 2 [11.0%] (loop_exit,true,exec) 1 [89.0%] (dfs_back,false,exec) # BLOCK 2 # PRED: 1 [11.0%] (loop_exit,true,exec) :; return yv1j_ * yv2j_; # SUCC: EXIT [100.0%] } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19038