diff options
Diffstat (limited to 'gcc/cfgloop.h')
-rw-r--r-- | gcc/cfgloop.h | 40 |
1 files changed, 3 insertions, 37 deletions
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h index 1562736..224d6cf 100644 --- a/gcc/cfgloop.h +++ b/gcc/cfgloop.h @@ -69,9 +69,6 @@ struct loop /* Basic block of loop latch. */ basic_block latch; - /* Basic block of loop preheader or NULL if it does not exist. */ - basic_block pre_header; - /* For loop unrolling/peeling decision. */ struct lpt_decision lpt_decision; @@ -81,14 +78,6 @@ struct loop /* Average number of executed insns per iteration. */ unsigned av_ninsns; - /* Array of edges along the preheader extended basic block trace. - The source of the first edge is the root node of preheader - extended basic block, if it exists. */ - edge *pre_header_edges; - - /* Number of edges along the pre_header extended basic block trace. */ - int num_pre_header_edges; - /* The first block in the loop. This is not necessarily the same as the loop header. */ basic_block first; @@ -100,21 +89,6 @@ struct loop /* Number of blocks contained within the loop. */ unsigned num_nodes; - /* Array of edges that enter the loop. */ - edge *entry_edges; - - /* Number of edges that enter the loop. */ - int num_entries; - - /* Array of edges that exit the loop. */ - edge *exit_edges; - - /* Number of edges that exit the loop. */ - int num_exits; - - /* Bitmap of blocks that dominate all exits of the loop. */ - sbitmap exits_doms; - /* The loop nesting depth. */ int depth; @@ -254,23 +228,13 @@ struct loops extern struct loops *current_loops; -/* Flags for loop discovery. */ - -#define LOOP_TREE 1 /* Build loop hierarchy tree. */ -#define LOOP_PRE_HEADER 2 /* Analyze loop preheader. */ -#define LOOP_ENTRY_EDGES 4 /* Find entry edges. */ -#define LOOP_EXIT_EDGES 8 /* Find exit edges. */ -#define LOOP_EDGES (LOOP_ENTRY_EDGES | LOOP_EXIT_EDGES) -#define LOOP_ALL 15 /* All of the above */ - /* Loop recognition. */ -extern int flow_loops_find (struct loops *, int flags); +extern int flow_loops_find (struct loops *); extern void flow_loops_free (struct loops *); extern void flow_loops_dump (const struct loops *, FILE *, void (*)(const struct loop *, FILE *, int), int); extern void flow_loop_dump (const struct loop *, FILE *, void (*)(const struct loop *, FILE *, int), int); -extern int flow_loop_scan (struct loop *, int); extern void flow_loop_free (struct loop *); void mark_irreducible_loops (struct loops *); void mark_single_exit_loops (struct loops *); @@ -288,6 +252,8 @@ extern unsigned tree_num_loop_insns (struct loop *); extern int num_loop_insns (struct loop *); extern int average_num_loop_insns (struct loop *); extern unsigned get_loop_level (const struct loop *); +extern bool loop_exit_edge_p (const struct loop *, edge); +extern void mark_loop_exit_edges (struct loops *); /* Loops & cfg manipulation. */ extern basic_block *get_loop_body (const struct loop *); |