From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7983 invoked by alias); 13 Jan 2010 13:16:38 -0000 Received: (qmail 7457 invoked by uid 48); 13 Jan 2010 13:16:17 -0000 Date: Wed, 13 Jan 2010 13:16:00 -0000 Message-ID: <20100113131617.7456.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/42717] [4.5 Regression] ice: verify_ssa failed 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-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-01/txt/msg01483.txt.bz2 ------- Comment #2 from rguenth at gcc dot gnu dot org 2010-01-13 13:16 ------- This: /* We are sure that for every live PHI we are seeing control dependent BB. This means that we can look up the end of control dependent path leading to the PHI itself. */ FOR_EACH_EDGE (e2, ei, post_dom_bb->preds) if (e2 != e && dominated_by_p (CDI_POST_DOMINATORS, e->src, e2->src)) break; is broken. We redirect lbl_42 -> bb 4 to bb 7 in : lbl_42: p_20.0_8 = (signed char) p_20_7(D); D.2736_9 = (int) p_20.0_8; D.2769_26 = D.2736_9 ^ 1; D.2766_31 = D.2769_26 & -2; if (D.2766_31 != 0) goto ; else goto ; : D.2763_32 = (signed char) D.2766_31; goto ; : D.2764_34 = p_20_7(D) + 255; D.2763_35 = (signed char) D.2764_34; : # D.2763_36 = PHI p_20_11 = (unsigned char) D.2763_36; : # l_23_2 = PHI but instead of finding 6 -> 7 we find 12 -> 7, a loop backedge. We have to find the correct path leading to the PHI node in case there is an ambiguity like here. Not sure if excluding back edges is enough, but certainly a back edge cannot be the correct one? Well. I'm testing a patch. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2010-01-13 01:17:47 |2010-01-13 13:16:16 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42717