From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31150 invoked by alias); 30 Mar 2006 16:43:13 -0000 Received: (qmail 31126 invoked by uid 48); 30 Mar 2006 16:43:10 -0000 Date: Thu, 30 Mar 2006 16:43:00 -0000 Message-ID: <20060330164310.31125.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/26944] [4.1/4.2 Regression] -ftree-ch generates worse code In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dann at godzilla dot ics dot uci dot edu" 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-03/txt/msg02981.txt.bz2 List-Id: ------- Comment #2 from dann at godzilla dot ics dot uci dot edu 2006-03-30 16:43 ------- (In reply to comment #1) > Note that this may be also PRE confusing SCEV in presence of loop headers. Talking about PRE, here's a maybe interesting observation in the PRE dump: :; pretmp.30_53 = Int_Loc.0_4 * 200; pretmp.32_23 = (int[50] *) pretmp.30_53; pretmp.32_11 = pretmp.32_23 + Arr_2_Par_Ref_30; goto (); :; pretmp.27_59 = Int_Loc.0_4 * 200; pretmp.28_45 = (int[50] *) pretmp.27_59; pretmp.28_49 = Arr_2_Par_Ref_30 + pretmp.28_45; # Int_Index_37 = PHI ; :; D.1544_54 = pretmp.27_59; D.1545_55 = pretmp.28_45; D.1546_56 = pretmp.28_49; (*D.1546_56)[Int_Index_37] = Int_Loc_3; Int_Index_58 = Int_Index_37 + 1; if (D.1548_41 >= Int_Index_58) goto ; else goto ; :; goto (); :; # prephitmp.33_40 = PHI ; # prephitmp.33_18 = PHI ; # prephitmp.31_25 = PHI ; Compare pretmp.28_49 with pretmp.32_11, why are the arguments in a different order? Is there something unstable in the PRE algorithm? One has to wonder what are the tree-ch effects on more complex loops. It might be interesting test SPEC with and without tree-ch... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26944