diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-04 01:09:12 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-04 01:09:12 +0000 |
commit | f24ec26f1cabb4f55cdb4370f35b67807df8fb7a (patch) | |
tree | 798273ffece1ba2938c3938e1c16af800a086eee /gcc/cfgloopmanip.c | |
parent | e45bbad21b8f3590c89cc7193eaac430b547328f (diff) | |
download | gcc-f24ec26f1cabb4f55cdb4370f35b67807df8fb7a.tar.gz |
* 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: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127197 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgloopmanip.c')
-rw-r--r-- | gcc/cfgloopmanip.c | 16 |
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) |