cfgrtl.c (commit_edge_insertions): Call find_many_sub_basic_block only when some code has been emitted.
* cfgrtl.c (commit_edge_insertions): Call find_many_sub_basic_block only when some code has been emitted. (commit_edge_insertions_watch_calls): Bring into sync with commit_edge_insertions From-SVN: r63248
This commit is contained in:
parent
19df1edfbe
commit
9809a3624d
|
@ -1,3 +1,10 @@
|
||||||
|
Fri Feb 21 23:10:13 CET 2003 Jan Hubicka <jh@suse.cz>
|
||||||
|
|
||||||
|
* cfgrtl.c (commit_edge_insertions): Call
|
||||||
|
find_many_sub_basic_block only when some code has been emitted.
|
||||||
|
(commit_edge_insertions_watch_calls): Bring into sync with
|
||||||
|
commit_edge_insertions
|
||||||
|
|
||||||
Fri Feb 21 20:41:29 2003 J"orn Rennecke <joern.rennecke@superh.com>
|
Fri Feb 21 20:41:29 2003 J"orn Rennecke <joern.rennecke@superh.com>
|
||||||
|
|
||||||
* sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
|
* sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
|
||||||
|
|
34
gcc/cfgrtl.c
34
gcc/cfgrtl.c
|
@ -1460,6 +1460,7 @@ commit_edge_insertions ()
|
||||||
{
|
{
|
||||||
basic_block bb;
|
basic_block bb;
|
||||||
sbitmap blocks;
|
sbitmap blocks;
|
||||||
|
bool changed = false;
|
||||||
|
|
||||||
#ifdef ENABLE_CHECKING
|
#ifdef ENABLE_CHECKING
|
||||||
verify_flow_info ();
|
verify_flow_info ();
|
||||||
|
@ -1473,10 +1474,16 @@ commit_edge_insertions ()
|
||||||
{
|
{
|
||||||
next = e->succ_next;
|
next = e->succ_next;
|
||||||
if (e->insns)
|
if (e->insns)
|
||||||
commit_one_edge_insertion (e, false);
|
{
|
||||||
|
changed = true;
|
||||||
|
commit_one_edge_insertion (e, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!changed)
|
||||||
|
return;
|
||||||
|
|
||||||
blocks = sbitmap_alloc (last_basic_block);
|
blocks = sbitmap_alloc (last_basic_block);
|
||||||
sbitmap_zero (blocks);
|
sbitmap_zero (blocks);
|
||||||
FOR_EACH_BB (bb)
|
FOR_EACH_BB (bb)
|
||||||
|
@ -1500,6 +1507,8 @@ void
|
||||||
commit_edge_insertions_watch_calls ()
|
commit_edge_insertions_watch_calls ()
|
||||||
{
|
{
|
||||||
basic_block bb;
|
basic_block bb;
|
||||||
|
sbitmap blocks;
|
||||||
|
bool changed = false;
|
||||||
|
|
||||||
#ifdef ENABLE_CHECKING
|
#ifdef ENABLE_CHECKING
|
||||||
verify_flow_info ();
|
verify_flow_info ();
|
||||||
|
@ -1513,9 +1522,30 @@ commit_edge_insertions_watch_calls ()
|
||||||
{
|
{
|
||||||
next = e->succ_next;
|
next = e->succ_next;
|
||||||
if (e->insns)
|
if (e->insns)
|
||||||
commit_one_edge_insertion (e, true);
|
{
|
||||||
|
changed = true;
|
||||||
|
commit_one_edge_insertion (e, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!changed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
blocks = sbitmap_alloc (last_basic_block);
|
||||||
|
sbitmap_zero (blocks);
|
||||||
|
FOR_EACH_BB (bb)
|
||||||
|
if (bb->aux)
|
||||||
|
{
|
||||||
|
SET_BIT (blocks, bb->index);
|
||||||
|
/* Check for forgotten bb->aux values before commit_edge_insertions
|
||||||
|
call. */
|
||||||
|
if (bb->aux != &bb->aux)
|
||||||
|
abort ();
|
||||||
|
bb->aux = NULL;
|
||||||
|
}
|
||||||
|
find_many_sub_basic_blocks (blocks);
|
||||||
|
sbitmap_free (blocks);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print out one basic block with live information at start and end. */
|
/* Print out one basic block with live information at start and end. */
|
||||||
|
|
Loading…
Reference in New Issue