From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5445 invoked by alias); 20 Apr 2006 13:54:34 -0000 Received: (qmail 5419 invoked by uid 48); 20 Apr 2006 13:54:31 -0000 Date: Thu, 20 Apr 2006 13:54:00 -0000 Message-ID: <20060420135431.5418.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/27090] FRE does not look past previous type casts 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-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-04/txt/msg01653.txt.bz2 List-Id: ------- Comment #8 from rguenth at gcc dot gnu dot org 2006-04-20 13:54 ------- Which, for the testcase in comment #4 gives us ;; Function f (f) Created value VH.0 for a_1 Created value VH.1 for *VH.0 vuses: (SMT.4_8) Created value VH.2 for (unsigned int *) VH.0 Created value VH.3 for (int *) VH.2 Created value VH.4 for VH.1 + VH.1 Created value VH.5 for _7 exp_gen[0] := { } tmp_gen[0] := { a_1 (VH.0) } avail_out[0] := { a_1 (VH.0) } exp_gen[2] := { a_1 (VH.0) , *VH.0 (VH.1) , (unsigned int *) VH.0 (VH.2) , (int *) VH.2 (VH.3) , VH.1 + VH.1 (VH.4) } tmp_gen[2] := { t_2 (VH.1) , b_3 (VH.2) , c_4 (VH.3) , D.1527_5 (VH.1) , D.1526_6 (VH.4) , _7 (VH.5) } avail_out[2] := { a_1 (VH.0) , t_2 (VH.1) , b_3 (VH.2) , c_4 (VH.3) , D.1526_6 (VH.4) , _7 (VH.5) } exp_gen[1] := { } tmp_gen[1] := { } avail_out[1] := { } Replaced *c_4 with t_2 in D.1527_5 = *c_4; f (a) { int * c; unsigned int * b; int t; int D.1527; int D.1526; : t_2 = *a_1; b_3 = (unsigned int *) a_1; c_4 = (int *) b_3; D.1527_5 = t_2; D.1526_6 = D.1527_5 + t_2; return D.1526_6; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27090