summaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-29 06:59:35 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-29 06:59:35 +0000
commit35c15734e84896f65e212c1263ea47c19acd42a0 (patch)
tree017eaae88bfa95da2ee42be01673c3b4ea54a1c2 /gcc/tree-flow.h
parentcbf596b8cad9e18f4ebfa83d65d8f7efc72e77ec (diff)
downloadgcc-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.h5
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);