summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-live.h
diff options
context:
space:
mode:
authoramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>2006-12-08 14:07:53 +0000
committeramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>2006-12-08 14:07:53 +0000
commitbdf50f60c87f10d85bac33dc808043425a825db4 (patch)
treed4de61798fb6a40c4303da719507d3d7a1e2c7f3 /gcc/tree-ssa-live.h
parentc2bd76bf700e70346494cbf71d662c4dd61ab1f3 (diff)
downloadgcc-bdf50f60c87f10d85bac33dc808043425a825db4.tar.gz
New TER code.
2006-12-08 Andrew MacLeod <amacleod@redhat.com> * Makefile.in: Add new file tree-ssa-ter.c. * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table, free_temp_expr_table, add_value_to_version_list, add_value_to_partition_list, remove_value_from_partition_list, add_dependence, check_replaceable, finish_expr, mark_replaceable, kill_expr, kill_virtual_exprs, find_replaceable_in_bb, find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c. * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add prototypes. * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c. (struct value_expr_d): Remove. (struct temp_expr_table_d): Rename fields, add explicit vector of replaceable expressions instead of sharing. Change value_expr_p's to bitmap. Delete free_list. (new_temp_expr_table): Rename fields, count number of ssa_names in each partition. (free_temp_expr_table): Rename field, free new fields. (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list, add_info_to_list, remove_value_from_list): Delete. (version_to_be_replaced_p): New. Is an ssa-name replaceable? (make_dependent_on_partition): New. Set bit in version list, allocating a bitmap if need be. (add_to_partition_kill_list): New. Set bit in the partition list, allocating a bitmap if need be. (remove_from_partition_kill_list): New. Remove a bit from the partition list, free the bitmap if it is empty. (add_dependence): Use renamed field, cleanup. Don't add a dependence on partitions with only one member. (is_replaceable_p): New. Split out replaceability check from check_replaceable. (process_replaceable): New. Replacement code split from check_replaceable. (check_replaceable): Removed. (finished_with_expr): Renamed from finish_expr. (kill_expr): Use renamed fields. Less parameters. (kill_virtual_exprs): Less parameters. (mark_replaceable): Use renamed fields. (find_replaceable_in_bb): Use renamed fields, cleanup. (find_replaceable_exprs): Use renamed routines, cleanup. (dump_replaceable_exprs): don;t go past end of ssa_names list. (debug_ter): New. Debug routine to dump state. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119657 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-live.h')
-rw-r--r--gcc/tree-ssa-live.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-ssa-live.h b/gcc/tree-ssa-live.h
index b4dd5e3a2be..19c708922e8 100644
--- a/gcc/tree-ssa-live.h
+++ b/gcc/tree-ssa-live.h
@@ -586,5 +586,9 @@ extern conflict_graph build_tree_conflict_graph (tree_live_info_p, tpa_p,
extern void coalesce_tpa_members (tpa_p tpa, conflict_graph graph, var_map map,
coalesce_list_p cl, FILE *);
+/* From tree-ssa-ter.c */
+extern tree *find_replaceable_exprs (var_map);
+extern void dump_replaceable_exprs (FILE *, tree *);
+
#endif /* _TREE_SSA_LIVE_H */