aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgloopmanip.c
diff options
context:
space:
mode:
authorZdenek Dvorak <ook@ucw.cz>2007-08-04 01:09:12 +0000
committerZdenek Dvorak <ook@ucw.cz>2007-08-04 01:09:12 +0000
commit6fc12d542ee07e21b41d074f9f2faae048e8cc41 (patch)
tree798273ffece1ba2938c3938e1c16af800a086eee /gcc/cfgloopmanip.c
parent39d2f82666c913f490b98762de5d31fd3d4c58fb (diff)
* tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
accessor functions. * cfgloopmanip.c (remove_path, create_preheaders, force_single_succ_latches, fix_loop_structure): Ditto. * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, tree_duplicate_loop_to_header_edge): Ditto. * cfgloopanal.c (mark_irreducible_loops): Ditto. * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Ditto. * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures, cleanup_tree_cfg): Ditto. * tree-cfg.c (tree_merge_blocks): Ditto. * cfgloop.c (rescan_loop_exit, record_loop_exits, release_recorded_exits, get_loop_exit_edges, verify_loop_structure, loop_preheader_edge, single_exit): Ditto. (flow_loops_find): Do not clear loops->state. * cfgloop.h (loops_state_satisfies_p, loops_state_set, loops_state_clear): New functions. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@127197 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgloopmanip.c')
-rw-r--r--gcc/cfgloopmanip.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c
index 595d5860386..c66dfd47f8a 100644
--- a/gcc/cfgloopmanip.c
+++ b/gcc/cfgloopmanip.c
@@ -385,7 +385,7 @@ remove_path (edge e)
fix_loop_placements (from->loop_father, &irred_invalidated);
if (irred_invalidated
- && (current_loops->state & LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS) != 0)
+ && loops_state_satisfies_p (LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS))
mark_irreducible_loops ();
return true;
@@ -1190,7 +1190,7 @@ create_preheaders (int flags)
FOR_EACH_LOOP (li, loop, 0)
create_preheader (loop, flags);
- current_loops->state |= LOOPS_HAVE_PREHEADERS;
+ loops_state_set (LOOPS_HAVE_PREHEADERS);
}
/* Forces all loop latches to have only single successor. */
@@ -1211,7 +1211,7 @@ force_single_succ_latches (void)
split_edge (e);
}
- current_loops->state |= LOOPS_HAVE_SIMPLE_LATCHES;
+ loops_state_set (LOOPS_HAVE_SIMPLE_LATCHES);
}
/* This function is called from loop_version. It splits the entry edge
@@ -1390,8 +1390,6 @@ fix_loop_structure (bitmap changed_bbs)
bool record_exits = false;
struct loop **superloop = XNEWVEC (struct loop *, number_of_loops ());
- gcc_assert (current_loops->state & LOOPS_HAVE_SIMPLE_LATCHES);
-
/* Remove the old bb -> loop mapping. Remember the depth of the blocks in
the loop hierarchy, so that we can recognize blocks whose loop nesting
relationship has changed. */
@@ -1402,7 +1400,7 @@ fix_loop_structure (bitmap changed_bbs)
bb->loop_father = current_loops->tree_root;
}
- if (current_loops->state & LOOPS_HAVE_RECORDED_EXITS)
+ if (loops_state_satisfies_p (LOOPS_HAVE_RECORDED_EXITS))
{
release_recorded_exits ();
record_exits = true;
@@ -1464,13 +1462,13 @@ fix_loop_structure (bitmap changed_bbs)
}
}
- if (current_loops->state & LOOPS_HAVE_PREHEADERS)
+ if (loops_state_satisfies_p (LOOPS_HAVE_PREHEADERS))
create_preheaders (CP_SIMPLE_PREHEADERS);
- if (current_loops->state & LOOPS_HAVE_SIMPLE_LATCHES)
+ if (loops_state_satisfies_p (LOOPS_HAVE_SIMPLE_LATCHES))
force_single_succ_latches ();
- if (current_loops->state & LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS)
+ if (loops_state_satisfies_p (LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS))
mark_irreducible_loops ();
if (record_exits)