From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12112 invoked by alias); 4 Jul 2007 05:49:54 -0000 Received: (qmail 12032 invoked by alias); 4 Jul 2007 05:49:43 -0000 Date: Wed, 04 Jul 2007 05:49:00 -0000 Message-ID: <20070704054943.12031.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/31966] [4.1/4.2 Regression] Miscompiles valid code with -ftree-vectorize In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "uros 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: 2007-07/txt/msg00449.txt.bz2 ------- Comment #11 from uros at gcc dot gnu dot org 2007-07-04 05:49 ------- Subject: Bug 31966 Author: uros Date: Wed Jul 4 05:49:31 2007 New Revision: 126302 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126302 Log: PR tree-optimization/31966 PR tree-optimization/32533 * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not "basic_block" description as its third argument. Update function calls to get destination bb from "edge" argument. Save "cond" into aux field of the edge. Update prototype for changed arguments. (if_convertible_loop_p): Clear aux field of incoming edges if bb contains phi node. (find_phi_replacement_condition): Operate on incoming edges, not on predecessor blocks. If there is a condition saved in the incoming edge aux field, AND it with incoming bb predicate. Return source bb of the first edge. (clean_predicate_lists): Clean aux field of outgoing node edges. (tree_if_conversion): Do not initialize cond variable. Move variable declaration into the loop. (replace_phi_with_cond_gimple_modify_stmt): Remove unneded initializations of new_stmt, arg0 and arg1 variables. testsuite/ChangeLog: PR tree-optimization/31966 PR tree-optimization/32533 * gcc.dg/tree-ssa/pr31966.c: New runtime test. * gfortran.dg/pr32533.f90: Ditto. Added: branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/pr31966.c branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/pr32533.f90 Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/testsuite/ChangeLog branches/gcc-4_1-branch/gcc/tree-if-conv.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31966