summaryrefslogtreecommitdiff
path: root/gcc/basic-block.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2005-06-16 01:05:23 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2005-06-15 23:05:23 +0000
commit6580ee7781f9039547bd7e61c19064b4993227e9 (patch)
tree1d0023517e2f2d1588dbafdad22f8ee98e9d9ce8 /gcc/basic-block.h
parentf652253b03b53794e5f2544ff1a05967a2070a56 (diff)
downloadgcc-6580ee7781f9039547bd7e61c19064b4993227e9.tar.gz
Makefile.in (cfg.o): Add new dependencies.
* Makefile.in (cfg.o): Add new dependencies. * basic-block.h (reorder_block_def): Kill original/copy/duplicated/copy_number fields. (BB_DUPLICATED): New flag. (initialize_original_copy_tables, free_original_copy_tables, set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New. * cfg.c: Include hashtab.h and alloc-pool.h (bb_original, bb_copy, original_copy_bb_pool): New static vars. (htab_bb_copy_original_entry): New struct. (bb_copy_original_hash, bb_copy_original_eq): New static functions. (initialize_original_copy_tables, free_original_copy_tables, set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New global functions. * cfghooks.c (duplicate_block): Update original/copy handling. * cfglayout.c (fixup_reorder_chain): Likewise. (cfg_layout_initialize): Initialize orignal_copy tables. (cfg_layout_finalize): FInalize original_copy tables. (can_copy_bbs_p): Use BB_DUPLICATED flag. (copy_bbs): Likewise. * cfgloopmanip.c (update-single_exits_after_duplication): Likewise. (duplicate_loop_to_header_edge): Likewise; update handling of copy_number. (loop_version): Likewise. * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG. * except.c (expand_resx_expr): Check that reg->resume is not set. * loop-unroll.c (unroll_loop_constant_iterations, unroll_loop_runtime_iterations, apply_opt_in_copies): Update copy/original handling. * loop-unwitch.c (unswitch_loop): Likewise. * tree-cfg.c (create_bb): Do not initialize RBI. (disband_implicit_edges): Do not kill RBI. (add_phi_args_after_copy_bb): Use new original/copy mapping. (add_phi_args_after_copy): Use BB_DUPLICATED flag. (tree_duplicate_sese_region): Update original/copy handling. * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise. * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise. From-SVN: r101000
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r--gcc/basic-block.h22
1 files changed, 11 insertions, 11 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index 2979e01a3ea..d9244d271fd 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -279,16 +279,6 @@ struct reorder_block_def GTY(())
basic_block next;
- /* These pointers may be unreliable as the first is only used for
- debugging (and should probably be removed, and the second is only
- used by copying. The basic blocks pointed to may be removed and
- that leaves these pointers pointing to garbage. */
- basic_block GTY ((skip (""))) original;
- basic_block GTY ((skip (""))) copy;
-
- int duplicated;
- int copy_number;
-
/* This field is used by the bb-reorder and tracer passes. */
int visited;
};
@@ -332,7 +322,10 @@ enum
BB_HOT_PARTITION = 64,
/* Set on blocks that should be put in a cold section. */
- BB_COLD_PARTITION = 128
+ BB_COLD_PARTITION = 128,
+
+ /* Set on block that was duplicated. */
+ BB_DUPLICATED = 256
};
/* Dummy flag for convenience in the hot/cold partitioning code. */
@@ -984,6 +977,13 @@ extern void break_superblocks (void);
extern void check_bb_profile (basic_block, FILE *);
extern void update_bb_profile_for_threading (basic_block, int, gcov_type, edge);
+extern void initialize_original_copy_tables (void);
+extern void free_original_copy_tables (void);
+extern void set_bb_original (basic_block, basic_block);
+extern basic_block get_bb_original (basic_block);
+extern void set_bb_copy (basic_block, basic_block);
+extern basic_block get_bb_copy (basic_block);
+
#include "cfghooks.h"
#endif /* GCC_BASIC_BLOCK_H */