/* Swing Modulo Scheduling implementation.
- Copyright (C) 2004, 2005, 2006
+ Copyright (C) 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
Contributed by Ayal Zaks and Mustafa Hagog <zaks,mustafa@il.ibm.com>
/* Put the prolog on the entry edge. */
e = loop_preheader_edge (loop);
- split_edge_and_insert (e, get_insns());
+ split_edge_and_insert (e, get_insns ());
end_sequence ();
/* Put the epilogue on the exit edge. */
gcc_assert (single_exit (loop));
e = single_exit (loop);
- split_edge_and_insert (e, get_insns());
+ split_edge_and_insert (e, get_insns ());
end_sequence ();
}
gcov_type trip_count = 0;
loop_optimizer_init (LOOPS_HAVE_PREHEADERS
- | LOOPS_HAVE_MARKED_SINGLE_EXITS);
+ | LOOPS_HAVE_RECORDED_EXITS);
if (!current_loops)
return; /* There are no loops to schedule. */
df = NULL;
/* We don't want to perform SMS on new loops - created by versioning. */
- FOR_EACH_LOOP (li, loop, LI_ONLY_OLD)
+ FOR_EACH_LOOP (li, loop, 0)
{
rtx head, tail;
rtx count_reg, count_init;
bool unscheduled_nodes = false;
if (dump_file)
- fprintf(dump_file, "Starting with ii=%d\n", ii);
+ fprintf (dump_file, "Starting with ii=%d\n", ii);
if (try_again_with_larger_ii)
{
try_again_with_larger_ii = false;
}
/* 2. Try scheduling u in window. */
if (dump_file)
- fprintf(dump_file, "Trying to schedule node %d in (%d .. %d) step %d\n",
- u, start, end, step);
+ fprintf (dump_file,
+ "Trying to schedule node %d in (%d .. %d) step %d\n",
+ u, start, end, step);
/* use must_follow & must_precede bitmaps to determine order
of nodes within the cycle. */
SET_BIT (sched_nodes, u);
success = 1;
if (dump_file)
- fprintf(dump_file, "Schedule in %d\n", c);
+ fprintf (dump_file, "Schedule in %d\n", c);
break;
}
}