A recent patch increased GCC's memory consumption in some cases!

gcctest@suse.de gcctest@suse.de
Thu Jul 26 06:44:00 GMT 2007


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 empty function compilation at -O0 level:
    Overall memory needed: 8332k
    Peak memory use before GGC: 3386k
    Peak memory use after GGC: 3033k
    Maximum of released memory in single GGC run: 353k
    Garbage: 525k
    Leak: 3786k
    Overhead: 913k
    GGC runs: 3

comparing empty function compilation at -O0 -g level:
    Overall memory needed: 8348k
    Peak memory use before GGC: 3413k
    Peak memory use after GGC: 3061k
    Maximum of released memory in single GGC run: 352k
    Garbage: 527k
    Leak: 3819k
    Overhead: 917k
    GGC runs: 3

comparing empty function compilation at -O1 level:
    Overall memory needed: 8388k
    Peak memory use before GGC: 3386k
    Peak memory use after GGC: 3033k
    Maximum of released memory in single GGC run: 353k
    Garbage: 530k
    Leak: 3789k
    Overhead: 913k
    GGC runs: 3

comparing empty function compilation at -O2 level:
    Overall memory needed: 8388k
    Peak memory use before GGC: 3386k
    Peak memory use after GGC: 3034k
    Maximum of released memory in single GGC run: 352k
    Garbage: 533k
    Leak: 3790k
    Overhead: 914k
    GGC runs: 3

comparing empty function compilation at -O3 level:
    Overall memory needed: 8388k
    Peak memory use before GGC: 3386k
    Peak memory use after GGC: 3034k
    Maximum of released memory in single GGC run: 352k
    Garbage: 533k
    Leak: 3790k
    Overhead: 914k
    GGC runs: 3

comparing combine.c compilation at -O0 level:
    Overall memory needed: 23840k -> 23844k
    Peak memory use before GGC: 10324k
    Peak memory use after GGC: 9555k
    Maximum of released memory in single GGC run: 1905k
    Garbage: 39044k
    Leak: 8843k
    Overhead: 5685k
    GGC runs: 254

comparing combine.c compilation at -O0 -g level:
    Overall memory needed: 25716k
    Peak memory use before GGC: 11987k
    Peak memory use after GGC: 11347k
    Maximum of released memory in single GGC run: 1516k
    Garbage: 39429k
    Leak: 11728k
    Overhead: 6391k
    GGC runs: 249

comparing combine.c compilation at -O1 level:
    Overall memory needed: 37576k -> 37572k
    Peak memory use before GGC: 18982k -> 18977k
    Peak memory use after GGC: 18791k -> 18786k
    Maximum of released memory in single GGC run: 1370k
    Garbage: 53257k -> 53251k
    Leak: 8899k
    Overhead: 6745k -> 6745k
    GGC runs: 326

comparing combine.c compilation at -O2 level:
    Overall memory needed: 39608k
    Peak memory use before GGC: 19036k -> 19031k
    Peak memory use after GGC: 18848k -> 18842k
    Maximum of released memory in single GGC run: 1403k -> 1404k
    Garbage: 71795k -> 71785k
    Leak: 9028k
    Overhead: 8878k -> 8878k
    GGC runs: 387

comparing combine.c compilation at -O3 level:
    Overall memory needed: 42252k -> 42220k
    Peak memory use before GGC: 19283k -> 19275k
    Peak memory use after GGC: 18974k -> 18966k
    Maximum of released memory in single GGC run: 2104k -> 2103k
    Garbage: 93364k -> 93363k
    Leak: 9130k -> 9133k
    Overhead: 11541k -> 11540k
    GGC runs: 417

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 143156k -> 143152k
    Peak memory use before GGC: 60813k
    Peak memory use after GGC: 34063k
    Maximum of released memory in single GGC run: 34384k
    Garbage: 132285k
    Leak: 11333k
    Overhead: 14975k
    GGC runs: 198

