From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27222 invoked by alias); 12 Feb 2010 21:46:37 -0000 Received: (qmail 26872 invoked by uid 48); 12 Feb 2010 21:46:26 -0000 Date: Fri, 12 Feb 2010 21:46:00 -0000 Message-ID: <20100212214626.26871.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/18316] Missed IV optimization In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "steven 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: 2010-02/txt/msg01212.txt.bz2 ------- Comment #14 from steven at gcc dot gnu dot org 2010-02-12 21:46 ------- On x86_64 the two functions still give different code: ;; Function strength_test2 (strength_test2) strength_test2 (int * data) { unsigned int ivtmp.12; int * pretmp.9; int * pretmp.7; int k; int D.2743; int D.2741; int * D.2740; long unsigned int D.2739; long unsigned int D.2738; int D.2737; : k_3 = *data_2(D); pretmp.7_24 = data_2(D) + 8; pretmp.9_26 = data_2(D) + 4; ivtmp.12_25 = (unsigned int) k_3; : # ivtmp.12_5 = PHI D.2737_6 = *pretmp.7_24; D.2738_7 = (long unsigned int) D.2737_6; D.2739_8 = D.2738_7 * 4; D.2740_9 = data_2(D) + D.2739_8; *D.2740_9 = 2; D.2741_28 = (int) ivtmp.12_5; D.2743_13 = *pretmp.9_26; ivtmp.12_12 = ivtmp.12_5 + ivtmp.12_25; if (D.2743_13 > D.2741_28) goto ; else goto ; : return; } ;; Function strength_result2 (strength_result2) strength_result2 (int * data) { unsigned int D.2772; unsigned int D.2773; unsigned int D.2774; int * pretmp.21; int i; int k; int D.2735; int * D.2733; long unsigned int D.2732; long unsigned int D.2731; int D.2730; : k_3 = *data_2(D); pretmp.21_22 = data_2(D) + 8; pretmp.21_23 = data_2(D) + 4; : # i_1 = PHI <0(2), i_25(3)> D.2730_6 = *pretmp.21_22; D.2731_7 = (long unsigned int) D.2730_6; D.2732_8 = D.2731_7 * 4; D.2733_9 = data_2(D) + D.2732_8; *D.2733_9 = 2; D.2772_5 = (unsigned int) i_1; D.2773_11 = (unsigned int) k_3; D.2774_24 = D.2772_5 + D.2773_11; i_25 = (int) D.2774_24; D.2735_12 = *pretmp.21_23; if (D.2735_12 > i_25) goto ; else goto ; : return; } -- steven at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2005-12-21 03:39:56 |2010-02-12 21:46:26 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18316