diff options
author | Zdenek Dvorak <ook@ucw.cz> | 2007-08-04 03:09:12 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2007-08-04 01:09:12 +0000 |
commit | f87000d0c4f42ac54d913c7c3d6acf53bc6302cb (patch) | |
tree | 798273ffece1ba2938c3938e1c16af800a086eee /gcc/cfgloop.h | |
parent | a83e7facc5549687bfee14f24850528e79bb5a95 (diff) | |
download | gcc-f87000d0c4f42ac54d913c7c3d6acf53bc6302cb.zip gcc-f87000d0c4f42ac54d913c7c3d6acf53bc6302cb.tar.gz gcc-f87000d0c4f42ac54d913c7c3d6acf53bc6302cb.tar.bz2 |
tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state accessor functions.
* 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.
From-SVN: r127197
Diffstat (limited to 'gcc/cfgloop.h')
-rw-r--r-- | gcc/cfgloop.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h index 903672d..791dabf 100644 --- a/gcc/cfgloop.h +++ b/gcc/cfgloop.h @@ -451,6 +451,33 @@ number_of_loops (void) return VEC_length (loop_p, current_loops->larray); } +/* Returns true if state of the loops satisfies all properties + described by FLAGS. */ + +static inline bool +loops_state_satisfies_p (unsigned flags) +{ + return (current_loops->state & flags) == flags; +} + +/* Sets FLAGS to the loops state. */ + +static inline void +loops_state_set (unsigned flags) +{ + current_loops->state |= flags; +} + +/* Clears FLAGS from the loops state. */ + +static inline void +loops_state_clear (unsigned flags) +{ + if (!current_loops) + return; + current_loops->state &= ~flags; +} + /* Loop iterators. */ /* Flags for loop iteration. */ |