aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfganal.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-11-28 10:47:25 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2001-11-28 09:47:25 +0000
commitdb4a825457efe5f2b71281fa17f59ce2d7c65a6d (patch)
tree97187b5417e7845f32035f0c7bc2cd22abcfb809 /gcc/cfganal.c
parent562d21e913afeb56dced1b60fdfe6ff09a2fbf23 (diff)
downloadgcc-db4a825457efe5f2b71281fa17f59ce2d7c65a6d.zip
gcc-db4a825457efe5f2b71281fa17f59ce2d7c65a6d.tar.gz
gcc-db4a825457efe5f2b71281fa17f59ce2d7c65a6d.tar.bz2
cse.c (true_dependence_in_rtx): New function.
* cse.c (true_dependence_in_rtx): New function. (invalidate): Use it. * c-common.h (GOTO_FAKE_P): New macro. * tree-inline.c (GOTO_FAKE_P): Set. * c-tree.texi (GOTO_FAKE_P): Document. * varasm.c (assemble_variable): Set reloc to 3 for error_mark containing pointers. (output_addressed_constants): Check for local/external relocations. * elfos.h (SELECT_SECTION): Classify data section. * tm.texi (SELECT_SECTION): Update documentation. * cfganal.c (flow_dfs_compute_reverse_add_bb): set visited bit. (flow_dfs_compute_reverse_execute): Add only unvisited blocks. From-SVN: r47405
Diffstat (limited to 'gcc/cfganal.c')
-rw-r--r--gcc/cfganal.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/gcc/cfganal.c b/gcc/cfganal.c
index 679a6e6..6924fd3 100644
--- a/gcc/cfganal.c
+++ b/gcc/cfganal.c
@@ -980,6 +980,7 @@ flow_dfs_compute_reverse_add_bb (data, bb)
basic_block bb;
{
data->stack[data->sp++] = bb;
+ SET_BIT (data->visited_blocks, bb->index - (INVALID_BLOCK + 1));
return;
}
@@ -999,16 +1000,11 @@ flow_dfs_compute_reverse_execute (data)
while (data->sp > 0)
{
bb = data->stack[--data->sp];
-
- /* Mark that we have visited this node. */
- if (!TEST_BIT (data->visited_blocks, bb->index - (INVALID_BLOCK + 1)))
- {
- SET_BIT (data->visited_blocks, bb->index - (INVALID_BLOCK + 1));
-
- /* Perform depth-first search on adjacent vertices. */
- for (e = bb->pred; e; e = e->pred_next)
- flow_dfs_compute_reverse_add_bb (data, e->src);
- }
+ /* Perform depth-first search on adjacent vertices. */
+ for (e = bb->pred; e; e = e->pred_next)
+ if (!TEST_BIT (data->visited_blocks,
+ e->src->index - (INVALID_BLOCK + 1)))
+ flow_dfs_compute_reverse_add_bb (data, e->src);
}
/* Determine if there are unvisited basic blocks. */