From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4349 invoked by alias); 7 Dec 2006 18:18:22 -0000 Received: (qmail 4272 invoked by uid 48); 7 Dec 2006 18:18:09 -0000 Date: Thu, 07 Dec 2006 18:18:00 -0000 Message-ID: <20061207181809.4271.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/30105] missed PRE (add) In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pinskia 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: 2006-12/txt/msg00627.txt.bz2 ------- Comment #2 from pinskia at gcc dot gnu dot org 2006-12-07 18:18 ------- Actually this is a PRE opertunity. if we look into .102t.final_cleanup, we notice we did the load PRE: :; prephitmp.32 = *data; prephitmp.38 = *(data + 12B); i = 1; goto (); :; *((int *) ((unsigned int) *(data + 8B) * 4) + data) = 2; prephitmp.32 = *data; prephitmp.38 = *(data + 12B); i = prephitmp.32 + 1 + prephitmp.38; :; *(data + 16B) = prephitmp.38 + prephitmp.32; but did not do the other part of the pre for the add. I think this is a reassiocation issue: : ... j_15 = D.1620_12 + 1; i_16 = j_15 + D.1622_14; # prephitmp.32_37 = PHI ; # prephitmp.32_35 = PHI ; # prephitmp.30_33 = PHI ; # i_1 = PHI <1(5), i_16(3)>; :; .... D.1620_18 = prephitmp.32_35; D.1621_19 = prephitmp.30_33; D.1622_20 = prephitmp.32_37; D.1624_21 = D.1622_20 + D.1620_18; -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|missed code hoisting |missed PRE (add) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30105