Rev.
[official-gcc.git] / gcc / ChangeLog.ipa
blob6959fddf35864f727014acba5a5f2bce80badfaf
1 2006-11-16  Jan Hubicka  <jh@suse.cz>
3         * Merge from mainline (rev 118928).
5 2006-10-31  Razya Ladelsky  <razya@il.ibm.com>
7         * testsuite/gcc.dg/matrix/matrix-1.c: Minor fixes.
8         * testsuite/gcc.dg/matrix/matrix-2.c: Same.
9         * testsuite/gcc.dg/matrix/matrix-3.c: Same.
10         * testsuite/gcc.dg/matrix/matrix-4.c: Same.
11         * testsuite/gcc.dg/matrix/matrix-5.c: Same.
12         * testsuite/gcc.dg/matrix/matrix-6.c: Same.
14 2006-10-31  Razya Ladklesky  <razya@il.ibm.com>
15             
16             * tree-inline.c (remap_decls): remap all TYPE_DECLs.
17             PR tree-optimization/29122
18             * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME 
19               for the new version.  Assign NULL to DECL_RTL of the new version. 
21 2006-10-31  Razya Ladelsky  <razya@il.ibm.com>
23         * testsuite/gcc.dg/matrix/matrix.exp: Test transposing testcases with profiling.
24         * testsuite/gcc.dg/matrix/transpose-1.c: New testcase.
25         * testsuite/gcc.dg/matrix/transpose-2.c: New testcase.
26         * testsuite/gcc.dg/matrix/transpose-3.c: New testcase.
27         * testsuite/gcc.dg/matrix/transpose-4.c: New testcase.
28         * testsuite/gcc.dg/matrix/transpose-5.c: New testcase.
29         * testsuite/gcc.dg/matrix/transpose-6.c: New testcase.
32 2006-10-31  Razya Ladelsky  <razya@il.ibm.com>
34         * matrix-reorg.c: (struct index_info) : Remove.
35         (struct access_site_info):  Add field  iterated_by_inner_most_loop_p
36         (struct matrix_info): Add dimension_size_orig.
37         Remove hottest_dim, reorg_failed_reason, flatten_p,
38         flatten_transpose_matrix_p,  flatten_decl.
39         (analyze_transpose, mat_free,  sort_dim_hot_level ): New function.
40         (check_transpose_p, analyze_transpose_p) : New static variables.
41         (record_access_alloc_site_info, check_allocation_function,
42         analyze_matrix_accesses, find_escaping_matrices_and_flatten,
43         transform_access_sites, matrix_reorg):  Add support for transposing.
45 2006-10-05  Jan Hubicka  <jh@suse.cz>
47         * c-pretty-print.c: Synchronize with mainline.
48         * cfgrtl.c: Synchronize with mainline.
49         * cgraphunit.c: Synchronize with mainline.
50         * fix-header.c: Synchronize with mainline.
51         * sched-deps.c: Synchronize with mainline.
52         * targhooks.c: Synchronize with mainline.
53         * tree.c: Synchronize with mainline.
54         * var-tracking.c: Synchronize with mainline.
56 2006-10-04  Jan Hubicka  <jh@suse.cz>
58         * Merge from mainline (rev 117459).
60 2006-09-12  Jan Hubicka  <jh@suse.cz>
62         * Merge from mainline (rev 116884).
64 2006-09-07  Razya Ladelsky  <razya@il.ibm.com>
66         * testsuite/gcc.dg/matrix: Create new directory for matrix optimizatinos.
67         * testsuite/gcc.dg/matrix/matrix.exp: New file. Driver for matrix testcases.
68         * testsuite/gcc.dg/matrix/matrix-1.c: New testcase. 
69         * testsuite/gcc.dg/matrix/matrix-2.c: New testcase.
70         * testsuite/gcc.dg/matrix/matrix-3.c: New testcase.
71         * testsuite/gcc.dg/matrix/matrix-4.c: New testcase.
72         * testsuite/gcc.dg/matrix/matrix-5.c: New testcase.
73         * testsuite/gcc.dg/matrix/matrix-6.c: New testcase.
75 2006-09-07  Razya Ladelsky  <razya@il.ibm.com>
77         * matrix-reorg.c: New file. Implement matrix flattening optimization.
78         * tree-pass.h: Add matrix reorg (flattening) pass.
79         * common.opt: Add fmatrix-flattening flag.
80         * Makefile.in: Add matrix-reorg.c.
81         * passes.c: Add matrix reorg pass.
84 2006-08-23 Razya Ladelsky <razya@il.ibm.com>
86         * targhooks.c (default_internal_arg_pointer): New function.
87         * dominance.c (dom_computed, n_bbs_in_dom_tree): Remove definitions.
88         * fortran/decl.c (gfc_match_entry):Add missing declaration.
89         * function.h (dom_state): Add enumerator.
90         (dom_computed, n_bbs_in_dom_tree): Add new fields to function struct,
91         add matching macros.
92         * basic-block.h (dom_state, dom_computed): Remove.
93         * config/rs6000/rs6000.c: Merge (partially) from mainline.
95 2006-08-20  Razya Ladelsky  <razya@il.ibm.com>
96         * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
97         (compute_prof): New function to compute how hot each method is. 
98         Use compute_function_frequency.
99         * ipa-prop.c (ipa_method_modify_stmt, 
100         ipa_callsite_compute_param): Support for SSA.
101         * predict.c (compute_function_frequency): Change from static 
102         to extern. 
103         
104 2006-05-28  Jan Hubicka  <jh@suse.cz>
106         * Merge from mainline
108 2006-04-11  Jan Hubicka  <jh@suse.cz>
110         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
111         * tree-inline.c (declare_return_variable): Unwind memory references.
113 2006-04-06  Jan Hubicka  <jh@suse.cz>
115         * Merge from mainline
117 2006-03-29  Jan Hubicka  <jh@suse.cz>
119         * Merge from mainline (revision 112588).
121 2006-01-31  Razya Ladelsky  <razya@il.ibm.com>
123         * function.c (get_last_funcdef_no): New function.
124         (allocate_struct_function) : Use the new function.            
125         * function.h (get_last_funcdef_no): New declaration.
126         * tree-inline.c (initialize_cfun): Add initializations.
128 2006-01-26  Jan Hubicka  <jh@suse.cz>
130         * tree-inline.c (remap_ssa_name): Fix imroperly resolved merging
131         conflict.
133 2006-01-24  Jan Hubicka  <jh@suse.cz>
135         * Merge from mainline (revision 110160).
137 2006-01-15  Jan Hubicka  <jh@suse.cz>
139         * Merge from mainline (revision 109724).
141 2005-11-29  Jan Hubicka  <jh@suse.cz>
143         * ipa-type-escape.c (look_for_casts): Use get_base_var.
144         * tree-inline.c (setup_one_parameter): Accept empty init_stmt
145         (declare_return_variable): Mark symbol for renaming only in SSA form
146         * passes.c (init_optimization_passes): Re-enable ipacp.
148 2005-11-24  Jan Hubicka  <jh@suse.cz>
150         * Merge from mainline (revsion 107437).
152 2005-11-03  Jan Hubicka  <jh@suse.cz>
154         * Merge from mainline (revision 106423).
156 2005-09-30  Jan Hubicka  <jh@suse.cz>
158         * loop-init.c (loop_optimizer_init): Avoid calling RTL optimizer too
159         early.
160         * passes.c (init_optimization_passes): Schedule early VRP pass.
162 2005-09-22  Jan Hubicka  <jh@suse.cz>
164         * tree-ssa-operands (get_indirect_ref_operands, add_stmt_operand):
165         Be more cureful with volatilizing.
167 2005-09-21  Jan Hubicka  <jh@suse.cz>
169         * tree-inline.c (optimize_inline_calls): Rebuild SSA if needed.
171         * ipa-type-escape.c (check_operand, check_tree, scan_for_refs): Handle
172         SSA_NAMEs.
173         (init_optimization_passes): Re-enable IPA passes.
175 2005-09-19  Jan Hubicka  <jh@suse.cz>
177         * passes.c (init_optimization_passes): Remove commented out items; add early ccp/dce.
178         * tree-ssa-operands (get_indirect_ref_operands): Mark statments wirting
179         to memory as volatile before aliasing is built.
180         (add_stmt_operand): Likewise.
182 2005-09-18  Jan Hubicka  <jh@suse.cz>
184         * cgraphunit.c (cgraph_finalize_compilation_unit): Better dumping at -Q
185         (cgraph_optimize): Likewise.
186         * passes.c (execute_one_pass): New announce parameter.
187         (execute_ipa_pass_list): Use it.
188         (execute_pass_list): Likewise.
189         * tree-optimize.c (pass_early_local_passes,
190         gate_all_early_optimizations): Add names.
192 2005-09-16  Jan Hubicka  <jh@suse.cz>
194         * Merge from mainline (ipa-merge-20050915)
196 2005-09-03  Jan Hubicka  <jh@suse.cz>
198         * Merge from mainline (ipa-branch-merge-20050903)
200 2005-08-19  Jan Hubicka  <jh@suse.cz>
202         * cgraph.h (rebuild_cgraph_edges): Declare.
203         * cgraphunit.c (rebuild_cgraph_edges): Rebuild.
204         * ipa-inline.c (cgraph_apply_inline_plan): Initialize bitmaps; free
205         dominance info.
206         (cgraph_decide_inlining_incrementally): Likewise.
207         * opts.c (decode_options): Temporarily disable salias.
208         * passes.c (init_optimization_passes): Temporariliy disable all IPA
209         passes; move SSA construction into early_optimization_passes.
210         * tree-inline.c: Include tree-pass.h
211         (remap_ssa_name): New function.
212         (remap_decl): Initialize SSA structs.
213         (copy_body_r): Handle SSA names; register global vars.
214         (copy_bb): Fold all new statements; update SSA_DEF_STMTs.
215         (copy_edges_for_bb): Update PHI nodes of EH edges.
216         (copy_phis_for_bb): New function.
217         (initialize_cfun): Break out from ...
218         (copy_cfg_body): ... here.
219         (setup_one_parameter): Handle SSA form.
220         (declare_return_variable): Likewise.
221         (expand_call_inline): Initialize calle_cfun early; deal with
222         SSA when replacing original assignment.
223         (optimize_inline_call): Some extra checking and rebuilding.
224         (tree_function_versioning): Use initialize_cfun; do not construct
225         temporary decl; free dominance info.
226         * tree-optimize.c (gate_all_optimizations): FOrce optimizations when in
227         SSA form.
228         (gate_all_early_optimizations): New.
229         (pass_all_early_optimizations): New.
230         (tree_lowering_passes): Do not compact blocks; do early
231         optimizations when called late; free dominance info.
232         * tree-pass.h (pass_all_early_optimizations): Declare.
233         * tree-ssa-ccp (get_maxval_strlen): Allow SSA to not be complette yet.
235 2005-08-18  Jan Hubicka  <jh@suse.cz>
237         * Makefile.in (tree-ssanames, tree-eh, tree-ssa-operands): Kill GGC
238         file.
239         * function.h (struct function): Add struct ssa.
240         * tree-cfgcleanup (modified_noreturn_calls): Kill.
241         (cleanup_control_flow): Set modified_noreturn_calls only when in SSA.
242         * tree-dfa.c (referenced_vars): Kill.
243         (make_rename_temp): Touch referenced_vars only when in SSA.
244         (default_def_fn, default_def, set_default_def): New.
245         * tree-flow-inline.h (mark_stmt_modified): Only touch noreturn calls
246         when in SSA.
247         (default_def, set_default_def): Kill.
248         (is_call_clobbered, mark_call_clobbered, clear_call_clobbered,
249         mark_non_addressable): Update call_clobbered_vars and operand caches.
250         * tree-flow.h (in_ssa_p): Kill variable.
251         (struct opbuild_list_d): Declare here.
252         (struct ssa): New struct.
253         (referenced_vars, ssa_names, modified_noreturn_calls, global_var,
254         aliases_computed_p, in_ssa_p, free_ssanames, build_defs, build_uses,
255         build_v_may_defs, build_vuses, build_v_must_defs, operand_memory,
256         operand_memory_index, free_defs, free_uses, free_vuses, free_maydefs,
257         free_mustdefs): New macros.
258         (var_ann_d): Kill default_def.
259         (modified_noreturn_calls, referenced_vars, ssa_names, global_var,
260         call_clobbered_vars, addressable_vars, aliases_computed_p): Kill global
261         variable.
262         (set_default_def, default_def): No longer inline.
263         * tree-intossa.c (in_ssa_p): Kill.
264         (rewrite_into_ssa): Set in_ssa_p using x_ field.
265         * tree-optimize.c (execute_free_datastructures): Only kill SSA when
266         present.
267         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p using x_ field.
268         * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
269         addressable_vars, global_var): Kill.
270         (init_alias_info, setup_pointers_and_addressables,
271         maybe_create_global_var): Update name of call clobbered bitmaps.
272         * tree-ssa-operands.c (opbuild_list_d): Kill structure definition.
273         (build_defs, build_uses, build_v_may_defs, build_vuses,
274         build_v_must_defs, ssa_call_clobbered_cache_valid,
275         ssa_ro_call_cache_valid): Kill.
276         (ssa_call_clobbered_cache_valid_for, ssa_ro_call_cache_valid_for): New.
277         (ops_active, operand_memory, operand_memory_index): Kill.
278         (free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs): Kill.
279         (ssa_operands_active): Use cfun->ssa.
280         (init_ssa_operands): Likewise.
281         (fini_ssa_operands): Update clobbered cache.
282         (get_asm_expr_operands, get_call_expr_operands, add_call_clobber_ops,
283         debug_immediate_uses_for): Update.
284         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid,
285         ssa_ro_call_cache_valid): Rename to...
286         (ssa_call_clobbered_cache_valid_for, ssa_ro_call_cache_valid_for): ...
287         this one.
288         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Check datastructure sanity.
289         * tree-ssa-structalias (update_alias_info): Update.
290         * tree-ssa.c (init_tree_ssa): Allocate SSA structure; update for new
291         names.
292         (delete_tree_ssa): Similarly.
293         * tree-ssanames.c (ssa_names, free_ssanames): Kill; do not include
294         gt-tree-ssanames.h
295         * tree-vect-generic.c (expand_vector_operations): Do not update stmt
296         when not in SSA form.
298 2005-08-14  Jan Hubicka  <jh@suse.cz>
300         * cgraph.h (cgraph_preserve_function_body_p): New argument.
301         * cgraphunit.c (cgraph_expand_function): Update call of
302         cgraph_preserve_function_body_p.
303         (cgraph_preserve_function_body_p): New argument.
304         * ipa-inline.c (cgraph_apply_inline_plan): New function.
305         (cgraph_decide_inlining): Use it; remove unreachable nodes.
306         (cgraph_decide_inlining_incrementally): Update call of
307         optimize_inline_calls.
308         * tree-inline.c (inline_data): New field early_inlining_p.
309         (expand_call_inline): Use it.
310         (optimize_inline_calls): New argument.
311         * tree-inline.h (optimize_inline_calls): Declare.
312         * tree-optimize.c (update_inlined_to_pointers): Kill
313         (tree_rest_of_compilation): Don't perform inlining.
315 2005-08-13  Jan Hubicka  <jh@suse.cz>
317         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
318         * cgraph.h (cgraph_node): Add inline_decl.
319         (cgraph_insert_node_to_hashtable): Declare.
320         (save_inline_function_body): Declare.
321         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
322         clones.
323         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
324         (cgraph_function_versioning): Update call of tree_function_versioning.
325         (save_inline_function_body): New function.
326         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
327         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
328         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
329         (cgraph_default_inline_p): Likewise.
330         (cgraph_decide_inlining_incrementally): Likewise.
331         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
332         (copy_bb): Kill saving; do updating of clones.
333         (copy_cfg_body): Kill saving.
334         (initialize_inlined-parameters): Likewise.
335         (expand_call_inline): Likewise.
336         (save_body): Kill.
337         (tree_function_versioning): New parameter "update_clones".
338         (inlining_p): Kill saving.
339         * tree-inline.h (tree_function_versioning): Update prototype.
340         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of saving.
342         * java/decl.c (flag_unit_at_a_time): Kill.
344 2005-08-08  Olga Golovanevsky  <olga@il.ibm.com>
345         
346         * common.opt (flag_ipa_alias): New flag.
347         * ipa-prop.c (ipa_methodlist_init_empty): New function.
348         (ipa_callsite_tree, ipa_method_is_modified): Non-static.
349         (ipa_callsite_compute_param): Check for valid index.
350         (ipa_method_compute_tree_map, ipa_method_compute_modify): 
351         Exit if count is 0.
352         (ipa_calc_formals_counts): New function.
353         * ipa_prop.h (ipaa_aliasing, ipaa_num_pairs_args): 
354         New fields in ipa_node structure.
355         (ipaa_num_pairs_arg, ipaa_aliasing): New field in 
356         ipa_edge structure.
357         (alias_info_d): New enums.
358         (ipaa_driver): New declaration.
359         (IS_VALID_TREE_MAP_INDEX): New macro.
360         (ipa_callsite_tree, ipa_methodlist_init_empty, 
361         ipa_method_is_modified, ipaa_func_tree_alias_info_print, 
362         ipa_calc_formals_counts, ipaa_get_aliasing_of_formals): 
363         New declarations. 
364         * timervar.def (TV_IPA_ALIAS_ANALYSIS): New time var.
365         * tree-flow.h (ipa-prop.h): New include file.
366         (ipa_alias): New field in var_ann_d struct. 
367         * passes.c (pass_ipa_alias) : New ipa pass.
368         * tree-pass.h (pass_ipa_alias): New ipa pass structure.
369         * tree-ssa-alias.c (ipa-prop.h): New include file.
370         (may_alias_p): User ipaa interface to disambiguate formals.
371         * tree-data-ref.c: (ptr_ptr_may_alias_p): User ipaa 
372         interface to disambiguate formals.
373         * Makefile.in (ipaa.c) : Added to GTFILES.
374         (ipa-alias.o): Added as target and into OBJS-archive.
375         (IPA_PROP_H): New variable, added to TREE_FLOW_H.
376         * ipa-alias.c New file.