aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2005-06-09 13:05:39 +0000
committerDaniel Berlin <dberlin@gcc.gnu.org>2005-06-09 13:05:39 +0000
commit910fdc79ea9fe5da9cded92bceb7d2f4e7368e43 (patch)
tree75032da16867a5ae124f136fe53fb7e86f768eb1 /gcc/tree-flow.h
parent5878b92f9edefa7c60d5508fbba8441dc1358df9 (diff)
downloadgcc-910fdc79ea9fe5da9cded92bceb7d2f4e7368e43.zip
gcc-910fdc79ea9fe5da9cded92bceb7d2f4e7368e43.tar.gz
gcc-910fdc79ea9fe5da9cded92bceb7d2f4e7368e43.tar.bz2
Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
2005-06-08 Daniel Berlin <dberlin@dberlin.org> * Makefile.in (OBJS-common): Add tree-ssa-structalias.o. * tree-flow.h (find_what_p_points_to): Add prototype. (push_fields_onto_fieldstack): Ditto. (sort_fieldstack): Ditto. * tree-optimize.c (init_tree_optimization_passes): Add pass_build_pta and pass_del_pta. * tree-pass.h (pass_build_pta): New structure. (pass_del_pta): Ditto. * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate using new alias analyzer. (push_fields_onto_fieldstack): Removed from here. (bitpos_of_field): Ditto. (fieldoff_compare): Ditto. * tree-ssa-structalias.c: New file. * tree-ssa-structalias.h: Ditto. From-SVN: r100800
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index d318019..5941b5e 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -748,6 +748,9 @@ extern bool thread_through_all_blocks (bitmap);
tree force_gimple_operand (tree, tree *, bool, tree);
tree force_gimple_operand_bsi (block_stmt_iterator *, tree, bool, tree);
+/* In tree-ssa-structalias.c */
+bool find_what_p_points_to (tree);
+
/* In tree-ssa-address.c */
/* Affine combination of trees. We keep track of at most MAX_AFF_ELTS elements
@@ -789,6 +792,23 @@ tree create_mem_ref (block_stmt_iterator *, tree,
rtx addr_for_mem_ref (struct mem_address *, bool);
void get_address_description (tree, struct mem_address *);
tree maybe_fold_tmr (tree);
+/* This structure is simply used during pushing fields onto the fieldstack
+ to track the offset of the field, since bitpos_of_field gives it relative
+ to its immediate containing type, and we want it relative to the ultimate
+ containing object. */
+
+struct fieldoff
+{
+ tree field;
+ HOST_WIDE_INT offset;
+};
+typedef struct fieldoff fieldoff_s;
+
+DEF_VEC_O(fieldoff_s);
+DEF_VEC_ALLOC_O(fieldoff_s,heap);
+int push_fields_onto_fieldstack (tree, VEC(fieldoff_s,heap) **,
+ HOST_WIDE_INT, bool *);
+void sort_fieldstack (VEC(fieldoff_s,heap) *);
#include "tree-flow-inline.h"