diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-29 06:59:35 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-29 06:59:35 +0000 |
commit | 35c15734e84896f65e212c1263ea47c19acd42a0 (patch) | |
tree | 017eaae88bfa95da2ee42be01673c3b4ea54a1c2 /gcc/tree-flow.h | |
parent | cbf596b8cad9e18f4ebfa83d65d8f7efc72e77ec (diff) | |
download | gcc-35c15734e84896f65e212c1263ea47c19acd42a0.tar.gz |
* tree-cfg.c (verify_stmt): Add last_in_block parameter. Verify
that eh stmts can throw.
(verify_stmts): Update verify_stmt call.
(tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New.
* tree-eh.c (remove_stmt_from_eh_region): New.
(lower_eh_constructs): Fix throw_stmt_table delete routine.
(tree_could_trap_p): Match may_trap_p.
(maybe_clean_eh_stmt): New.
* tree-flow.h: Update decls.
* tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts.
(substitute_and_fold): Clean eh edges.
* tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle
empty basic blocks.
* tree-ssa-dom.c (need_eh_cleanup): New.
(tree_ssa_dominator_optimize): Allocate it. Cleanup eh edges.
(optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83843 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r-- | gcc/tree-flow.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index 0f97a5b9cf1..8b6690b21e7 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -497,6 +497,8 @@ extern void compute_dominance_frontiers (bitmap *); extern void verify_stmts (void); extern tree tree_block_label (basic_block bb); extern void extract_true_false_edges_from_block (basic_block, edge *, edge *); +extern bool tree_purge_dead_eh_edges (basic_block); +extern bool tree_purge_all_dead_eh_edges (bitmap); /* In tree-pretty-print.c. */ extern void dump_generic_bb (FILE *, basic_block, int, int); @@ -600,7 +602,10 @@ extern bool tree_could_trap_p (tree); extern bool tree_could_throw_p (tree); extern bool tree_can_throw_internal (tree); extern bool tree_can_throw_external (tree); +extern int lookup_stmt_eh_region (tree); extern void add_stmt_to_eh_region (tree, int); +extern bool remove_stmt_from_eh_region (tree); +extern bool maybe_clean_eh_stmt (tree); /* In tree-ssa-pre.c */ void add_to_value (tree, tree); |