This commit was manufactured by cvs2svn to create branch
[official-gcc.git] / gcc / ChangeLog.sa
blobdb6d73d5f0c56710603f69c54bdcad06014a7ffa
1 2005-02-06  Daniel Berlin  <dberlin@dberlin.org>
3         * tree-ssa-alias.c (push_fields_onto_typestack): Add bitpos_of_field
4         to naked FIELD_DECL.
6 2005-01-12  Daniel Berlin  <dberlin@dberlin.org>
8         * tree-ssa-alias.c (setup_pointers_and_addressables):
9         Structure fields need underlying type tags too.
10         Also don't unmark addressable on a structure unless it's fake
11         variables are not addressed.
12         (group_aliases): Must also deal with struct fields here.
13         (add_pointed_to_var): Don't forget the subvars in addresses_needed.
14         (push_fields_on_to_fieldstack): Should have been else if, not just if.
15         (create_overlap_variables_for): Experiment with some other heuristics.
16         * tree-ssa-operands.c (note_addressable): Var can be null.
17         Return early if we handled the component_ref.
19 2005-01-08  Daniel Berlin  <dberlin@dberlin.org>
20         
21         * tree-flow-inline.h (ref_contains_array_ref): Move from 
22         tree-ssa-alias.c
23         (lookup_subvars_for_var): Ditto.  Rewrite to use variable
24         annotation.
25         (get_subvars_for_var): Ditto on moving.
26         (okay_component_ref_for_subvars): New function.
27         * tree-flow.h (subvar_t): Move from tree-ssa-alias.c.
28         (struct subvar): Ditto.
29         (struct var_ann_d): Add subvars field.
30         (get_subvars_for_var): Replaces get_fake_vars_for_var.
31         (get_fake_vars_for_component_ref): Removed.
32         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Use new
33         functions, iterate through subvars list. 
34         (setup_pointers_and_addressables): Ditto.
35         (maybe_create_global_var): Ditto.
36         (add_pointed_to_var): Ditto.
37         * tree-ssa-operands.c (get_expr_operands): Ditto.
38         (note_addressable): Ditto.
40 2004-12-22 Daniel Berlin  <dberlin@dberlin.org>
42         * tree-ssa-alias.c (fieldoff_t): Make offset HOST_WIDE_INT.
43         (used_part_t): New structure.
44         (used_portions): New array.
45         (get_or_create_used_part_for): New function.
46         (create_overlap_variables_for): Use used_portions to decide
47         what fields we need fake variables for.
48         (find_used_portions): New function. 
49         (old_referenced_vars): New variable.
50         (create_structure_vars): Find used portions of structures
51         before creating overlap variables.
53 2004-12-20 Daniel Berlin  <dberlin@dberlin.org>
55         * tree-flow.h (get_fake_vars_for_component_ref): Update prototype.
56         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
57         add_may_alias to else clause.
58         (add_pointed_to_var): Add comment.
59         (push_fields_onto_fieldstack): Ditto.
60         (var_subvar): Ditto.
61         (var_subvar_hash): Ditto.
62         (subvars_for_var): Ditto.
63         (var_subvar_free): Ditto.
64         (var_subvar_eq): Ditto.
65         (ref_contains_array_ref): Ditto.
66         (get_fake_vars_for_component_ref): Ditto.
67         (create_structure_vars): Ditto.
68         (lookup_subvars_for_var): Ditto.
69         (get_subvars_for_var): Ditto.
70         (create_overlap_variables_for): Ditto.
71         Fix bug in cleanup when we return false.
72         (get_fake_vars_for_component_ref): Add argument, okay_for_killdef.
73         Set it based on whether we have overlaps or conservative answers.
74         Update callers.
75         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Comment out
76         assert for now.
77         (build_ssa_operands): COMPONENT_REF's are now presumptively
78         kill-defs.
79         (get_expr_operands): Don't use & ~opf_kill_def all the time.
80         If okay_for_killdef, don't clear opf_kill_def, but if not okay, or
81         we recurse, clear it.
82         
83 2004-12-19 Daniel Berlin <dberlin@dberlin.org>
85         * tree-ssa-alias.c: Include vec.h.
86         (get_fake_vars_for_var): New function.
87         (get_fake_vars_for_component_ref): Ditto.
88         (compute_flow_insensitive_aliasing): Use get_fake_vars_for_var.
89         (setup_pointers_and_addressables): Ditto here.
90         (add_pointed_to_var): If we were really passed a component ref,
91         try to get a set of fake variables from it.
92         Otherwise, make sure to include all the approriate fake variables
93         into the pointed-to set.
94         (bitpos_of_field): New function.
95         (push_fields_onto_fieldstack): Ditto.
96         (var_subvar_hash): Ditto.
97         (var_subvar_free): Ditto.
98         (var_subvar_eq): Ditto.
99         (lookup_subvars_for_var): Ditto.
100         (get_subvars_for_var): Ditto.
101         (create_overlap_variables_for): Ditto.
102         (create_structure_vars): Ditto.
103         (ref_contains_array_ref): Ditto.
104         (pass_create_structure_vars): New structure.    
105         * tree-flow.h (get_fake_vars_for_component_ref): Prototype.
106         (get_fake_vars_for_var): Ditto.
107         (mem_tag_kind): Add STRUCT_FIELD.
108         * tree-ssa-operands.c (note_addressable): Add fake vars into
109         addressable set.
110         (get_expr_operands): Add fake variables when we add regular
111         variable.
112         
113 2004-11-18  Daniel Berlin  <dberlin@dberlin.org>
115         * tree-ssa-structalias.c: Rewrite to use real offsets, instead of
116         field numbering.
117         * tree-optimize.c (init_tree_optimization_passes): Uncomment calls
118         to build_pta and del_pta.
119         
120 2004-09-30  Daniel Berlin  <dberlin@dberlin.org>
122         * tree-ssa-loop-ivopts.c (rewrite_use_address): Mark new variables
123         for renaming.
124         (tree_ssa_iv_optimize): Call rewrite_into_ssa and
125         rewrite_into_loop_closed_ssa.
126         * tree-ssa-operands.c (add_stmt_operand): We don't want to deal
127         with type tags.  Add support for trying to find partial use/def
128         info.
129         * tree-into-ssa.c (rewrite_stmt): Call
130         get_intersecting_reaching_def for partial uses.
131         (ssa_rewrite_stmt): Ditto.
132         (rewrite_operand): Inlined into caller and removed.
133         (find_may_def_for_use): New function.
134         (find_must_def_for_use): Ditto.
135         (find_partial_def_for_use): Ditto.
136         * tree-ssa-structalias.c (process_unification_queue): Fix bug in
137         determing whether variable merging changed the solution.
138         Print out names being unified.
139         (get_constraint_for_component_ref): Update for integer_id.
140         (get_constraint_for): Assignments from integers now get
141         the INTEGER constraint.
142         (create_alias_vars): Mark var_readonly as address taken.
143         Add in integer constraint.
144         (alias_get_name):Call alias_get_name, not get_name, to
145         get ssa variable name, since alias_get_name knows 
146         what to do with unnamed variables.
147         
148 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
150         * tree-ssa-ccp.c (substitute_and_fold): Don't try to access
151         operand 1 of non-MODIFY_EXPR stmts.
152         * version.c: Note that this is the structure aliasing branch
153         
154 2004-09-27  Daniel Berlin  <dberlin@dberlin.org>
156         * tree-flow-inline.c: gcc_assertify.
157         * tree-ssa-ccp.c (substitute_and_fold): Mark new vars
158         if RHS is handled component as well.
160 2004-09-26  Daniel Berlin  <dberlin@dberlin.org>
162         * tree-flow-inline.h (get_vuse_offset_ptr): New.
163         (get_vuse_size_ptr): New.
164         (get_vuse_op_ptr): Modify for vuse operand type change.
165         (op_iter_init_tree): Fix comment.
166         (op_iter_next_partuse): New function.
167         (op_iter_init_partuse): Ditto.
168         * tree-pretty-print.c (dump_vops): Use new partuse iterator
169         to get offset and size info for vuses.
170         * tree-ssa-operands.c (build_vuses_offset): New array.
171         (build_vuses_size): New array.
172         (allocate_vuse_optype): Modify to use vuse_operand_type_t.
173         (init_ssa_operands): Init new arrays.
174         (fini_ssa_operands): Free new arrays.
175         (finalize_ssa_vuses): Rewrite to handle size and offset info as
176         well.
177         (append_vuse): Take offset and size now as well.
178         Push onto new arrays.   
179         (add_stmt_operand): Do partial uses here.
180         (copy_virtual_operands): Copy offset and size for vuse as well.
181         (create_ssa_artficial_load_stmt): Modify to append vuse offset
182         and size from the may_def result and size.
183         * tree-ssa-operands.h (VUSE_OFFSET_PTR): New macro.
184         (VUSE_OFFSET): Ditto.
185         (SET_VUSE_OFFSET): Ditto.
186         (VUSE_SIZE_PTR): Ditto.
187         (VUSE_SIZE): Ditto.
188         (SET_VUSE_SIZE): Ditto.
189         (vuse_operand_type): New structure.
190         (vuse_optype_d): Use it.
191         (FOR_EACH_SSA_PARTUSE_OPERAND): New macro.
192         
193 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
195         * tree-ssa-ccp.c (substitute_and_fold): Changing some piece
196         of a handled component may now change the v_may_def.
197         * tree-ssa-operands.c (fini_ssa_operands):
198         Free offset and size arrays too.
199         (add_stmt_operand): Use get_inner_reference to determine offset
200         and size when possible.
201         * tree-ssa.c: Add vd_pair_pool.
202         (init_tree_ssa): Alloc vd_pair pool.
203         (delete_tree_ssa): Free vd_pair pool.
204         * tree-ssa-structlias.c: Update for TREE_CODE_CLASS change.
206 2004-09-15  Daniel Berlin  <dberlin@dberlin.org>
207         
208         * Makefile.in (TREE_FLOW_H): Add vec.h.
209         * tree-flow.h: Include vec.h.
210         (var_def_pair): New struct.
211         (register_new_def): update prototype.
212         * tree-into-ssa.c (rewrite_block_data): Use a vector of vd_pair_t.
213         (rewrite_initialize_block_local_date): Use vector function for
214         block_defs.
215         (rewrite_initialize_block): Pass new parameter to register_new_def.
216         (rewrite_stmt): Ditto.
217         (ssa_register_new_def): Removed.
218         (ssa_rewrite_initialize_block): Use register_new_def.
219         (ssa_rewrite_stmt): Ditto.
220         (rewrite_finalize_block): Rewrite to use new block_defs vector.
221         (ssa_rewrite_finalize_block): Removed.
222         (register_new_def): Take new parameter, rewrite to use
223         block_defs vector.
224         * tree-ssa-dom.c (struct dom_block_walk_data): Use a vector
225         for block_defs.
226         (restore_currdefs_to_original_value): Update for vector use.
227         (register_definitions_for_stmt): Ditto.
228         (dom_opt_initialize_block_local_data): Ditto.
229         (dom_opt_finalize_block): Ditto.
230         (thread_across_edge): Pass new parameter to register_new_def.
232 2004-09-12  Daniel Berlin  <dberlin@dberlin.org>
234         * Makefile.in (tree-ssa-structalias.o): New file.
235         (tree-ssa-structalias.o): New.
236         * tree-optimize.c (init_tree_optimization_passes): Add build_pta,
237         del_pta.
238         * tree-pass.h (pass_build_pta, pass_del_pta): New.
239         * tree-ssa-structalias.c: New file.
240         * tree-ssa-structalias.h: Ditto
241         * tree-ssa-operands.c (append_v_may_def): Use unsigned int, not 
242         unsigned HOST_WIDE_INT, for now.
244 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
246         * tree-flow-inline.h (get_v_may_def_offset_ptr): New function.
247         (get_v_may_def_size_ptr): Ditto.
248         (op_iter_next_maydef): Add size and offset.
249         (op_iter_init_maydef): Ditto.
250         * tree-into-ssa.c (mark_def_sites): Ditto.
251         * tree-pretty-print.c (dump_vops): Ditto.
252         * tree-ssa-operands.c (build_v_may_defs_offset): New.
253         (build_v_may_defs_size): Ditto.
254         (init_ssa_operands): Init new varrays.
255         (finalize_ssa_v_may_defs): Compare/set offset and size too.
256         (finalize_ssa_vuses): Pop new arrays.
257         (start_ssa_stmt_operands): Check new arrays.
258         (append_v_may_def): Handle offset and size.
259         (add_stmt_operand): Pass offset and size to append_v_may_def.
260         (copy_virtual_operands): Copy offset and size.
261         * tree-ssa-operands.h (v_may_def_operand_type): Add offset and
262         size.
263         (V_MAY_DEF_OFFSET_PTR): New macro.
264         (V_MAY_DEF_OFFSET): Ditto.
265         (V_MAY_DEF_SIZE_PTR): Ditto.
266         (V_MAY_DEF_SIZE): Ditto.
267         (FOR_EACH_SSA_MAYDEF): Modify to give caller offset and size.