From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6646 invoked by alias); 7 Jul 2005 07:47:58 -0000 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 Received: (qmail 6611 invoked by uid 48); 7 Jul 2005 07:47:48 -0000 Date: Thu, 07 Jul 2005 07:47:00 -0000 Message-ID: <20050707074748.6610.qmail@sourceware.org> From: "irar at il dot ibm dot com" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050625151316.22184.micis@gmx.de> References: <20050625151316.22184.micis@gmx.de> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug tree-optimization/22184] tree vectorizer depends on context X-Bugzilla-Reason: CC X-SW-Source: 2005-07/txt/msg00695.txt.bz2 List-Id: ------- Additional Comments From irar at il dot ibm dot com 2005-07-07 07:47 ------- The problem occurs in decision whether the number of loop iterations is greater than zero. The (single) predecessor edge is checked for being EDGE_TRUE_VALUE or EDGE_FALSE_VALUE, and the corresponding predicate is used to make the decision. In the first case (single loop) BB 0 contains predicate 'len>0', its TRUE successor is BB 1, and the fallthru successor of BB 1 is BB 2 - the loop. The condition to check is 'len <= 0', which is therefore simplified to FALSE. In the second case, however, the control flow is more complicated. The loop is in BB 6, its predecessor is BB 3, which has 2 predecessors: BB 5 (with predicate 'len > 0'), and BB 2 - the first loop. The first loop is also guarded by 'len > 0', but this information is not propagated. -- What |Removed |Added ---------------------------------------------------------------------------- CC| |rakdver at atrey dot karlin | |dot mff dot cuni dot cz Last reconfirmed|2005-06-25 18:28:42 |2005-07-07 07:47:46 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22184