diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2005-06-09 13:05:39 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2005-06-09 13:05:39 +0000 |
commit | 910fdc79ea9fe5da9cded92bceb7d2f4e7368e43 (patch) | |
tree | 75032da16867a5ae124f136fe53fb7e86f768eb1 /gcc/tree-flow.h | |
parent | 5878b92f9edefa7c60d5508fbba8441dc1358df9 (diff) | |
download | gcc-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.h | 20 |
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" |