aboutsummaryrefslogtreecommitdiff
path: root/gcc/basic-block.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-06-28 20:14:05 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2001-06-28 18:14:05 +0000
commit7a442791bbd35236ae2c45e383db88d704f8f41c (patch)
tree411b8f5eb989eadf53babde84c57d46a4759fd2e /gcc/basic-block.h
parentd72c3ec3f65c7e75b9d7149de4eb02701992cdb9 (diff)
downloadgcc-7a442791bbd35236ae2c45e383db88d704f8f41c.zip
gcc-7a442791bbd35236ae2c45e383db88d704f8f41c.tar.gz
gcc-7a442791bbd35236ae2c45e383db88d704f8f41c.tar.bz2
flow.c (try_merge_block): Rename to try_optimize_cfg; do basic simplifications on the CFG.
* flow.c (try_merge_block): Rename to try_optimize_cfg; do basic simplifications on the CFG. (is_forwarder_block_p, can_fallthru, try_redirect_by_replacing_jump, try_simplify_condjump): New. (redirect_edge_and_branch): Try replace jump insn. (flow_delete_insn): Handle deleting of ADDR_VEC insns. * basic-block.h (FALLTHRU_EDGE, BRANCH_EDGE): New macros. From-SVN: r43642
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r--gcc/basic-block.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index 515d222..8e4aa41 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -488,6 +488,14 @@ struct edge_list
/* Number of edges in the compressed edge list. */
#define NUM_EDGES(el) ((el)->num_edges)
+/* BB is assumed to contain conditional jump. Return the fallthru edge. */
+#define FALLTHRU_EDGE(bb) ((bb)->succ->flags & EDGE_FALLTHRU \
+ ? (bb)->succ : (bb)->succ->succ_next)
+
+/* BB is assumed to contain conditional jump. Return the branch edge. */
+#define BRANCH_EDGE(bb) ((bb)->succ->flags & EDGE_FALLTHRU \
+ ? (bb)->succ->succ_next : (bb)->succ)
+
struct edge_list * create_edge_list PARAMS ((void));
void free_edge_list PARAMS ((struct edge_list *));
void print_edge_list PARAMS ((FILE *, struct edge_list *));