comparing insn-attrtab.c compilation at -O0 -g level:
    Overall memory needed: 144424k -> 144420k
    Peak memory use before GGC: 61975k
    Peak memory use after GGC: 35224k
    Maximum of released memory in single GGC run: 34385k
    Garbage: 132514k
    Leak: 13042k
    Overhead: 15372k
    GGC runs: 201

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 154568k -> 155164k
    Peak memory use before GGC: 59311k
    Peak memory use after GGC: 55086k
    Maximum of released memory in single GGC run: 23586k
    Garbage: 217478k -> 217480k
    Leak: 11464k -> 11462k
    Overhead: 25167k
    GGC runs: 229

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 193612k -> 193608k
    Peak memory use before GGC: 59194k
    Peak memory use after GGC: 55147k
    Maximum of released memory in single GGC run: 21337k -> 21338k
    Garbage: 253141k -> 253143k
    Leak: 11459k -> 11457k
    Overhead: 30630k
    GGC runs: 254

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 199216k -> 199212k
    Peak memory use before GGC: 71751k -> 71750k
    Peak memory use after GGC: 65982k -> 65981k
    Maximum of released memory in single GGC run: 22951k -> 22952k
    Garbage: 282505k -> 282514k
    Leak: 11468k -> 11465k
    Overhead: 32426k -> 32427k
    GGC runs: 256 -> 257

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 156835k -> 156799k
    Peak memory use before GGC: 91617k
    Peak memory use after GGC: 90699k
    Maximum of released memory in single GGC run: 18002k
    Garbage: 210811k
    Leak: 55672k
    Overhead: 26877k
    GGC runs: 397

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
    Overall memory needed: 177819k
    Peak memory use before GGC: 104507k
    Peak memory use after GGC: 103472k
    Maximum of released memory in single GGC run: 18639k
    Garbage: 216668k
    Leak: 79100k
    Overhead: 32845k
    GGC runs: 373

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Ovarall memory allocated via mmap and sbrk decreased from 153449k to 143408k, overall -7.00%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 103601k to 93644k, overall -10.63%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 102502k to 92716k, overall -10.55%
  Amount of produced GGC garbage decreased from 332784k to 319508k, overall -4.16%
    Overall memory needed: 153449k -> 143408k
    Peak memory use before GGC: 103601k -> 93644k
    Peak memory use after GGC: 102502k -> 92716k
    Maximum of released memory in single GGC run: 17399k -> 17407k
    Garbage: 332784k -> 319508k
    Leak: 55781k -> 55592k
    Overhead: 33915k -> 32820k
    GGC runs: 499 -> 502

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 164253k to 154156k, overall -6.55%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 104180k to 94128k, overall -10.68%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 103147k to 93195k, overall -10.68%
  Amount of produced GGC garbage decreased from 389281k to 375895k, overall -3.56%
    Overall memory needed: 164253k -> 154156k
    Peak memory use before GGC: 104180k -> 94128k
    Peak memory use after GGC: 103147k -> 93195k
    Maximum of released memory in single GGC run: 17400k -> 17407k
    Garbage: 389281k -> 375895k
    Leak: 56469k -> 56347k
    Overhead: 40178k -> 39007k
    GGC runs: 557 -> 562

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 168941k to 157952k, overall -6.96%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 106514k to 95162k, overall -11.93%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 105432k to 94088k, overall -12.06%
  Amount of produced GGC garbage decreased from 432725k to 417675k, overall -3.60%
    Overall memory needed: 168941k -> 157952k
    Peak memory use before GGC: 106514k -> 95162k
    Peak memory use after GGC: 105432k -> 94088k
    Maximum of released memory in single GGC run: 17828k
    Garbage: 432725k -> 417675k
    Leak: 57195k -> 56666k
    Overhead: 43783k -> 42570k
    GGC runs: 584 -> 588

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
    Overall memory needed: 387687k -> 387686k
    Peak memory use before GGC: 103466k
    Peak memory use after GGC: 59120k
    Maximum of released memory in single GGC run: 50582k
    Garbage: 179673k
    Leak: 8998k
    Overhead: 31652k
    GGC runs: 65

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
    Overall memory needed: 388507k -> 388506k
    Peak memory use before GGC: 104113k
    Peak memory use after GGC: 59766k
    Maximum of released memory in single GGC run: 50583k
    Garbage: 179826k
    Leak: 10766k
    Overhead: 32147k
    GGC runs: 72

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
  Amount of produced GGC garbage increased from 232739k to 235815k, overall 1.32%
  Amount of memory still referenced at the end of compilation decreased from 22617k to 18368k, overall -23.13%
    Overall memory needed: 306732k -> 309516k
    Peak memory use before GGC: 84313k -> 82809k
    Peak memory use after GGC: 75965k -> 75162k
    Maximum of released memory in single GGC run: 39284k -> 40023k
    Garbage: 232739k -> 235815k
    Leak: 22617k -> 18368k
    Overhead: 32720k -> 32669k
    GGC runs: 71 -> 72

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
  Amount of produced GGC garbage increased from 242836k to 245912k, overall 1.27%
  Amount of memory still referenced at the end of compilation decreased from 22699k to 18450k, overall -23.03%
    Overall memory needed: 314796k -> 313632k
    Peak memory use before GGC: 80952k -> 80148k
    Peak memory use after GGC: 75966k -> 75162k
    Maximum of released memory in single GGC run: 33018k -> 33756k
    Garbage: 242836k -> 245912k
    Leak: 22699k -> 18450k
    Overhead: 34952k -> 34901k
    GGC runs: 85

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
  Peak amount of GGC memory allocated before garbage collecting run decreased from 184706k to 168790k, overall -9.43%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 172222k to 158354k, overall -8.76%
  Amount of produced GGC garbage increased from 349828k to 356177k, overall 1.81%
  Amount of memory still referenced at the end of compilation decreased from 48697k to 28532k, overall -70.68%
    Overall memory needed: 1032164k -> 1015512k
    Peak memory use before GGC: 184706k -> 168790k
    Peak memory use after GGC: 172222k -> 158354k
    Maximum of released memory in single GGC run: 80995k -> 83548k
    Garbage: 349828k -> 356177k
    Leak: 48697k -> 28532k
    Overhead: 47427k -> 46844k
    GGC runs: 67 -> 69

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2007-07-25 11:28:52.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2007-07-26 04:39:29.000000000 +0000
@@ -1,3 +1,592 @@
+2007-07-26  Jan Hubicka  <jh@suse.cz>
+
+	* tree-ssa-live.c: Include debug.h and flags.h.
+	(mark_scope_block_unused): New function.
+	(remove_unused_scope_block_p): New function.
+	(remove_unused_locals): Remove unused blocks too.
+
+2007-07-25  Ian Lance Taylor  <iant@google.com>
+
+	* combine.c (combine_max_regno): Remove.  Remove all uses.
+	(struct reg_stat_struct): Rename from struct reg_stat.
+	(reg_stat_type): Define, and declare VECs.
+	(reg_stat): Change from pointer to VEC.  Change all uses.
+	(combine_split_insns): New static function.
+	(try_combine, find_split_point): Call it instead of split_insns.
+
+2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
+
+	* cfghooks.c (split_block): Fix the information about loop latch.
+
+2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
+
+	* cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
+
+2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
+
+	* tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
+	Scan the new edge for loop exit info.
+
+2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>
+
+	* config/darwin.c: Include debug.h.
+
+2007-07-25  Steve Ellcey  <sje@cup.hp.com>
+
+	PR target/32218
+	* tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
+
+2007-07-25  Steve Ellcey  <sje@cup.hp.com>
+
+	* config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
+	(HARD_REGNO_MODE_OK): Ditto.
+	(MODES_TIEABLE_P): Ditto.
+	(HARD_REGNO_CALLER_SAVE_MODE): Ditto.
+	(CLASS_MAX_NREGS): Ditto.
+	* config/ia64/ia64.c (ia64_print_operand_address): Add R format.
+	* config/ia64/ia64.md (divsf3_internal_thr): Removed.
+	(divdf3_internal_thr): Removed.
+	* config/ia64/div.md: New file.
+	* config/ia64/constraints.md: Add H constraint.
+
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
+	sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
+	sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
+	sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
+	sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
+	sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
+	sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
+	sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
+	sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
+	dump_sbitmap_file, debug_sbitmap, popcount_table,
+	sbitmap_popcount): Constify.
+	* sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
+	(sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
+	dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
+	sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
+	sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
+	sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
+	sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
+	sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
+	sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
+	sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
+	sbitmap_popcount, sbitmap_verify_popcount): Constify.
+
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
+	bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
+	bitmap_first_set_bit, bitmap_and, bitmap_and_into,
+	bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
+	bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
+	bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
+	bitmap_intersect_p, bitmap_intersect_compl_p,
+	bitmap_ior_and_compl, bitmap_ior_and_compl_into,
+	debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
+	Constify.
+	* bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
+	bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
+	bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
+	bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
+	bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
+	debug_bitmap, debug_bitmap_file, bitmap_print,
+	bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
+	bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
+
+2007-07-25  Daniel Berlin  <dberlin@dberlin.org>
+
+	* config/darwin.c (darwin_override_options): Additional fix for
+	debug info formats that don't support var tracking.
+
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* cselib.c (entry_and_rtx_equal_p): Constify.
+	* gengtype.c (output_mangled_typename, write_types, write_local):
+	Likewise.
+	* gengtype.h (const_type_p): New.
+	* see.c (eq_descriptor_extension, hash_descriptor_extension):
+	Constify.
+	* tlink.c (scan_linker_output): De-constify.
+	* tree-ssa-loop-im.c (memref_eq): Constify.
+	* tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
+	(shared_bitmap_hash, shared_bitmap_eq): Constify.
+
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* c-common.c (fname_as_string, c_type_hash): Constify.
+	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
+	* cgraph.c (edge_hash, edge_eq): Likewise.
+	* dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
+	* emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
+	reg_attrs_htab_eq): Likewise.
+	* except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
+	Likewise.
+	* genautomata.c (const_reserv_sets_t, const_unit_decl_t,
+	const_decl_t, const_state_t, const_automata_list_el_t): New.
+	(first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
+	DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
+	automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
+	insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
+	reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
+	automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
+	compare_max_occ_cycle_nums, out_state_arcs_num,
+	compare_transition_els_num, units_cmp, state_reservs_cmp):
+	Constify.
+	* genmodes.c (cmp_modes): Likewise.
+	* ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
+	* gimplify.c (compare_case_labels): Likewise.
+	* ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
+	* loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
+	* matrix-reorg.c (mtt_info_hash): Likewise.
+	* postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
+	* rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
+	(htab_hash_bucket, htab_hash_elem): Constify.
+	* tree-browser.c (TB_parent_eq): Likewise.
+	* tree-scalar-evolution.c (hash_scev_info): Likewise.
+	* tree-ssa-alias.c (sort_tags_by_id): Likewise.
+	* tree-ssa-coalesce.c (const_coalesce_pair_p): New.
+	(coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
+	Constify.
+	* tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
+	* tree-ssa-pre.c (const_expr_pred_trans_t): New.
+	(expr_pred_trans_hash, expr_pred_trans_eq): Constify.
+	* tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
+	const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
+	New.
+	(vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
+	vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
+	vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
+	* tree-ssa-threadupdate.c (redirection_data_hash,
+	redirection_data_eq): Likewise. 
+	* tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
+	* tree-ssa.c (var_ann_eq): Likewise.
+	* tree-vrp.c (compare_case_labels): Likewise.
+	* tree.c (int_cst_hash_hash, int_cst_hash_eq,
+	tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
+	tree_not_check_failed, tree_class_check_failed,
+	tree_range_check_failed, tree_not_class_check_failed,
+	omp_clause_check_failed, omp_clause_range_check_failed,
+	tree_contains_struct_check_failed, tree_operand_check_failed):
+	Likewise. 
+	* tree.h (tree_contains_struct_check_failed, tree_check_failed,
+	tree_not_check_failed, tree_class_check_failed,
+	tree_range_check_failed, tree_not_class_check_failed,
+	tree_operand_check_failed, omp_clause_operand_check_failed,
+	tree_operand_length): Likewise. 
+	* var-tracking.c (const_variable): New.
+	(variable_htab_hash, variable_htab_eq): Constify.
+	* varasm.c (const_desc_hash): Likewise.
+
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* expr.c (handled_component_p): Constify.
+	* fold-const.c (fit_double_type): Likewise.
+	* real.h (real_value_from_int_cst): Likewise.
+	* tree-flow-inline.h (gimple_in_ssa_p,
+	gimple_aliases_computed_p, gimple_addressable_vars,
+	gimple_call_clobbered_vars, gimple_referenced_vars,
+	gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
+	end_htab_p, end_referenced_vars_p, var_ann, function_ann,
+	may_aliases, end_readonly_imm_use_p, has_zero_uses,
+	has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
+	is_label_stmt, is_global_var, phi_ssa_name_p,
+	factoring_name_p, is_call_clobbered, tree_common_ann,
+	op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
+	unmodifiable_var_p, array_ref_contains_indirect_ref,
+	ref_contains_array_ref, lookup_subvars_for_var,
+	var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
+	gimple_mem_ref_stats): Likewise.
+	* tree-flow.h (tree_common_ann, var_ann, function_ann,
+	may_aliases, is_exec_stmt, is_label_stmt,
+	ref_contains_array_ref, array_ref_contains_indirect_ref,
+	var_can_have_subvars, overlap_subvar, is_call_clobbered,
+	unmodifiable_var_p): Likewise.
+	* tree-gimple.c (is_gimple_min_invariant): Likewise.
+	* tree-gimple.h (is_gimple_min_invariant): Likewise. 
+	* tree.c (type_hash_list, attribute_hash_list, tree_size,
+	cst_and_fits_in_hwi, real_value_from_int_cst,
+	build_real_from_int_cst, integer_zerop, integer_onep,
+	integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
+	tree_floor_log2, real_zerop, real_onep, real_twop,
+	real_minus_onep, really_constant_p, purpose_member, chain_member,
+	list_length, fields_length, int_size_in_bytes, bit_position,
+	int_bit_position, byte_position, int_byte_position, expr_align,
+	array_type_nelts, tree_node_structure,
+	type_contains_placeholder_1, iterative_hash_pointer,
+	is_attribute_with_length_p, is_attribute_p, check_qualified_type,
+	tree_map_base_eq, type_hash_list, type_hash_eq,
+	attribute_hash_list, type_num_arguments, tree_int_cst_equal,
+	tree_int_cst_lt, tree_int_cst_compare, host_integerp,
+	tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
+	simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
+	int_fits_type_p, get_containing_scope, decl_function_context,
+	decl_type_context, omp_clause_operand_check_failed,
+	initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
+	* tree.h (omp_clause_operand_check_failed, tree_size,
+	build_real_from_int_cst, array_type_nelts, purpose_member,
+	tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
+	host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
+	is_attribute_p, check_qualified_type, expr_align,
+	int_size_in_bytes, bit_position, int_bit_position, byte_position,
+	int_byte_position, list_length, fields_length, initializer_zerop,
+	integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
+	integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
+	tree_node_structure, handled_component_p, get_containing_scope,
+	decl_function_context, decl_type_context, real_zerop,
+	type_num_arguments, fit_double_type, really_constant_p,
+	int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
+	compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
+	real_twop, real_minus_onep, int_cst_value): Likewise.
+
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* cfglayout.c (insn_scope, insn_line): Constify.
+	* emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
+	const_double_htab_hash, const_double_htab_eq,
+	mem_attrs_htab_hash): Likewise.
+	* loop-iv.c (biv_eq): Likewise.
+	* print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
+	print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
+	debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
+	Likewise. 
+	* rtl-error.c (location_for_asm, diagnostic_for_asm,
+	error_for_asm, warning_for_asm, _fatal_insn,
+	_fatal_insn_not_found): Likewise. 
+	* rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
+	rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
+	rtl_check_failed_type2, rtl_check_failed_code1,
+	rtl_check_failed_code2, rtl_check_failed_code_mode,
+	rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
+	* rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
+	rtl_check_failed_type2, rtl_check_failed_code1,
+	rtl_check_failed_code2, rtl_check_failed_code_mode,
+	rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
+	SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
+	shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
+	get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
+	mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
+	rtx_unstable_p, get_integer_term, get_related_value,
+	offset_within_block_p, reg_mentioned_p, count_occurrences,
+	reg_referenced_p, reg_used_between_p, no_labels_between_p,
+	single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
+	reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
+	find_reg_note, find_regno_note, find_reg_equal_equiv_note,
+	find_constant_src, find_reg_fusage, find_regno_fusage,
+	pure_call_p, remove_note, side_effects_p, volatile_refs_p,
+	volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
+	may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
+	computed_jump_p, auto_inc_p, in_expr_list_p,
+	remove_node_from_expr_list, loc_mentioned_in_p,
+	label_is_jump_target_p, reversed_comparison_code_parts,
+	debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
+	print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
+	print_inline_rtx): Likewise.
+	* rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
+	computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
+	rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
+	get_integer_term, get_related_value, offset_within_block_p,
+	count_occurrences, reg_mentioned_p, no_labels_between_p,
+	reg_used_between_p, reg_referenced_p, single_set_2,
+	multiple_sets, set_noop_p, refers_to_regno_p,
+	reg_overlap_mentioned_p, dead_or_set_p,
+	covers_regno_no_parallel_p, covers_regno_p,
+	dead_or_set_regno_p, find_reg_note, find_regno_note,
+	find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
+	find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
+	remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
+	side_effects_p, may_trap_p_1, may_trap_p,
+	may_trap_after_code_motion_p, may_trap_or_fault_p,
+	inequality_comparisons_p, tablejump_p, computed_jump_p_1,
+	computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
+	subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
+	* simplify-rtx.c (neg_const_int, plus_minus_operand_p,
+	mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
+	Likewise. 
+	* toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
+	warning_for_asm): Likewise.
+	* tree.h (print_rtl): Likewise.
+	* varasm.c (get_pool_mode): Likewise.
+
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* c-lex.c (c_lex_with_flags, lex_string): Constify.
+	* c-ppoutput.c (print_line, pp_dir_change): Likewise.
+	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
+	* cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
+	* cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
+	* ddg.c (compare_sccs): Likewise.
+	* df-scan.c (df_ref_compare, df_mw_compare): Likewise.
+	* dfp.c (decimal_real_from_string, decimal_to_decnumber,
+	decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
+	decimal_do_fix_trunc, decimal_real_to_integer,
+	decimal_real_to_integer2, decimal_real_maxval): Likewise.
+	* dse.c (const_group_info_t): New.
+	(invariant_group_base_eq, invariant_group_base_hash): Constify.
+	* dwarf2out.c (const_dw_die_ref): New.
+	(decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
+	* tree-browser.c (TB_parent_eq): Likewise.
+	* unwind-dw2-fde.c (__register_frame_info_bases,
+	__deregister_frame_info_bases, fde_unencoded_compare, fde_split,
+	add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
+	Likewise.
+	* unwind-dw2-fde.h (get_cie, next_fde): Likewise.
+	* unwind-dw2.c (uw_frame_state_for): Likewise.
+	* value-prof.c (histogram_hash, histogram_eq): Likewise.
+	* value-prof.h (const_histogram_value): New.
+
+2007-07-25  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/mips/mips.c (machine_function): Add
+	initialized_mips16_gp_pseudo_p.
+	(mips16_gp_pseudo_reg): Do not emit the initialization of
+	mips16_gp_pseudo_rtx when being called from the gimple cost-
+	calculation routines; emit it on the first use outside those
+	routines.
+
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
+	New.
+	
+	* rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
+	RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
+	RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
+	RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
+	RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
+	Preserve const-ness of parameters through use of __typeof(),
+	also constify and tidy.
+	
+	* tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
+	TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
+	NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
+	CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
+	OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
+	GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
+	PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
+	TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
+	TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
+
+2007-07-25  Julian Brown  <julian@codesourcery.com>
+	    Mark Shinwell  <shinwell@codesourcery.com>
+
+	* config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
+	(alpha_mangle_type): This.
+	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+	(TARGET_MANGLE_TYPE): Define this instead.
+	* config/arm/arm-protos.h (arm_mangle_type): Add prototype.
+	* config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
+	(arm_init_neon_builtins): Fix comment.
+	(arm_mangle_map_entry): New.
+	(arm_mangle_map): New.
+	(arm_mangle_type): New.
+	* config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
+	(ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
+	mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
+	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+	(TARGET_MANGLE_TYPE): Define this instead.
+	* config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
+	(ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
+	mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
+	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+	(TARGET_MANGLE_TYPE): Define this instead.
+	* config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
+	to...
+	(rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
+	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+	(TARGET_MANGLE_TYPE): Define this instead.
+	* config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
+	(s390_mangle_type): This.
+	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+	(TARGET_MANGLE_TYPE): Define this instead.
+	* config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
+	(sparc_mangle_type): This.
+	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
+	(TARGET_MANGLE_TYPE): Define this instead.
+	* cp/mangle.c (write_type): Call mangle_type target hook on all
+	types before mangling.  Use original type, not main variant, as
+	argument.
+	* target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
+	(TARGET_MANGLE_TYPE): This.
+	* target.h (gcc_target): Rename mangle_fundamental_type to
+	mangle_type.
+	* doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
+	(TARGET_MANGLE_TYPE): This. Note slightly different semantics.
+
+2007-07-25  Julian Brown  <julian@codesourcery.com>
+	    Paul Brook  <paul@codesourcery.com>
+	    Joseph Myers  <joseph@codesourcery.com>
+	    Mark Shinwell  <shinwell@codesourcery.com>
+
+	* Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
+	* config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
+	(with_fpu): Allow --with-fpu=neon.
+	* config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
+	* config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
+	* config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
+	* config/arm/arm-protos.h (neon_immediate_valid_for_move)
+	(neon_immediate_valid_for_logic, neon_output_logic_immediate)
+	(neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
+	(neon_emit_pair_result_insn, neon_disambiguate_copy)
+	(neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
+	(output_move_neon): Add prototypes.
+	* config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
+	(all_fpus): Add FPUTYPE_NEON.
+	(fp_model_for_fpu): Add NEON field.
+	(arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
+	(arm_arg_partial_bytes): Allow NEON vectors to be passed partially
+	in registers.
+	(arm_legitimate_address_p): Don't support fancy addressing for NEON
+	structure moves.
+	(thumb2_legitimate_address_p): Likewise.
+	(neon_valid_immediate): Recognize and prepare constants suitable for
+	NEON instructions.
+	(neon_immediate_valid_for_move): New function. Recognize and prepare
+	immediates for NEON move instructions.
+	(neon_immediate_valid_for_logic): New function. Recognize and
+	prepare immediates for NEON logic instructions.
+	(neon_output_logic_immediate): New function. Create asm string
+	suitable for outputting immediate logic instructions.
+	(neon_pairwise_reduce): New function. Implement reduction using
+	pairwise operations.
+	(neon_expand_vector_init): New function. Expand a (possibly
+	non-constant) vector initialization.
+	(neon_vector_mem_operand): New function. Memory operands supported
+	for quad-word loads/stores to/from ARM or NEON registers. Don't
+	allow base+offset addressing for core regs.
+	(neon_struct_mem_operand): New function. Valid mems for NEON
+	structure moves.
+	(coproc_secondary_reload_class): Enable NEON registers to be loaded
+	from neon_vector_mem_operand addresses without a secondary register.
+	(add_minipool_forward_ref): Handle >8-byte minipool entries.
+	(add_minipool_backward_ref): Likewise.
+	(dump_minipool): Likewise.
+	(push_minipool_fix): Likewise.
+	(output_move_quad): New function. Output quad-word moves, loads and
+	stores using ARM registers.
+	(output_move_vfp): Add support for vectors in VFP (NEON) D
+	registers.
+	(output_move_neon): Output a NEON load/store to/from a quadword
+	register.
+	(arm_print_operand): Implement new codes:
+	- 'c' for unadorned integers (without a # sign).
+	- 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
+	mode.
+	- 'e', 'f' for the low and high D parts of a NEON Q register.
+	- 'q' outputs a NEON Q register.
+	- 'h' outputs ranges of D registers for VLDM/VSTM etc.
+	- 'T' prints NEON opcode features from a coded bitmask.
+	- 'F' is similar to T, but signed/unsigned codes both print as
+	'i'.
+	- 't' is similar to T, but 'u' is printed instead of 'p'.
+	- 'O' prints 'r' if NEON instruction should perform rounding (as
+	specified by bitmask), else prints nothing.
+	- '#' is a punctuation character to stop operand numbers from
+	running together with following digits in the assembler
+	strings for instructions (when using mode attributes).
+	(arm_assemble_integer): Handle extra NEON vector modes. Permute
+	constant vectors in big-endian mode, where necessary.
+	(arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
+	Handle EI, OI, CI, XI modes.
+	(ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
+	(ashrv2si3): Rename IWMMXT2_BUILTINs to...
+	(ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
+	(lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
+	(neon_builtin_type_bits): Add enumeration, one bit for each vector
+	type.
+	(v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
+	(v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
+	to turn v8qi, etc. into bits defined above.
+	(neon_itype): New enumeration. Classifications of NEON builtins.
+	(neon_builtin_datum): Define struct. Contains information about
+	a single builtin (with multiple modes).
+	(CF): Define helper macro for...
+	(VAR1...VAR10): Define builtins with a type, name and 1-10 different
+	modes.
+	(neon_builtin_data): New array. Define information about builtins
+	for use during initialization/expansion.
+	(arm_init_neon_builtins): New function.
+	(arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
+	true.
+	(neon_builtin_compare): New function.
+	(locate_neon_builtin_icode): New function. Find an insn code for a
+	builtin given a function code for that builtin. Also return type of
+	builtin (NEON_BINOP, NEON_UNOP etc.).
+	(builtin_arg): New enumeration. Types of arguments for builtins.
+	(arm_expand_neon_args): New function. Expand a generic NEON builtin.
+	Takes a variable argument list of builtin_arg types, terminated by
+	NEON_ARG_STOP.
+	(arm_expand_neon_builtin): New function. Expand a NEON builtin.
+	(neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
+	(neon_emit_pair_result_insn): New function. Support returning pairs
+	of vectors via a pointer.
+	(neon_disambiguate_copy): New function. Set up operands for a
+	multi-word copy such that registers do not get clobbered.
+	(arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
+	ARM_BUILTIN_NEON_BASE.
+	(arm_file_start): Set float-abi attribute for NEON.
+	(arm_vector_mode_supported_p): Enable NEON vector modes.
+	(arm_mangle_map_entry): New.
+	(arm_mangle_map): New.
+	(arm_mangle_vector_type): New.
+	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
+	when appropriate.
+	(TARGET_NEON): New macro. Target supports NEON.
+	(fputype): Add FPUTYPE_NEON.
+	(UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
+	for vectorization based on command-line arg.
+	(NEON_REGNO_OK_FOR_NREGS): Define.
+	(VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
+	(VALID_NEON_STRUCT_MODE): Define.
+	(PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
+	(arm_builtins): Add ARM_BUILTIN_NEON_BASE.
+	* config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
+	(consttable_16): Add pattern for outputting 16-byte minipool
+	entries.
+	(movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
+	vec-common.md).
+	(vec-common.md, neon.md): Include md files.
+	* config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
+	* config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
+	(memory_constraint "Ut", "Un", "Us"): Define.
+	* config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
+	(MMX_char): New mode attribute.
+	(addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
+	(*add<mode>3_iwmmxt): New insn pattern.
+	(subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
+	(*sub<mode>3_iwmmxt): New insn pattern.
+	(mulv4hi3): Rename to...
+	(*mulv4hi3_iwmmxt): This.
+	(smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
+	(umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
+	(uminv4hi3, uminv2si3): Remove. Replace with...
+	(*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
+	(*umin<mode>3_iwmmxt): These.
+	(ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
+	(ashr<mode>3_iwmmxt): This new pattern.
+	(lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
+	(lshr<mode>3_iwmmxt): This new pattern.
+	(ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
+	(ashl<mode>3_iwmmxt): This new pattern.
+	* config/arm/neon-docgen.ml: New file. Generate documentation for
+	intrinsics.
+	* config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
+	* config/arm/arm_neon.h: New (autogenerated).
+	* config/arm/neon-testgen.ml: New file. Generate NEON tests
+	automatically.
+	* config/arm/neon.md: New file. Define NEON instructions.
+	* config/arm/neon.ml: New file. Abstract description of NEON
+	instructions, used to generate arm_neon.h header, documentation and
+	tests.
+	* config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
+	* vec-common.md: New file. Shared parts for iWMMXt and NEON vector
+	support.
+	* doc/extend.texi (ARM Built-in Functions): Rename and remove
+	extraneous comma.
+	(ARM NEON Intrinsics): New subsection.
+	* doc/arm-neon-intrinsics.texi: New (autogenerated).
+
 2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>
 
 	* config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2007-07-25 11:28:51.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2007-07-26 04:39:21.000000000 +0000
@@ -1,3 +1,18 @@
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* parser.c (cp_parser_string_literal, cp_parser_sizeof_operand):
+	Constify.
+
+2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* decl.c (typename_hash, typename_compare): Constify.
+	* mangle.c (hash_type, compare_type): Likewise.
+	* pt.c (eq_local_specializations, hash_local_specialization):
+	Likewise.
+	* tree.c (cplus_array_hash, cplus_array_compare, list_hash_eq,
+	list_hash): Likewise.
+	* typeck2.c (pat_compare): Likewise.
+
 2007-07-24  Nathan Sidwell  <nathan@codesourcery.com>
 
 	* method.c (implicitly_declare_fn): Increase alignment if member


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.



More information about the Gcc-regression mailing list