Commit 4fc4d850 by Bernd Schmidt Committed by Bernd Schmidt

bfin.c (bfin_discover_loops): Delete empty loops.

	* config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.

From-SVN: r135414
parent 16869606
2008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
From Jie Zhang <jie.zhang@analog.com>
* config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
......
......@@ -4218,8 +4218,23 @@ bfin_discover_loops (bitmap_obstack *stack, FILE *dump_file)
if (INSN_P (tail) && recog_memoized (tail) == CODE_FOR_loop_end)
{
rtx insn;
/* A possible loop end */
/* There's a degenerate case we can handle - an empty loop consisting
of only a back branch. Handle that by deleting the branch. */
insn = BB_HEAD (BRANCH_EDGE (bb)->dest);
if (next_real_insn (insn) == tail)
{
if (dump_file)
{
fprintf (dump_file, ";; degenerate loop ending at\n");
print_rtl_single (dump_file, tail);
}
delete_insn_and_edges (tail);
continue;
}
loop = XNEW (struct loop_info);
loop->next = loops;
loops = loop;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment