This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
A recent patch increased GCC's memory consumption!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Tue, 05 Jul 2005 17:28:02 +0000
- Subject: A recent patch increased GCC's memory consumption!
Hi,
I am a friendly script caring about memory consumption in GCC. Please
contact jh@suse.cz if something is going wrong.
Comparing memory consumption on compilation of combine.i, insn-attrtab.i,
and generate-3.4.ii I got:
comparing combine.c compilation at -O0 level:
Overall memory needed: 24928k -> 24932k
Peak memory use before GGC: 9717k
Peak memory use after GGC: 9064k
Maximum of released memory in single GGC run: 2816k
Garbage: 42335k -> 42333k
Leak: 6720k
Overhead: 5837k -> 5837k
GGC runs: 335 -> 334
comparing combine.c compilation at -O1 level:
Overall memory needed: 24364k
Peak memory use before GGC: 17710k
Peak memory use after GGC: 17517k
Maximum of released memory in single GGC run: 2468k -> 2484k
Garbage: 67910k -> 67973k
Leak: 7030k
Overhead: 8038k -> 8056k
GGC runs: 419 -> 420
comparing combine.c compilation at -O2 level:
Overall memory needed: 24356k
Peak memory use before GGC: 17718k
Peak memory use after GGC: 17517k
Maximum of released memory in single GGC run: 2616k
Garbage: 87244k -> 87291k
Leak: 7207k
Overhead: 10768k -> 10779k
GGC runs: 484 -> 487
comparing combine.c compilation at -O3 level:
Overall memory needed: 24840k
Peak memory use before GGC: 17968k
Peak memory use after GGC: 17549k
Maximum of released memory in single GGC run: 3439k -> 3440k
Garbage: 116180k -> 116190k
Leak: 7305k
Overhead: 14426k -> 14431k
GGC runs: 534 -> 533
comparing insn-attrtab.c compilation at -O0 level:
Amount of produced GGC garbage increased from 151641k to 151900k, overall 0.17%
Overall memory needed: 83372k
Peak memory use before GGC: 71655k
Peak memory use after GGC: 45752k
Maximum of released memory in single GGC run: 37689k
Garbage: 151641k -> 151900k
Leak: 11560k -> 11320k
Overhead: 18881k -> 18881k
GGC runs: 267 -> 268
comparing insn-attrtab.c compilation at -O1 level:
Amount of produced GGC garbage increased from 298292k to 298671k, overall 0.13%
Overall memory needed: 116668k -> 116664k
Peak memory use before GGC: 99408k
Peak memory use after GGC: 88890k
Maximum of released memory in single GGC run: 33484k
Garbage: 298292k -> 298671k
Leak: 11427k
Overhead: 35521k -> 35603k
GGC runs: 290 -> 292
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 155568k -> 154732k
Peak memory use before GGC: 118554k
Peak memory use after GGC: 88864k
Maximum of released memory in single GGC run: 33619k
Garbage: 392905k -> 393193k
Leak: 11515k
Overhead: 47614k -> 47637k
GGC runs: 329 -> 331
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 155560k -> 154732k
Peak memory use before GGC: 118558k -> 118556k
Peak memory use after GGC: 88866k
Maximum of released memory in single GGC run: 33619k
Garbage: 393708k -> 393726k
Leak: 11535k
Overhead: 47731k -> 47734k
GGC runs: 334 -> 335
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 124856k
Peak memory use before GGC: 100707k
Peak memory use after GGC: 99710k
Maximum of released memory in single GGC run: 21552k
Garbage: 230928k -> 230928k
Leak: 53150k
Overhead: 39837k
GGC runs: 337
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 108904k -> 108896k
Peak memory use before GGC: 99624k
Peak memory use after GGC: 98632k
Maximum of released memory in single GGC run: 20596k
Garbage: 645636k -> 646083k
Leak: 58288k -> 58289k
Overhead: 80489k -> 80595k
GGC runs: 526 -> 525
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 109488k -> 109524k
Peak memory use before GGC: 99624k
Peak memory use after GGC: 98632k
Maximum of released memory in single GGC run: 20595k
Garbage: 737014k -> 737366k
Leak: 58971k -> 58972k
Overhead: 97631k -> 97745k
GGC runs: 590 -> 589
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 111984k -> 111924k
Peak memory use before GGC: 101141k
Peak memory use after GGC: 100133k
Maximum of released memory in single GGC run: 21090k
Garbage: 779881k -> 780203k
Leak: 60171k -> 60172k
Overhead: 101732k -> 101781k
GGC runs: 595
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-07-05 11:51:47.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-07-05 16:22:26.000000000 +0000
@@ -1,3 +1,179 @@
+2005-07-05 Paolo Bonzini <bonzini@gnu.org>
+
+ * Makefile.in: Adjust dependencies.
+ * tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
+ * basic-block.h (duplicate_computed_gotos): Remove, it is now static.
+ * alias.c (rest_of_handle_cfg, pass_cfg): New.
+ * bb-reorder.c (duplicate_computed_gotos): Make it static.
+ * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
+ rest_of_compilation.
+
+ * bb-reorder.c (gate_duplicate_computed_gotos,
+ pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
+ rest_of_handle_reorder_blocks, pass_reorder_blocks,
+ gate_handle_partition_blocks, rest_of_handle_partition_blocks,
+ pass_partition_blocks): New.
+ * bt-load.c (gate_handle_branch_target_load_optimize,
+ rest_of_handle_branch_target_load_optimize,
+ pass_branch_target_load_optimize): New.
+ * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
+ pass_jump2): New.
+ * cfglayout.c (pass_insn_locators_initialize): New.
+ * cfgrtl.c (pass_free_cfg): New.
+ * combine.c (gate_handle_combine, rest_of_handle_combine,
+ pass_combine): New.
+ * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
+ gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
+ * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
+ * except.c (pass_set_nothrow_function_flags,
+ pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
+ pass_rtl_eh): New.
+ * final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
+ rest_of_handle_shorten_branches, pass_shorten_branches,
+ rest_of_clean_state, pass_clean_state): New.
+ * flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
+ rest_of_handle_remove_death_notes, pass_remove_death_notes,
+ rest_of_handle_life, pass_life, rest_of_handle_flow2,
+ pass_flow2): New.
+ * function.c (pass_instantiate_virtual_regs, pass_init_function,
+ rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
+ * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
+ pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
+ pass_gcse): New.
+ * global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
+ * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
+ pass_rtl_ifcvt, gate_handle_if_after_combine,
+ rest_of_handle_if_after_combine, pass_if_after_combine,
+ gate_handle_if_after_reload, rest_of_handle_if_after_reload,
+ pass_if_after_reload): New.
+ * integrate.c (pass_initial_value_sets): New.
+ * jump.c (pass_cleanup_barriers, purge_line_number_notes,
+ pass_purge_lineno_notes): New.
+ * mode-switching.c (rest_of_handle_mode_switching,
+ pass_mode_switching): New.
+ * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
+ * loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
+ pass_loop2): New.
+ * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
+ pass_loop_optimize): New.
+ * modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
+ pass_sms): New.
+ * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
+ pass_gcse2): New.
+ * postreload.c (gate_handle_postreload, rest_of_handle_postreload,
+ pass_postreload_cse): New.
+ * profile.c (gate_handle_profiling, pass_profiling,
+ rest_of_handle_branch_prob, pass_branch_prob): New.
+ * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
+ pass_split_before_regstack, gate_handle_split_before_regstack,
+ gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
+ rest_of_handle_split_all_insns, pass_split_all_insns): New.
+ * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
+ pass_stack_regs): New.
+ * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
+ gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
+ pass_stack_adjustments): New.
+ * regrename.c (gate_handle_regrename, rest_of_handle_regrename,
+ pass_regrename): New.
+ * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
+ pass_delay_slots, gate_handle_machine_reorg,
+ rest_of_handle_machine_reorg, pass_machine_reorg): New.
+ * rtl.h (extern void purge_line_number_notes): New.
+ * sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
+ gate_handle_sched2, rest_of_handle_sched2, pass_sched,
+ pass_sched2): New.
+ * tracer.c (gate_handle_tracer, rest_of_handle_tracer,
+ pass_tracer): New.
+ * value-prof.c (gate_handle_value_profile_transformations,
+ rest_of_handle_value_profile_transformations,
+ pass_value_profile_transformations): New.
+ * var-tracking.c (gate_handle_var_tracking,
+ pass_variable_tracking): New.
+ * web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
+
+ * passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
+ rest_of_handle_delay_slots, rest_of_handle_stack_regs,
+ rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
+ rest_of_handle_old_regalloc, rest_of_handle_regrename,
+ rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
+ rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
+ rest_of_handle_gcse2, rest_of_handle_regmove,
+ rest_of_handle_tracer, rest_of_handle_if_conversion,
+ rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
+ rest_of_handle_web, rest_of_handle_branch_prob,
+ rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
+ rest_of_handle_jump_bypass, rest_of_handle_combine,
+ rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
+ rest_of_handle_gcse, rest_of_handle_loop_optimize,
+ rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
+ rest_of_handle_mode_switching, rest_of_handle_jump,
+ rest_of_handle_eh, rest_of_handle_stack_adjustments,
+ rest_of_handle_flow2, rest_of_handle_jump2,
+ rest_of_handle_peephole2, rest_of_handle_postreload,
+ rest_of_handle_shorten_branches, rest_of_clean_state,
+ rest_of_compilation): Remove.
+
+ * cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
+ * passes.c (dump_flags, in_gimple_form, all_passes,
+ all_ipa_passes, all_lowering_passes, register_one_dump_file,
+ register_dump_files, next_pass_1, last_verified, execute_todo,
+ execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
+ from tree-optimize.c.
+ (init_optimization_passes): Moved from tree-optimize.c,
+ adding the RTL optimizations.
+ * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
+ * tree-optimize.c (dump_flags, in_gimple_form, all_passes,
+ all_ipa_passes, all_lowering_passes, register_one_dump_file,
+ register_dump_files, next_pass_1, last_verified, execute_todo,
+ execute_one_pass, execute_pass_list, execute_ipa_pass_list,
+ init_tree_optimization_passes, ipa_passes): Delete.
+ * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
+ the RTL dumps.
+ (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
+ dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
+ from tree.h.
+ (ipa_passes): Remove.
+ (all_passes, all_ipa_passes, all_lowering_passes): Now extern.
+ * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
+ dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
+ dump_switch_p, dump_flag_name): Moved to tree-pass.h.
+ (dump_info_p, dump_flag): Moved to tree-dump.h.
+
+ * Makefile.in: Adjust dependencies for tree-pretty-print.c,
+ cgraph.c, opts.c.
+ * passes.c (finish_optimization_passes): Use dump_begin
+ and dump_end, TDI_end.
+ (gate_rest_of_compilation): New.
+ (pass_rest_of_compilation): Use it.
+ (gate_postreload, pass_postreload): New.
+ * toplev.c (general_init): Rename init_tree_optimization_passes.
+ * toplev.h (init_tree_optimization_passes): Rename to
+ init_optimizations_passes.
+ * tree-dump.c (dump_flag): Make static.
+ (dump_files): Remove RTL dumps.
+ * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
+ pass_cleanup_cfg, pass_free_cfg_annotations,
+ pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
+ pass_init_datastructures, pass_fixup_cfg): Make non-static.
+ * tree-pretty-print.c: Include tree-pass.h.
+ * cgraph.c: Include tree-dump.h.
+
+2005-07-04 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
+ Only fall back to saying it points to readonly memory if
+ we can't do better.
+
+2005-07-05 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
+
+ * config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
+ * config/m32r/m32r.c (m32r_compute_frame_size,
+ m32r_expand_prologue): Take current_function_profile into
+ account whenever we reference
+ current_function_uses_pic_offset_table.
+ (m32r_finalize_pic): Remove.
+ * config/m32r/m32r.h (FINALIZE_PIC): Likewise.
+
2005-07-05 Kazu Hirata <kazu@codesourcery.com>
* Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
@@ -254,10 +430,10 @@
* tree-ssa-reassoc.c (should_transpose): Fix which operand
we check for SSA_NAME for.
-2005-06-29 Daniel Berlin <dberlin@dberlin.org>
+2005-07-01 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22071
-
+
* tree-ssa-structalias.c (offset_overlaps_with_access): New
function.
(get_constraint_for_component_ref): Use it.
@@ -294,22735 +470,4 @@
stack_protect_testdi): Add earlyclobber for scratch 3,
remove earlyclobber from scratch 4.
-2005-06-30 Diego Novillo <dnovillo@redhat.com>
-
- PR 21584
- PR 22219
- * tree-ssa-alias.c (create_name_tags): Also process
- non-dereferenced pointers.
- Remove argument 'ai'. Update all callers.
-
-2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
-
- * config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
- Set to 0 for FRAME_GROWS_DOWNWARD.
- (REGISTER_NAMES): Add sfp.
-
-2005-07-01 Kelley Cook <kcook@gcc.gnu.org>
-
- * config/arm/libunwind.S, config/arm/pr-support.c,
- config/arm/unwind-arm.c, config/arm/unwind-arm.h,
- config/c4x/predicates.md, tree-object-size.c: Update FSF address.
-
-2005-06-30 Eric Botcazou <ebotcazou@libertysurf.fr>
-
- PR target/22260
- * config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
- Preserve the 2nd register too, if present.
- (sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
- Adjust call to emit_and_preserve.
-
-2005-06-30 Zack Weinberg <zack@codesourcery.com>
- Jakub Jelinek <jakub@redhat.com>
-
- * pretty-print.h (PP_NL_ARGMAX): New.
- (text_info): Add locus.
- (struct chunk_info): New.
- (output_buffer): Add formatted_obstack, chunk_obstack, and
- cur_chunk_array. Change obstack to a pointer.
- (pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
- (struct pretty_print_info): Replace ideal_maximum_length and
- prefixing_rule with wrapping.
- (pp_line_cutoff, pp_prefixing_rule): Update to match.
- Update prototypes and wrapper macros throughout.
- * pretty-print.c (pp_formatted_text_data, pp_append_r)
- (pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
- (pp_base_last_position_in_text, pp_base_newline, pp_base_character):
- Update for changes to pp structure.
- (pp_base_prepare_to_format, pp_base_format_text): Delete.
- (pp_base_format, pp_base_output_formatted_text): New functions.
- (pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
- (pp_verbatim): Clear text.locus.
- (pp_printf): Likewise. Use pp_format and pp_output_formatted_text.
- * c-objc-common.c (c_tree_printer): Update function signature.
- * diagnostic.c (diagnostic_initialize): Update for changes to
- pp structure.
- (diagnostic_report_diagnostic): Call pp_format and then
- pp_output_formatted_text.
- (verbatim): Clear text.locus.
- * diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
- Update for changes to pp structure.
-
- * c-lang.c: No need to include c-pretty-print.h.
- * Makefile.in: Remove bogus line containing only a tab.
- (c-lang.o): Update dependencies.
- * toplev.c (announce_function): Don't use verbatim.
- (default_tree_printer): Update signature.
-
- * objc/objc-lang.c: No need to include c-pretty-print.h.
- * objc/Make-lang.in: Update dependencies.
-
-2005-06-29 Daniel Berlin <dberlin@dberlin.org>
-
- * tree-complex.c (complex_variable_components): Now a hashtable.
- (cvc_lookup): Ditto.
- (cvc_insert): Ditto.
- (create_components): Use referenced var iterator.
- Initialize hashtable. Use cvc_insert/lookup.
- (extract_components): Use cvc_insert/lookup.
- (update_complex_components): Ditto.
- (update_complex_components_on_edge): Ditto.
- * tree-dfa.c (referenced_vars): Now a hashtable.
- (dump_referenced_vars): Use iterator.
- (referenced_var_lookup): New function.
- (referenced_var_insert): Ditto.
- (add_referenced_var): Use referenced_var_insert.
- (mark_new_vars_to_rename): Use DECL_UID.
- * tree-flow-inline.h (first_htab_element): New function.
- (end_htab_p): Ditto.
- (next_htab_element): Ditto.
- (first_referenced_var): Ditto.
- (end_referenced_vars_p): Ditto.
- (next_referenced_var): Ditto.
- (is_call_clobbered): Use DECL_UID.
- (mark_call_clobbered): Ditto.
- (clear_call_clobbered): Ditto.
- (mark_non_addressable): Ditto.
- * tree-flow.h (htab_iterator): New struct.
- (FOR_EACH_HTAB_ELEMENT): New macro.
- (struct int_tree_map): New struct.
- (int_tree_map_hash): Prototype.
- (int_tree_map_eq): Ditto.
- (referenced_var_iterator): Ditto.
- (FOR_EACH_REFERENCED_VAR): New macro.
- (referenced_vars): Now a hashtable.
- * tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
- (add_new_name_mapping): Ditto.
- (mark_def_sites): Ditto.
- (insert_phi_nodes): Use referenced_var iterator.
- (mark_def_site_blocks): Ditto.
- (mark_sym_for_renaming): Use DECL_UID.
- * tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
- (lookup_element): Ditto.
- (find_candidates_for_sra): Use referenced_vars iterator.
- Use DECL_UID.
- * tree-ssa-alias.c (NUM_REFERENCES): New macro.
- (NUM_REFERENCES_CLEAR): Ditto.
- (NUM_REFERENCES_INC): Ditto.
- (NUM_REFERENCES_SET): Ditto.
- (alias_obstack): New bitmap obstack.
- (struct alias_map_d): Use bitmap, not sbitmap.
- (struct alias_info): Remove num_references.
- (init_alias_info): Use referenced_var iterator.
- Initialize bitmap obstack.
- (delete_alias_info): Use referenced_var iterator.
- Free bitmap obstack.
- (compute_points_to_and_addr_escape): Use DECL_UID.
- Use new NUM_REFERENCES macros.
- (compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
- Use new NUM_REFERENCES macros.
- (group_aliases_into): Update prototype to use bitmap.
- (setup_pointers_and_addressables): Use referenced_vars iterator.
- Use DECL_UID. Use new NUM_REFERENCES macros.
- (add_pointed_to_var): Use DECL_UID.
- (dump_alias_info): Use referenced_var iterator.
- (add_type_alias): Ditto.
- (used_portions): Now a hashtable.
- (used_part_map_eq): New function.
- (used_part_map_hash): Ditto.
- (free_used_part_map): Ditto.
- (up_lookup): Ditto.
- (up_insert): Ditto.
- (get_or_create_used_part_for): Use up_lookup.
- (create_overlap_variables_for): Ditto.
- (find_used_portions): Use up_insert.
- Use DECL_UID.
- (create_structure_vars): Init used_portions hashtable, use
- referenced_vars iterator.
- * tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
- Use DECL_UID.
- * tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
- * tree-ssa-operands.c (get_asm_expr_operands): Ditto.
- (note_addressable): Ditto.
- * tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
- * tree-ssa.c (verify_flow_insensitive_alias_info): Use
- referenced_var iterator.
- Use DECL_UID.
- (delete_tree_ssa): Ditto.
- (int_tree_map_eq): New function.
- (int_tree_map_hash): Ditto.
- * tree-stdarg.c (find_va_list_reference): Use DECL_UID.
- (va_list_ptr_read): Ditto.
- (va_list_counter_struct_op): Ditto.
- (va_list_ptr_write): Ditto.
- (check_va_list_escapes): Ditto.
- (check_all_va_list_escapes): Ditto.
- (execute_optimize_stdarg): Ditto.
- * tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
- iterator.
-
-2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
-
- * config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
- (HARD_FRAME_POINTER_REGNUM): this.
-
-2005-06-30 Jan Hubicka <jh@suse.cz>
-
- * ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
-
-2005-06-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
-
- PR middle-end/22247
- * tree-ssa-structalias.c (build_constraint_graph, scc_visit,
- process_unification_queue, init_topo_info, topo_visit,
- init_scc_info, free_scc_info, perform_var_substitution,
- solve_graph): Use unsigned instead of uint.
-
-2005-06-30 Jakub Jelinek <jakub@redhat.com>
-
- * function.c (gen_stack_protect_test): Add third argument.
-
-2005-06-30 J. D. Johnston <jjohnst@us.ibm.com>
-
- * gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
-
-2005-06-30 Kazu Hirata <kazu@codesourcery.com>
-
- * config/c4x/c4x-protos.h: Remove the prototypes for those
- functions removed from c4x.c. Add prototypes for those
- functions exported in c4x.c.
- * config/c4x/c4x.c (any_operand, fp_zero_operand,
- const_operand, stik_const_operand, not_const_operand,
- reg_operand, r0r1_reg_operand, r2r3_reg_operand,
- ext_low_reg_operand, ext_reg_operand, std_reg_operand,
- std_or_reg_operand, addr_reg_operand, index_reg_operand,
- dp_reg_operand, sp_reg_operand, st_reg_operand,
- rc_reg_operand, call_address_operand,
- symbolic_address_operand, dst_operand, src_operand,
- src_hi_operand, lsrc_operand, tsrc_operand,
- nonimmediate_src_operand, nonimmediate_lsrc_operand,
- reg_or_const_operand, par_ind_operand, parallel_operand):
- Remove.
- (c4x_immed_float_p, c4x_a_register, c4x_x_register,
- c4x_K_constant, c4x_N_constant, c4x_O_constant,
- c4x_S_indirect): Export.
- * config/c4x/c4x.h (PREDICATE_CODES): Remove.
- * config/c4x/c4x.md: Include predicates.md.
- * config/c4x/predicates.md: New.
-
-2005-06-30 Jakub Jelinek <jakub@redhat.com>
-
- * function.c (stack_protect_epilogue): Pass label to
- stack_protect_test, assume it emitted also the conditional
- branch.
- * doc/md.texi (stack_protect_test): Adjust documentation.
- * config/i386/i386.md (stack_protect_test): Add third argument,
- emit beq with operands[2].
- * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
- flag_stack_protect != 0.
- * config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
- constants.
- (stack_protect_set, stack_protect_test): New expanders.
- (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
- stack_protect_testdi): New insns.
- * config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
- (TARGET_STACK_PROTECT_FAIL): Define.
- (rs6000_generate_compare): Handle UNSPEC_SP_TEST.
-
- * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
- (DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
- that addition of sfp doesn't change these.
- (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
- REG_ALLOC_ORDER): Add sfp.
- (INT_REGNO_P): Include FRAME_POINTER_REGNUM.
- (FRAME_POINTER_REGNUM): Define to 113.
- (HARD_FRAME_POINTER_REGNUM): Define to 31.
- (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
- (STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
- (ELIMINABLE_REGS): Never eliminate to
- FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
- instead. Add eliminations from FRAME_POINTER_REGNUM.
- (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
- Include FRAME_POINTER_REGNUM.
- (REGISTER_NAMES): Add sfp.
- * config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
- (alt_reg_names): Likewise.
- (rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
- (rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
- instead of FRAME_POINTER_REGNUM.
- (rs6000_initial_elimination_offset): Never eliminate to
- FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
- instead. Add elimination offsets from FRAME_POINTER_REGNUM.
-
- * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
- if DEFAULT_ABI == ABI_V4.
-
-2005-06-30 Steven Bosscher <stevenb@suse.de>
-
- * coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
- * tree.h (struct tree_decl): New field `tls_model'.
- (DECL_TLS_MODEL): New.
- (DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
- a predicate.
- * rtl.h (decl_default_tls_model): Add prototype for it.
- * varasm.c (decl_tls_model): Rewritten and renamed to ...
- (decl_default_tls_model): ... this.
- (default_encode_section_info): Use DECL_TLS_MODEL instead of
- decl_tls_model.
- (assemble_variable): Replace DECL_THREAD_LOCAL with
- DECL_THREAD_LOCAL_P.
- (default_section_type_flags_1): Likewise.
- (categorize_decl_for_section): Likewise.
- * tree.c (staticp): Likewise.
- (recompute_tree_invarant_for_addr_expr): Likewise.
- * drawf2out (loc_descriptor_from_tree_1): Likewise.
- * c-decl.c (diagnose_mismatched_decls): Likewise.
- with DECL_THREAD_LOCAL_P.
- (start_decl): Likewise.
- * print-tree.c (print_node): Likewise. Print the TLS model.
- (grokdeclarator): Set the default DECL_TLS_MODEL here.
- * c-common.c (handle_tls_model_attribute): Rewrite to set the
- TLS model up based on the attribute. Never add the attribute
- to the decl's attributes list.
- * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
- DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
-
-2005-06-30 Zdenek Dvorak <dvorakz@suse.cz>
-
- PR testsuite/21967
- * tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
- TMR_ORIGINAL.
-
-2005-06-30 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
- mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
- necessary digit.
-
-2005-06-29 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
-
-2005-06-29 Diego Novillo <dnovillo@redhat.com>
-
- PR 22234
- * tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
- when following copy-of chains.
-
-2005-06-30 Jan Hubicka <jh@suse.cz>
-
- * function.h (struct function): Add saved blocks/unexpanded var list.
- * gimple-low.c (record_vars): Insert only VAR_DECLs.
- * tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
- (remap_decl): Do not declare vars.
- (remap_block): Do not care inserting blocks.
- (remap_blocks): New function.
- (copy_body_r): Update debug info.
- (expand_call_inline): Duplicate callee block tree into caller;
- copy all the unexpanded_var_list.
- (save_body): Save unexpanded_var_list and blocks.
- * tree-optimize.c (tree_rest_of_optimization): Restore
- blocks/unexpanded_var_list.
-
-2005-06-29 Richard Henderson <rth@redhat.com>
-
- * config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
- plus for V4HImode UMAX.
-
-2005-06-29 Joseph S. Myers <joseph@codesourcery.com>
-
- * c-tree.h (default_function_array_conversion): Take and return
- struct c_expr.
- * c-typeck.c (default_function_array_conversion): Split into
- array_to_pointer_conversion and function_to_pointer_conversion.
- Take and return struct c_expr.
- (array_to_pointer_conversion): Do not handle type qualifiers or
- COMPOUND_EXPRs specially.
- (build_function_call): Call function_to_pointer_conversion for
- function designators.
- (build_unary_op): Call array_to_pointer_conversion, not
- default_function_array_conversion.
- (digest_init, output_init_element): Likewise.
- * c-parser.c: All callers of default_function_array_conversion
- changed.
-
-2005-06-29 Ziemowit Laski <zlaski@apple.com>
-
- * config/darwin.c (machopic_select_section): constant ObjC string
- objects now always have type "__builtin_ObjCString".
-
-2005-06-29 Richard Henderson <rth@redhat.com>
-
- * config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.
-
-2005-06-29 Richard Henderson <rth@redhat.com>
-
- * tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
- (vect_create_epilog_for_reduction): Don't use vec_shr if the
- operation is emulated.
- (vectorizable_reduction): Duplicate vect_min_worthwhile_factor
- tests from vectorizable_operation.
-
-2005-06-29 Caroline Tice <ctice@apple.com>
-
- Fix PR 21956
- * varasm.c (assemble_start_function): Add "L" to beginning of
- local labels, so assembler & linker treat them as local.
-
-2005-06-29 Richard Henderson <rth@redhat.com>
-
- * config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
- argument. Simplify canonicalization of condition. Use unsigned
- saturating subtraction for QI and HImode unsigned compares. Use
- bit arithmetic tricks for SImode unsigned compares.
- * config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
- * config/i386/sse.md (SSEMODE14): New.
- (umaxv8hi3): Use us_minus+plus to avoid vcond.
- (umaxv4si3): New.
- (smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
- (smin<SSEMODE14>3): Similarly with sminv16qi3.
- (umin<SSEMODE24>3): Similarly with uminv8hi3.
-
-2005-06-29 Ian Lance Taylor <ian@airs.com>
-
- * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
- GEN_INT to gen_int_for_mode when storing register size to memory.
-
-2005-06-29 Stuart Hastings <stuart@apple.com>
-
- * gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
- * gcc/config/i386/emmintrin.h: Likewise.
- * gcc/config/i386/pmmintrin.h: Likewise.
- * gcc/config/i386/xmmintrin.h: Likewise.
-
-2005-06-29 Steve Ellcey <sje@cup.hp.com>
-
- PR middle-end/21969
- * tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
- (SET_TYPE_VECTOR_SUBPARTS): New.
- * tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
- SET_TYPE_VECTOR_SUBPARTS.
- * tree-vect-transform.c (vect_transform_loop): Add cast.
-
-2005-06-29 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.c (s390_decompose_address): Accept invalid
- displacements for addresses containing frame_pointer_rtx or
- virtual_stack_vars_rtx.
- (s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
- (s390_initial_elimination_offset): New offset when eliminating the
- soft frame pointer.
- * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
- (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
-
-2006-06-28 Ziemowit Laski <zlaski@apple.com>
-
- * c-common.c (flag_next_runtime): Move...
- * toplev.c (flag_next_runtime): ... here.
- * c-common.h (flag_next_runtime): Move...
- * flags.h (flag_next_runtime): ... here.
- * config/darwin-c.c: Include flags.h.
- * config/t-darwin (darwin-c.o): Depend on flags.h.
-
-2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * config/sh/linux-unwind.h (shmedia_fallback_frame_state):
- Disable aliasing warning with void * cast.
- (sh_fallback_frame_state): Likewise.
-
-2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
-
- * target.h (gcc_target): New field allocate_initial_value.
- * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
- (TARGET_INITIALIZER): Include it.
- * integrate.c (allocate_initial_values): Use
- targetm.allocate_initial_value.
- * system.h: Poison ALLOCATE_INITIAL_VALUE.
- * config/sh/sh-protos.h (sh_pr_n_sets): Delete.
- * config/sh/sh.c (sh_pr_n_sets): Make it static.
- (sh_allocate_initila_value): New function.
- (TARGET_ALLOCATE_INITIAL_VALUE): Override default.
- * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
- * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
- update from ALLOCATE_INITIAL_VALUE.
-
-2005-06-28 Richard Henderson <rth@redhat.com>
-
- * tree-vectorizer.c (vect_is_simple_reduction): Compare types
- using TYPE_MAIN_VARIANT.
-
-2005-06-28 Richard Henderson <rth@redhat.com>
-
- * config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
- when using psubN.uuu.
-
-2005-06-29 Kelley Cook <kcook@gcc.gnu.org>
-
- * doc/gcc.texi: Update FSF address.
-
-2005-06-28 Eric Christopher <echristo@redhat.com>
-
- PR c/22052
- PR c/21975
- * c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
- Use. Fix detection of invalid extern inline redefinition.
-
-2005-06-28 Diego Novillo <dnovillo@redhat.com>
-
- * tree-optimize.c (init_tree_optimization_passes): Fix typo.
-
-2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
-
- * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
-
-2005-06-28 Richard Henderson <rth@redhat.com>
-
- * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
- saturating subtraction for QI and HImode unsigned compares. Use
- bit arithmetic tricks for SImode unsigned compares.
- (ia64_expand_vcondu_v2si): Remove.
- (ia64_expand_vecint_cmov): Don't call it.
-
-2005-06-28 Richard Henderson <rth@redhat.com>
-
- * rtlanal.c (nonzero_bits1): Use the mode of the value for
- determining integral-ness for comparisons.
-
-2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
-
- * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
-
-2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
-
- * target.h (invalid_conversion, invalid_unary_op,
- invalid_binary_op): New hooks.
- * target-def.h (TARGET_INVALID_CONVERSION,
- TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
- TARGET_INITIALIZER): Likewise.
- * hooks.h (hook_constcharptr_tree_tree_null,
- hook_constcharptr_int_tree_null,
- hook_constcharptr_int_tree_tree_null): New.
- * hooks.c (hook_constcharptr_tree_tree_null,
- hook_constcharptr_int_tree_null,
- hook_constcharptr_int_tree_tree_null): Likewise.
- * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
- TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
- * c-convert.c (convert): Use invalid_conversion hook.
- * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
- (build_binary_op): Use invalid_binary_op hook.
- * config/ia64/ia64-modes.def: Define RFmode.
- * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
- (ia64_expand_movxf_movrf): New.
- * config/ia64/ia64.md (movxf): Move code to
- ia64_expand_movxf_movrf.
- (movrf, movrf_internal): New.
- * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
- ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
- TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
- (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
- Add mode parameter. Make static.
- (ia64_expand_movxf_movrf): New, moved from ia64.md. Handle RFmode
- as well as XFmode.
- (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
- ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
- (ia64_init_builtins): Set up __fpreg as RFmode.
- (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
-
-2006-06-28 Adrian Straetling <straetling@de.ibm.com>
-
- * builtins.c: (expand_builtin_memset): Rewrite to support
- 'set_storage_via_setmem'.
- * expr.c: (enum insn_code setmem_optab): Define.
- (enum insn_code clrmem_optab): Remove.
- (set_storage_via_setmem): New function.
- (clear_storage_via_setmem): Remove.
- (clear_storage): Replace call to "clear_storage_via_clrmem" with
- "set_storage_via_setmem".
- * expr.h: (set_storage_via_setmem): Declare.
- (CLEAR_RATIO): Redefine using HAVE_setmemM.
- * optabs.h: (enum insn_code setmem_optab): Declare.
- (enum insn_code clrmem_optab): Remove.
- * optabs.c: (init_optabs): Initialize setmem_optab.
- (enum insn_code clrmem_optab): Remove.
- * genopinit.c: (otabs): Likewise.
- * doc/md.texi: Document new standard pattern 'setmem'. Remove
- 'clrmem'.
- * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
- 'operands' ordering.
- * config/frv/frv.c: (frv_expand_block_clear): Likewise.
- * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
- * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
- FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
- * config/avr/avr.md: ("clrmemhi"): Likewise.
- * config/frv/frv.md: ("clrmemsi"): Likewise.
- * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
- * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
- * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
- * config/s390/s390.md: ("clrmem<mode>"): Likewise.
-
-2005-06-28 Paul Brook <paul@codesourcery.com>
-
- * Makefile.in: Set and use UNWIND_H. Install as unwind.h.
- * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
- * except.c (add_ehspec_entry): Generate arm eabi filter lists.
- (assign_filter_values): Ditto.
- (output_ttype): New function.
- (output_function_exception_table): Use output_ttype. Generate arm
- eabi filter lists.
- (default_init_unwind_resume_libfunc): New function.
- * except.h (default_init_unwind_resume_libfunc): Add prototype.
- * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
- * opts.c (decode_options): Use targetm.unwind_tables_default.
- * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
- (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
- * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
- and arm_eabi_unwinder.
- * unwind-c.c: Support Arm EABI unwinder.
- * unwind.h: Rename ...
- * unwind-generic.h: ... To this.
- * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
- (TARGET_UNWID_TABLES_DEFAULT): Document.
-
- * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
- * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
- (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
- Define.
- (thumb_pushpop, thumb_output_function_prologue): Output unwinding
- directives.
- (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
- * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
- !TARGET_UNWIND_INFO.
- (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
- * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
- * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
- ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
- * config/arm/lib1funcs.asm: Include libunwind.S.
- * config/arm/libgcc-bpabi.ver: Add unwinding routines.
- * config/arm/libunwind.S: New file.
- * config/arm/pr-support.c: New file.
- * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
- (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
- * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
- * config/arm/unwind-arm.c: New file.
- * config/arm/unwind-arm.h: New file.
- * config/i386/t-netware (USER_H): Remove unwind.h.
- * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
-
-2005-06-28 DJ Delorie <dj@redhat.com>
-
- * c-decl.c (pop_scope): Move warning control into warning call.
- (diagnose_mismatched_decls): Likewise.
- (pushdecl): Likewise.
- (start_decl): Likewise.
- (grokparms): Likewise.
- (start_function): Likewise.
- (store_parm_decls_newstyle): Likewise.
- (store_parm_decls_oldstyle): Likewise.
- (finish_function): Likewise.
- (declspecs_add_scspec): Likewise.
- * c-format.c (decode_format_attr): Likewise.
- (maybe_read_dollar_number): Likewise.
- (avoid_dollar_number): Likewise.
- (finish_dollar_format_checking): Likewise.
- (check_format_info): Likewise.
- (check_format_info_main): Likewise.
- (check_format_types): Likewise.
- (format_type_warning): Likewise.
- * c-typeck.c (function_types_compatible_p): Likewise.
- (build_array_ref): Likewise.
- (convert_arguments): Likewise.
- (build_c_cast): Likewise.
- (store_init_value): Likewise.
- (process_init_element): Likewise.
- (c_start_case): Likewise.
- * stor-layout.c (finalize_record_size): Likewise.
- * tree-cfg.c (execute_warn_function_noreturn): Likewise.
- * tree-inline.c (expand_call_inline): Likewise.
-
-2005-06-28 Uros Bizjak <uros@kss-loka.si>
-
- PR target/22134
- * config/i386/i386.md (fist<mode>2_with_temp splitter):
- Clobber memory operand, not scratch register.
-
-2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * config/s390/s390.c (machine_function): New field has_landing_pad_p.
- (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
- s390_regs_ever_clobbered): New functions.
- (s390_return_addr_rtx): Use get_hard_reg_initial_value.
- (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
- Use s390_regs_ever_clobbered.
- (s390_emit_prologue): Don't use r14 as temp reg if its content is used
- for builtin_return_address.
- * config/s390/s390.md ("exception_receiver"): New expander.
- * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
- added.
-
-2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
-
- * except.c (current_function_has_exception_handlers): Function
- description added and if statements merged.
-
-2005-06-28 Richard Henderson <rth@redhat.com>
-
- * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
- (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
-
-2005-06-27 Richard Henderson <rth@redhat.com>
-
- * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
- comparison operations.
- (ia64_expand_vecint_minmax): Fix size of xops.
- * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
- (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
-
-2005-06-27 Richard Henderson <rth@redhat.com>
-
- * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
- type for DEF and INIT_VAL. Pretend MIN/MAX need epilogue adjustment.
-
-2005-06-27 Richard Henderson <rth@redhat.com>
-
- * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
- (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
-
-2005-06-27 Richard Henderson <rth@redhat.com>
-
- * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
- duplicate little-endian adjustment.
-
-2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
-
- * doc/include/texinfo.tex: Import from upstream CVS.
-
-2005-06-28 Jan Hubicka <jh@suse.cz>
-
- * cgraph.c (cgraph_remove_node): Do not release function bodies until
- full cgraph is built.
- * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
- * cgraphunit.c (cgraph_finalize_function): Update call of
- cgraph_decide_inlining_incrementally.
- (initialize_inline_failed): Break out of ...
- (cgraph_analyze_function): ... here.
- (rebuild_cgraph_edges): New function.
- (pass_rebuild_cgraph_edges): New pass.
- * common.opt (fearly-inlining): New flag.
- * ipa-inline.c: Include ggc.h
- (cgraph_clone_inlined_nodes): Avoid re-using of original copy
- when cgraph is not fully built.
- (cgraph_decide_inlining_incrementally): Add early mode.
- (cgraph_early_inlining): New function.
- (cgraph_gate_early_inlining): Likewise.
- (pass_early_ipa_inline): New pass.
- * ipa.c (cgraph_postorder): NULLify aux pointer.
- * tree-inline.c (expand_call_inline): Avoid warning early.
- * tree-optimize.c (pass_early_local_passes): New.
- (execute_cleanup_cfg_pre_ipa): New.
- (pass_cleanup_cfg): New.
- (register_dump_files): Fix handling subpasses of IPA pass.
- (init_tree_optimization_passes): Add early passes.
- (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
- * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
- pass_early_ipa_inline): New passes.
- * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
-
- * invoke.texi: Document early-inlining.
-
-2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
-
- * doc/include/fdl.texi: Merge in changes from upstream.
- * doc/include/gpl.texi: Likewise.
-
-2005-06-27 Diego Novillo <dnovillo@redhat.com>
-
- PR 21959
- * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
- casts between unsigned and signed types with different size
- or precision.
-
-2005-06-28 Jan Hubicka <jh@suse.cz>
-
- * tree-optimize.c (exercute_free_datastructures):
- Do not disband implicit edges; do not attempt to build insn list;
- do not free cfg annotations.
- (execute_free_cfg_annotations); Disband implicit edges here;
- free cfg annotations here too.
- (pass_free_cfg_annotations); New pass.
- (init_tree_optimization_passes); Add pass_free_cfg_annotations.
- * tree-ssa-operands.c (free_ssa_operands); Recover; export.
- * tree-ssa-operands.h (free_ssa_operands); declare.
- * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
- kill PHI nodes.
- * tree-ssanames.c (release_defs): Kill addresses_taken.
-
- * basic-block.h (basic_block_def): Kill rbi.
- (reorder_block_def): Kill; Remove next field (replaced by aux);
- move other fields to ...
- (rtl_bb_info): ... here.
- * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
- copy_bb, connect_traces, add_labels_and_missing_jumps
- fix_up_fall_thru_edges, fix_crossing_conditional_branches,
- duplicate_computed_gotos, partition_hot_cold_basic-blocks):
- Update to new fields.
- * cfg.c (initialize_bb_rbi): Kill.
- * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
- fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
- * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
- (try_redirect_by_replacing_jump): Update rbi references.
- (cfg_layout_split_block): Likewise.
- (cfg_layout_delete_block): Likewise.
- (cfg_layout_merge_blocks): Likewise.
- * function.c (thread_prologue_and_epilogue_insns): Likewise.
- * passes.c (rest_of_handle_sms): Likewise.
- * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
-
-2005-06-27 David Edelsohn <edelsohn@gnu.org>
-
- * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
- in verbose_asm output.
- * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
- CONFIG_PPC405CR.
- * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
- 405cr.
-
-2005-06-27 Jakub Jelinek <jakub@redhat.com>
-
- * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
- (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
- (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
- (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
- ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
- * builtins.c: Include tree-flow.h.
- (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
The results can be reproduced by building a compiler with
--enable-gather-detailed-mem-stats targetting x86-64
and compiling preprocessed combine.c or testcase from PR8632 with:
-fmem-report --param=ggc-min-heapsize=1024 --param=ggc-min-expand=1 -Ox -Q
The memory consumption summary appears in the dump after detailed listing
of the places they are allocated in. Peak memory consumption is actually
computed by looking for maximal value in {GC XXXX -> YYYY} report.
Your testing script.