/* Instruction scheduling pass. This file contains definitions used
internally in the scheduler.
- Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GCC.
/* Insn, which has been scheduled last on this fence. */
rtx last_scheduled_insn;
+ /* The last value of can_issue_more variable on this fence. */
+ int issue_more;
+
/* If non-NULL force the next scheduled insn to be SCHED_NEXT. */
rtx sched_next;
#define FENCE_DC(F) ((F)->dc)
#define FENCE_TC(F) ((F)->tc)
#define FENCE_LAST_SCHEDULED_INSN(F) ((F)->last_scheduled_insn)
+#define FENCE_ISSUE_MORE(F) ((F)->issue_more)
#define FENCE_EXECUTING_INSNS(F) ((F)->executing_insns)
#define FENCE_READY_TICKS(F) ((F)->ready_ticks)
#define FENCE_READY_TICKS_SIZE(F) ((F)->ready_ticks_size)
/* Traverse all loop headers. */
for (i = 0; VEC_iterate (edge, exits, i, e); i++)
- if (in_current_region_p (e->dest))
+ if (in_current_region_p (e->dest)
+ || inner_loop_header_p (e->dest))
{
VEC(edge, heap) *next_exits = get_all_loop_exits (e->dest);