From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26735 invoked by alias); 11 Jun 2010 18:28:57 -0000 Received: (qmail 26112 invoked by alias); 11 Jun 2010 18:28:40 -0000 Date: Fri, 11 Jun 2010 18:28:00 -0000 Message-ID: <20100611182840.26111.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/44483] [4.6 regression] gcc consumes all available memory when optimizing In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "spop 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-06/txt/msg01340.txt.bz2 ------- Comment #6 from spop at gcc dot gnu dot org 2010-06-11 18:28 ------- Subject: Bug 44483 Author: spop Date: Fri Jun 11 18:28:17 2010 New Revision: 160625 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=160625 Log: Fix PR44483: incrementally gimplify BB predicates to avoid redundant computations. 2010-06-11 Sebastian Pop PR middle-end/44483 * tree-if-conv.c (bb_predicate_s): New struct. (bb_predicate_p): New. (bb_has_predicate): New. (bb_predicate): New. (set_bb_predicate): New. (bb_predicate_gimplified_stmts): New. (set_bb_predicate_gimplified_stmts): New. (add_bb_predicate_gimplified_stmts): New. (init_bb_predicate): New. (free_bb_predicate): New. (is_predicated): Use bb_predicate. (add_to_predicate_list): Use bb_predicate and set_bb_predicate. (predicate_bbs): Same. Gimplify the condition of the basic blocks before processing their successors. (clean_predicate_lists): Removed. (find_phi_replacement_condition): Use bb_predicate. (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless computations. (insert_gimplified_predicates): New. (combine_blocks): Call insert_gimplified_predicates. (tree_if_conversion): Call free_bb_predicate instead of clean_predicate_lists. * gcc.dg/tree-ssa/pr44483.c: New. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/pr44483.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-if-conv.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44483