From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7894 invoked by alias); 21 Jun 2004 11:18:40 -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 7854 invoked by uid 48); 21 Jun 2004 11:18:37 -0000 Date: Mon, 21 Jun 2004 11:18:00 -0000 Message-ID: <20040621111837.7853.qmail@sourceware.org> From: "belyshev at lubercy dot com" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20040615150450.16001.rguenth@tat.physik.uni-tuebingen.de> References: <20040615150450.16001.rguenth@tat.physik.uni-tuebingen.de> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug rtl-optimization/16001] [3.5? Regression] unable to find a register to spill in class `AREG' (-O2 -funroll-loops) X-Bugzilla-Reason: CC X-SW-Source: 2004-06/txt/msg02593.txt.bz2 List-Id: ------- Additional Comments From belyshev at lubercy dot com 2004-06-21 11:18 ------- 'backported' to mainline. Introduced by: 2004-06-20 Zdenek Dvorak * loop-invariant.c: New file. * Makefile.in (loop-invariant.o): New. * cfgloop.h (global_cost_for_size, init_set_costs, move_loop_invariants): Declare. * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New functions. (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New variables. * common.opt (floop-optimize2, fmove-loop-invariants): New options. * loop-init.c (loop_optimizer_init): Call init_set_costs. * passes.c (rest_of_handle_loop2): Call move_loop_invariants. (rest_of_compilation): Check flag_loop_optimize2. * toplev.c (process_options): Handle flag_loop_optimize2. * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document. * doc/passes.texi (loop-invariant.c): Document. ... and then hidden (fixed?) by: 2004-06-21 Richard Henderson * c-common.c (verify_sequence_points): Export. (c_expand_expr_stmt): Move to c-typeck.c. * c-common.h (c_expand_expr_stmt): Remove. (verify_sequence_points): Declare. * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt. * c-parse.in (for_init_stmt, stmt): Likewise. * c-tree.h (c_finish_expr_stmt): Declare. (c_tree_expr_nonnegative_p): Remove. * c-typeck.c (c_tree_expr_nonnegative_p): Remove. (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p. (emit_side_effect_warnings): New. (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it. (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions. Use emit_side_effect_warnings. (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR. * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR. * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR with void initializer. (gimplify_target_expr): Handle void BIND_EXPR initializer. * tree-inline.c (estimate_num_insns_1): Fix type lookup for INIT_EXPR and MODIFY_EXPR. * objc/objc-act.c (build_module_descriptor): Use add_stmt instead of c_expand_expr_stmt. -- What |Removed |Added ---------------------------------------------------------------------------- GCC build triplet|i686-pc-linux-gnu | GCC host triplet|i686-pc-linux-gnu | Summary|unable to find a register to|[3.5? Regression] unable to |spill in class `AREG' (-O2 -|find a register to spill in |funroll-loops) |class `AREG' (-O2 -funroll- | |loops) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16001