This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/16001] [3.5? Regression] unable to find a register to spill in class `AREG' (-O2 -funroll-loops)


------- Additional Comments From belyshev at lubercy dot com  2004-06-21 11:18 -------
'backported' to mainline. Introduced by:

2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* 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  <rth@redhat.com>

	* 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]