/* Instruction scheduling pass. This file contains definitions used
internally in the scheduler.
- Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012
+ Free Software Foundation, Inc.
This file is part of GCC.
/* If bb is empty, and we're skipping to loop exits, then
consider bb as a possible gate to the inner loop now. */
while (sel_bb_empty_or_nop_p (bb)
- && in_current_region_p (bb))
+ && in_current_region_p (bb)
+ && EDGE_COUNT (bb->succs) > 0)
{
bb = single_succ (bb);
extern void sel_finish_global_and_expr (void);
extern regset compute_live (insn_t);
+extern bool register_unavailable_p (regset, rtx);
/* Dependence analysis functions. */
extern void sel_clear_has_dependence (void);
extern bool in_current_region_p (basic_block);
extern basic_block fallthru_bb_of_jump (rtx);
-extern void sel_init_bbs (bb_vec_t, basic_block);
+extern void sel_init_bbs (bb_vec_t);
extern void sel_finish_bbs (void);
extern struct succs_info * compute_succs_info (insn_t, short);