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 in some cases!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Tue, 17 Apr 2007 16:45:06 +0000
- Subject: A recent patch increased GCC's memory consumption in some cases!
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: 7411k -> 7389k
Peak memory use before GGC: 2263k
Peak memory use after GGC: 1952k
Maximum of released memory in single GGC run: 311k
Garbage: 447k -> 446k
Leak: 2285k
Overhead: 456k -> 456k
GGC runs: 3
comparing empty function compilation at -O0 -g level:
Overall memory needed: 7427k -> 7405k
Peak memory use before GGC: 2290k
Peak memory use after GGC: 1979k
Maximum of released memory in single GGC run: 311k
Garbage: 449k -> 449k
Leak: 2318k
Overhead: 461k -> 461k
GGC runs: 3
comparing empty function compilation at -O1 level:
Overall memory needed: 7519k -> 7517k
Peak memory use before GGC: 2263k
Peak memory use after GGC: 1952k
Maximum of released memory in single GGC run: 311k
Garbage: 452k -> 452k
Leak: 2288k
Overhead: 457k -> 457k
GGC runs: 4
comparing empty function compilation at -O2 level:
Overall memory needed: 7527k -> 7525k
Peak memory use before GGC: 2263k
Peak memory use after GGC: 1952k
Maximum of released memory in single GGC run: 311k
Garbage: 455k -> 455k
Leak: 2288k
Overhead: 457k -> 457k
GGC runs: 4
comparing empty function compilation at -O3 level:
Overall memory needed: 7527k -> 7525k
Peak memory use before GGC: 2263k
Peak memory use after GGC: 1952k
Maximum of released memory in single GGC run: 311k
Garbage: 455k -> 455k
Leak: 2288k
Overhead: 457k -> 457k
GGC runs: 4
comparing combine.c compilation at -O0 level:
Ovarall memory allocated via mmap and sbrk decreased from 22619k to 17729k, overall -27.58%
Peak amount of GGC memory still allocated after garbage collecting increased from 8827k to 8852k, overall 0.28%
Amount of produced GGC garbage decreased from 38253k to 37096k, overall -3.12%
Overall memory needed: 22619k -> 17729k
Peak memory use before GGC: 9341k -> 9264k
Peak memory use after GGC: 8827k -> 8852k
Maximum of released memory in single GGC run: 2655k -> 2577k
Garbage: 38253k -> 37096k
Leak: 6580k -> 6580k
Overhead: 5375k -> 5053k
GGC runs: 288 -> 282
comparing combine.c compilation at -O0 -g level:
Ovarall memory allocated via mmap and sbrk decreased from 24587k to 19889k, overall -23.62%
Overall memory needed: 24587k -> 19889k
Peak memory use before GGC: 11182k -> 10880k
Peak memory use after GGC: 10579k -> 10512k
Maximum of released memory in single GGC run: 2661k -> 2351k
Garbage: 38846k -> 37693k
Leak: 9473k -> 9465k
Overhead: 6081k -> 5759k
GGC runs: 272 -> 270
comparing combine.c compilation at -O1 level:
Ovarall memory allocated via mmap and sbrk decreased from 41227k to 35565k, overall -15.92%
Peak amount of GGC memory allocated before garbage collecting increased from 19323k to 19348k, overall 0.13%
Peak amount of GGC memory still allocated after garbage collecting increased from 19127k to 19155k, overall 0.15%
Amount of produced GGC garbage decreased from 57395k to 51579k, overall -11.28%
Overall memory needed: 41227k -> 35565k
Peak memory use before GGC: 19323k -> 19348k
Peak memory use after GGC: 19127k -> 19155k
Maximum of released memory in single GGC run: 2077k -> 2272k
Garbage: 57395k -> 51579k
Leak: 6609k -> 6615k
Overhead: 6549k -> 6004k
GGC runs: 352 -> 348
comparing combine.c compilation at -O2 level:
Ovarall memory allocated via mmap and sbrk decreased from 41711k to 39973k, overall -4.35%
Peak amount of GGC memory allocated before garbage collecting increased from 19373k to 19415k, overall 0.22%
Peak amount of GGC memory still allocated after garbage collecting increased from 19179k to 19213k, overall 0.18%
Overall memory needed: 41711k -> 39973k
Peak memory use before GGC: 19373k -> 19415k
Peak memory use after GGC: 19179k -> 19213k
Maximum of released memory in single GGC run: 2159k -> 2200k
Garbage: 69382k -> 67734k
Leak: 6732k -> 6729k
Overhead: 8392k -> 8043k
GGC runs: 404 -> 400
comparing combine.c compilation at -O3 level:
Peak amount of GGC memory allocated before garbage collecting increased from 19484k to 19714k, overall 1.18%
Peak amount of GGC memory still allocated after garbage collecting increased from 19266k to 19380k, overall 0.59%
Amount of produced GGC garbage increased from 90796k to 92837k, overall 2.25%
Overall memory needed: 45207k -> 44257k
Peak memory use before GGC: 19484k -> 19714k
Peak memory use after GGC: 19266k -> 19380k
Maximum of released memory in single GGC run: 3635k -> 3714k
Garbage: 90796k -> 92837k
Leak: 6843k -> 6836k
Overhead: 11442k -> 11382k
GGC runs: 426
comparing insn-attrtab.c compilation at -O0 level:
Ovarall memory allocated via mmap and sbrk decreased from 152491k to 102845k, overall -48.27%
Peak amount of GGC memory still allocated after garbage collecting increased from 44191k to 44730k, overall 1.22%
Amount of produced GGC garbage decreased from 136444k to 130923k, overall -4.22%
Overall memory needed: 152491k -> 102845k
Peak memory use before GGC: 70324k -> 68627k
Peak memory use after GGC: 44191k -> 44730k
Maximum of released memory in single GGC run: 38126k -> 36429k
Garbage: 136444k -> 130923k
Leak: 9583k
Overhead: 17978k -> 16927k
GGC runs: 223 -> 212
comparing insn-attrtab.c compilation at -O0 -g level:
Ovarall memory allocated via mmap and sbrk decreased from 153875k to 104357k, overall -47.45%
Peak amount of GGC memory still allocated after garbage collecting increased from 45459k to 45998k, overall 1.19%
Amount of produced GGC garbage decreased from 137667k to 132399k, overall -3.98%
Overall memory needed: 153875k -> 104357k
Peak memory use before GGC: 71486k -> 69788k
Peak memory use after GGC: 45459k -> 45998k
Maximum of released memory in single GGC run: 38127k -> 36429k
Garbage: 137667k -> 132399k
Leak: 11291k -> 11067k
Overhead: 18375k -> 17324k
GGC runs: 223 -> 210
comparing insn-attrtab.c compilation at -O1 level:
Ovarall memory allocated via mmap and sbrk decreased from 190607k to 124805k, overall -52.72%
Peak amount of GGC memory allocated before garbage collecting run decreased from 85948k to 73426k, overall -17.05%
Peak amount of GGC memory still allocated after garbage collecting decreased from 80070k to 69350k, overall -15.46%
Amount of produced GGC garbage decreased from 268762k to 227633k, overall -18.07%
Overall memory needed: 190607k -> 124805k
Peak memory use before GGC: 85948k -> 73426k
Peak memory use after GGC: 80070k -> 69350k
Maximum of released memory in single GGC run: 32250k -> 32798k
Garbage: 268762k -> 227633k
Leak: 9403k -> 9405k
Overhead: 28313k -> 27090k
GGC runs: 228 -> 226
comparing insn-attrtab.c compilation at -O2 level:
Ovarall memory allocated via mmap and sbrk decreased from 233267k to 195493k, overall -19.32%
Peak amount of GGC memory allocated before garbage collecting run decreased from 87235k to 74717k, overall -16.75%
Peak amount of GGC memory still allocated after garbage collecting decreased from 80140k to 69433k, overall -15.42%
Amount of produced GGC garbage decreased from 302019k to 263315k, overall -14.70%
Overall memory needed: 233267k -> 195493k
Peak memory use before GGC: 87235k -> 74717k
Peak memory use after GGC: 80140k -> 69433k
Maximum of released memory in single GGC run: 30040k -> 29993k
Garbage: 302019k -> 263315k
Leak: 9401k -> 9402k
Overhead: 33722k -> 32727k
GGC runs: 248 -> 245
comparing insn-attrtab.c compilation at -O3 level:
Ovarall memory allocated via mmap and sbrk decreased from 233279k to 204813k, overall -13.90%
Amount of produced GGC garbage decreased from 302705k to 292401k, overall -3.52%
Overall memory needed: 233279k -> 204813k
Peak memory use before GGC: 87249k -> 84750k
Peak memory use after GGC: 80154k -> 78009k
Maximum of released memory in single GGC run: 30101k -> 30928k
Garbage: 302705k -> 292401k
Leak: 9405k -> 9406k
Overhead: 33928k -> 33464k
GGC runs: 254 -> 246
comparing Gerald's testcase PR8361 compilation at -O0 level:
Ovarall memory allocated via mmap and sbrk decreased from 152463k to 147072k, overall -3.67%
Overall memory needed: 152463k -> 147072k
Peak memory use before GGC: 90246k -> 90233k
Peak memory use after GGC: 89353k -> 89339k
Maximum of released memory in single GGC run: 17774k
Garbage: 211766k -> 207965k
Leak: 49217k -> 49198k
Overhead: 25066k -> 23912k
GGC runs: 414 -> 410
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Ovarall memory allocated via mmap and sbrk decreased from 174855k to 164844k, overall -6.07%
Overall memory needed: 174855k -> 164844k
Peak memory use before GGC: 102853k -> 102839k
Peak memory use after GGC: 101834k -> 101821k
Maximum of released memory in single GGC run: 18129k -> 18128k
Garbage: 218296k -> 214474k
Leak: 72532k -> 72513k
Overhead: 30963k -> 29808k
GGC runs: 387 -> 384
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 150860k -> 151333k
Peak memory use before GGC: 101901k -> 101915k
Peak memory use after GGC: 100884k -> 100904k
Maximum of released memory in single GGC run: 17236k -> 17235k
Garbage: 347532k -> 338448k
Leak: 50296k -> 50295k
Overhead: 31198k -> 29925k
GGC runs: 531 -> 525
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 152348k to 156833k, overall 2.94%
Amount of produced GGC garbage increased from 378707k to 382771k, overall 1.07%
Overall memory needed: 152348k -> 156833k
Peak memory use before GGC: 102512k -> 102519k
Peak memory use after GGC: 101495k -> 101504k
Maximum of released memory in single GGC run: 17233k -> 17232k
Garbage: 378707k -> 382771k
Leak: 51032k -> 51011k
Overhead: 35522k -> 35198k
GGC runs: 569 -> 572
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 154504k to 159757k, overall 3.40%
Amount of produced GGC garbage increased from 397705k to 412771k, overall 3.79%
Overall memory needed: 154504k -> 159757k
Peak memory use before GGC: 104309k -> 104341k
Peak memory use after GGC: 103276k -> 103298k
Maximum of released memory in single GGC run: 17610k -> 17648k
Garbage: 397705k -> 412771k
Leak: 51318k -> 51296k
Overhead: 37069k -> 37521k
GGC runs: 574 -> 587
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Ovarall memory allocated via mmap and sbrk decreased from 344835k to 244781k, overall -40.87%
Peak amount of GGC memory allocated before garbage collecting increased from 80256k to 80963k, overall 0.88%
Peak amount of GGC memory still allocated after garbage collecting increased from 57995k to 58702k, overall 1.22%
Amount of produced GGC garbage decreased from 146874k to 142205k, overall -3.28%
Amount of memory still referenced at the end of compilation increased from 7421k to 7613k, overall 2.59%
Overall memory needed: 344835k -> 244781k
Peak memory use before GGC: 80256k -> 80963k
Peak memory use after GGC: 57995k -> 58702k
Maximum of released memory in single GGC run: 46504k -> 44134k
Garbage: 146874k -> 142205k
Leak: 7421k -> 7613k
Overhead: 26766k -> 24559k
GGC runs: 79
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Ovarall memory allocated via mmap and sbrk decreased from 345731k to 245593k, overall -40.77%
Peak amount of GGC memory allocated before garbage collecting increased from 80902k to 81609k, overall 0.87%
Peak amount of GGC memory still allocated after garbage collecting increased from 58641k to 59348k, overall 1.21%
Amount of produced GGC garbage decreased from 147084k to 142415k, overall -3.28%
Amount of memory still referenced at the end of compilation increased from 9188k to 9381k, overall 2.09%
Overall memory needed: 345731k -> 245593k
Peak memory use before GGC: 80902k -> 81609k
Peak memory use after GGC: 58641k -> 59348k
Maximum of released memory in single GGC run: 46569k -> 44123k
Garbage: 147084k -> 142415k
Leak: 9188k -> 9381k
Overhead: 27261k -> 25054k
GGC runs: 88 -> 89
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Ovarall memory allocated via mmap and sbrk decreased from 304723k to 253625k, overall -20.15%
Peak amount of GGC memory allocated before garbage collecting increased from 84146k to 84262k, overall 0.14%
Amount of produced GGC garbage decreased from 231868k to 221602k, overall -4.63%
Overall memory needed: 304723k -> 253625k
Peak memory use before GGC: 84146k -> 84262k
Peak memory use after GGC: 74847k
Maximum of released memory in single GGC run: 34777k -> 36149k
Garbage: 231868k -> 221602k
Leak: 20856k -> 20856k
Overhead: 33286k -> 30442k
GGC runs: 81
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Ovarall memory allocated via mmap and sbrk decreased from 559635k to 281329k, overall -98.93%
Amount of produced GGC garbage decreased from 239652k to 228395k, overall -4.93%
Overall memory needed: 559635k -> 281329k
Peak memory use before GGC: 79833k
Peak memory use after GGC: 74847k
Maximum of released memory in single GGC run: 33316k -> 33439k
Garbage: 239652k -> 228395k
Leak: 20946k -> 20946k
Overhead: 35497k -> 32477k
GGC runs: 92 -> 91
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Ovarall memory allocated via mmap and sbrk decreased from 1380355k to 1269205k, overall -8.76%
Overall memory needed: 1380355k -> 1269205k
Peak memory use before GGC: 201851k
Peak memory use after GGC: 190309k
Maximum of released memory in single GGC run: 80854k -> 80679k
Garbage: 378499k -> 370229k
Leak: 46312k -> 46312k
Overhead: 51554k -> 48625k
GGC runs: 72 -> 70
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2007-04-16 16:04:20.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2007-04-17 14:45:51.000000000 +0000
@@ -1,3 +1,832 @@
+2007-04-17 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vectorizer.h (stmt_vec_info_type): Add enum value
+ induc_vec_info_type.
+ (vectorizable_induction): New function declaration.
+ * tree-vect-transform.c (get_initial_def_for_induction): No need to
+ check if already vectorized. Find first place in BB where new stmts
+ can be inserted. Takes only one argument.
+ (vectorizable_induction): New function.
+ (vect_transform_stmt): Add case for induc_vec_info_type to call
+ vectorizable_induction.
+ (vect_transform_loop): Consider phis for vectorization.
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
+ condition.
+ (analyze_operations): Call vectorizable_induction when analyzing phis.
+ Fix comment.
+ (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
+ (vect_mark_relevant): Include phis in relevance analysis.
+ (vect_mark_stmts_to_be_vectorize): Likewise.
+ * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
+
+2007-04-16 Lawrence Crowl <crowl@google.com>
+
+ * doc/invoke.texi (Debugging Options): Add documentation for the
+ -femit-struct-debug options -femit-struct-debug-baseonly,
+ -femit-struct-debug-reduced, and
+ -femit-struct-debug-detailed[=...].
+
+ * c-opts.c (c_common_handle_option): Add
+ OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
+ and OPT_femit_struct_debug_detailed_.
+ * c.opt: Add specifications for
+ -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
+ and -femit-struct-debug-detailed[=...].
+ * opts.c (set_struct_debug_option): Parse the
+ -femit-struct-debug-... options.
+ * opts.c (matches_main_base, main_input_basename,
+ main_input_baselength, base_of_path, matches_main_base): Add
+ variables and functions to compare header base name to compilation
+ unit base name.
+ * opts.c (should_emit_struct_debug): Add to determine to emit a
+ structure based on the option.
+ (dump_struct_debug) Also disabled function to debug this
+ function.
+ * opts.c (handle_options): Save the base name of the
+ compilation unit.
+
+ * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
+ (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
+ This hook indicates if a type is generic. Set it by default
+ to "never generic".
+ * langhooks.h (struct lang_hooks_for_types): Add a new hook
+ to determine if a struct type is generic or not.
+ * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
+ * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
+ * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
+ with live C++ hook.
+
+ * flags.h (enum debug_info_usage): Add an enumeration to describe
+ a program's use of a structure type.
+ * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
+ to indicate the program's usage of the type. Filter structs based
+ on the -femit-struct-debug-... specification.
+ (gen_type_die): Split into two routines, gen_type_die and
+ gen_type_die_with_usage. gen_type_die is now a wrapper
+ that assumes direct usage.
+ (gen_type_die_with_usage): Replace calls to gen_type_die
+ with gen_type_die_with_usage adding the program usage of
+ the referenced type.
+ (dwarf2out_imported_module_or_decl): Suppress struct debug
+ information using should_emit_struct_debug when appropriate.
+
+2007-04-16 Ian Lance Taylor <iant@google.com>
+
+ PR tree-optimization/31522
+ * tree-vrp.c (vr_phi_edge_counts): New static variable.
+ (vrp_initialize): Allocate vr_phi_edge_counts.
+ (vrp_visit_phi_node): Don't push to infinity if we saw a new
+ executable edge. Drop test for all constants.
+ (vrp_finalize): Free vrp_phi_edge_counts.
+
+ * doc/cpp.texi (Common Predefined Macros): Clarify description of
+ __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
+
+ * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
+ predecessors at head rather than tail.
+
+2007-04-16 Matthias Klose <doko@debian.org>
+
+ * gcc/config/alpha/linux.h (CPP_SPEC): Define.
+ * gcc/config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
+
+2007-04-16 Aldy Hernandez <aldyh@redhat.com>
+
+ * function.h: Remove sequence_stack extern declaration.
+
+2007-04-16 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
+ TARGET_FIDOA.
+ (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
+ defined.
+
+2007-04-16 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_arch_types): Rearranging array.
+ (enum avr_arch): Add.
+ (avr_mcu_types): Use avr_arch enumeration constants instead of
+ numbers.
+ * config/avr/avr.h (LINK_SPEC): Simplify.
+
+2007-04-16 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/m68k/m68k.c (m68k_libcall_value,
+ m68k_function_value): Use macros for register names more.
+
+ * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
+ instead.
+ (M68K_REGNAME): Use A6_REG.
+ * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
+
+2007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
+
+ PR middle-end/28071
+ * sched-int.h (struct deps): Split field 'pending_lists_length' into
+ 'pending_read_list_length' and 'pending_write_list_length'. Update
+ comment.
+ * sched-deps.c (add_insn_mem_dependence): Change signature. Update
+ to handle two length counters instead of one. Update all uses.
+ (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
+ two length counters instead of one.
+ * sched-rgn.c (propagate_deps): Update to handle two length counters
+ instead of one.
+
+2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/31582
+ * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
+ copy of source, pass it to ix86_expand_vector_set and return
+ it as target.
+
+2007-04-16 David Ung <davidu@mips.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
+ PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
+ * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
+ Add 74K processor information.
+ * config/mips/mips.md: Include 74k.md.
+ (cpu): Add 74kc,74kf,74kx.
+ (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
+ * config/mips/74k.md: New.
+ * doc/invoke.texi (MIPS Options): Document 74K support.
+
+2007-04-16 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
+ vectorizable_* functions.
+ * tree-vect-transform.c (vectorizable_call): Add check for
+ STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
+ (vectorizable_store): likewise.
+ (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
+ Add comments.
+ (vectorizable_operation, vectorizable_type_demotion): Likewise.
+ (vectorizable_type_promotion, vectorizable_load): Likewise.
+ (vectorizable_live_operation, vectorizable_condition): Likewise.
+ (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
+ STMT_VINFO_LIVE_P.
+ (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
+
+2007-04-15 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
+ register numbers more.
+ * config/m68k/m68k.h (STACK_POINTER_REGNUM,
+ FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
+ M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
+ FUNCTION_VALUE_REGNO_P): Likewise.
+ * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
+ STATIC_CHAIN_REGNUM): Likewise.
+ * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
+ * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
+ STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
+ * config/m68k/m68k.md (FP_REG): New.
+
+2007-04-15 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
+ alignment on fido.
+
+2007-04-15 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
+ tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
+ comment typos.
+
+2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
+ cold loops.
+
+2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR c/31520
+ * c-decl.c (finish_decl): Grab the type of the decl after the call
+ to store_init_value.
+
+2007-04-14 Steven Bosscher <steven@gcc.gnu.org>
+
+ * common.opt (fforward-propagate): Fix "Optimization" annotation.
+
+2007-04-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/25874
+ * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
+ post dominators and cleanup cfg before returning.
+
+2007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
+ * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
+
+2007-04-14 Kazu Hirata <kazu@codesourcery.com>
+
+ * config.gcc: Recognize fido.
+ * config/m68k/m68k-devices.def (fidoa): New.
+ * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
+ __mfido__.
+ (FL_FIDOA, TARGET_FIDOA): New.
+ * config/m68k/m68k.opt (mfidoa): New.
+
+2007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/31322
+ * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
+ when a personality function is used.
+
+2007-04-13 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
+
+2007-04-13 Mike Stump <mrs@apple.com>
+
+ * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
+ we can...
+ * config/darwin.opt (fapple-kext): Make C++ only.
+ * config/darwin.c (darwin_override_options): Remove code to ensure
+ -fapple-kext is given for C++ only.
+
+2007-04-13 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
+ * config/mips/mips.c (override_options): Call
+ SUBTARGET_OVERRIDE_OPTIONS, if defined.
+
+2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.opt (msvr3-shlib): Removed.
+
+ * doc/invoke.texi: Remove -msvr3-shlib.
+
+2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
+ with "popcnt" instruction.
+
+2007-04-13 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/21258
+ * tree-vrp.c (compare_case_labels): New helper.
+ (find_switch_asserts): New function.
+ (find_assert_locations): Call it for SWITCH_EXPRs.
+
+2007-04-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
+ * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
+ check is now implied in X87_FLOAT_MODE_P.
+ (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
+ (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
+ (fix_trunc<mode>_i386_fisttp): Ditto.
+ (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
+ (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
+ (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
+ (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
+ (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
+ (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
+ (unnamed_splitters): Ditto.
+ * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
+ for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
+ FIRST_SSE_REG for local functions when SSE math is enabled or
+ for functions with sseregparm attribute.
+ (standard_80387_constant_p): Return -1 if mode is not
+ X87_FLOAT_MODE_P.
+ (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
+ (ix86_expand_compare): Ditto.
+ (ix86_expand_carry_flag_compare): Ditto.
+ (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
+ of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
+ DECIMAL_FLOAT_MODE_P.
+ (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
+ of SCALAR_FLOAT_MODE_P.
+ (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
+ [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
+ checks before FLOAT_MODE_P.
+ [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
+ before FLOAT_MODE_P.
+ [DIV]: Ditto.
+ [NEG]: Ditto.
+ [ABS]: Ditto.
+ [SQRT]: Ditto.
+ [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
+
+2007-04-12 Paolo Bonzini <bonzini@gnu.org>
+ Charles Wilson <libtool@cwilson.fastmail.fm>
+
+ * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
+ (libgcc.mvars): Don't depend on them.
+ * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
+ * exec-tool.in: New.
+
+2007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * doc/invoke.text (--help): Document --help=common.
+
+2007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
+
+ * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
+ * genemit.c (main): Emit #include "integrate.h".
+ * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
+ (LOADGP_RTP): New mips_loadgp_style.
+ * config/mips/mips.h: Include config/vxworks-dummy.h.
+ (TARGET_RTP_PIC): New macro.
+ (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
+ (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
+ (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
+ for TARGET_RTP_PIC.
+ * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
+ -mvxworks-pic when using -mrtp and a PIC option.
+ * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
+ for RTP PIC.
+ (mips_symbolic_constant_p, mips_symbolic_address_p)
+ (mips_symbol_insns): Handle SYMBOL_HALF.
+ (override_options): Warn about -G and -mrtp being used together.
+ Initialize mips_lo_relocs[SYMBOL_HALF].
+ (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
+ (mips_emit_loadgp): Handle LOADGP_RTP.
+ (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
+ * config/mips/mips.md (loadgp_rtp): New insn and splitter.
+ (tablejump): Handle function-relative case table entries if
+ TARGET_RTP_PIC.
+ * config/mips/predicates.md (symbol_ref_operand): New predicate.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.md (load_call<mode>): Allow any general register.
+ destination.
+ (sibcall_value_internal, sibcall_value_multiple_internal)
+ (call_value_internal, call_value_split, call_value_multiple_internal)
+ (call_value_multiple_split): Remove constraints from operand 0.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
+ rather than loadgp_noshared.
+ * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
+ instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
+ gen_loadgp.
+ * config/mips/mips.md (loadgp): Rename to...
+ (loadgp_newabi): ...this.
+ (loadgp_noshared): Rename to...
+ (loadgp_absolute): ...this.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
+ false for locally-binding symbols.
+ (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
+ (SYMBOL_GOT_PAGE_OFST): ...this.
+ (SYMBOL_GOT_GLOBAL): Rename to...
+ (SYMBOL_GOT_DISP): ...this.
+ (SYMBOL_GOTOFF_GLOBAL): Rename to...
+ (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
+ * config/mips/mips.c (mips_global_symbol_p): New function.
+ (mips_symbol_binds_local_p): Likewise.
+ (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
+ and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use mips_global_symbol_p
+ and mips_symbol_binds_local_p.
+ (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
+ (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
+ SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
+ SYMBOL_GOTOFF_DISP.
+ (mips_ok_for_lazy_binding_p): New function.
+ (mips_load_call_address, mips_expand_call): Use it.
+ (mips_dangerous_for_la25_p): Likewise.
+ * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
+ (*got_disp<mode>): Use got_disp_operand instead of
+ global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
+ SYMBOL_GOTOFF_GLOBAL.
+ (*got_page<mode>): Use got_page_ofst_operand instead of
+ local_got_operand.
+ * config/mips/predicates.md (const_call_insn_operand): Use
+ SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
+ (global_got_operand): Rename to...
+ (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
+ SYMBOL_GOT_GLOBAL.
+ (local_got_operand): Rename to...
+ (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
+ of SYMBOL_GOT_LOCAL.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
+ TARGET_CALL_CLOBBERED_GP.
+ (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
+ (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
+ (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
+ (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
+ of TARGET_ABICALLS && !TARGET_NEWABI.
+ (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
+ * config/mips/mips.c (mips_load_call_address): Check
+ TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
+ (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
+ Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
+ (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
+ TARGET_ABICALLS && TARGET_NEWABI.
+ (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
+ TARGET_ABICALLS.
+ (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
+ (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
+ TARGET_ABICALLS && TARGET_NEWABI.
+ (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
+ TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
+ TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
+ whether indirect calls must use $25.
+ (mips_extra_live_on_entry): Check TARGET_GOT instead of
+ TARGET_ABICALLS.
+ * config/mips/mips.md (jal_macro): Check flag_pic and
+ TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
+ (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
+ instead of TARGET_ABICALLS.
+ (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
+ TARGET_ABICALLS && TARGET_OLDABI.
+ (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
+ (sibcall): In the comment above the define_insn, mention
+ TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
+ * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
+ instead of TARGET_ABICALLS.
+
+2007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * doc/md.texi (Blackfin family constraints): Document PA and PB.
+ * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
+ (MACFLAGS_MATCH_P): New macro.
+ * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
+ (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
+ * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
+ the other MACFLAG constants.
+ (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
+ (flag_machi): Tighten constraints. Renumber some of the operands.
+ (flag_machi_acconly): Tighten constraints. Correct operand numbers in
+ output template.
+ (flag_machi_parts_acconly): New pattern.
+ (flag_macinithi): Tighten constraints. Allow any accumulator to be
+ used.
+ (flag_macinit1hi): Tighten constraints.
+ (flag_mul_macv2hi_parts_acconly): New pattern.
+
+ * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
+ Use a more efficient implementation.
+ * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
+ inline sequences when not optimizing for size.
+
+ * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
+ movhi_high2low): Delete, merge functionality into...
+ (packv2hi): ... this pattern.
+
+ 2007-02-11 Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/bfin.opt (msim): New option.
+ (mcpu=): New option.
+ * config/bfin/bfin-protos.h (enum bfin_cpu): New.
+ (bfin_cpu_t): Typedef of enum bfin_cpu.
+ (bfin_cpu_type): New declaration.
+ * config/bfin/elf.h (STARTFILE_SPEC): Add support for
+ -msim and -mcpu= options.
+ (LIB_SPEC): Likewise.
+ * config/bfin/bfin.c (bfin_cpu_type): Define.
+ (bfin_handle_option): Handle -mcpu= option.
+ * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
+ (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
+ __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
+ (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
+ (powerpc-wrs-vxworksae): Use ${tm_file}.
+ (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
+ after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
+ * config/i386/vx-common.h: New file.
+
+2007-04-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
+ of crt0.o%s.
+
+2007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
+ ldxtr.
+
+2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
+
+ PR c++/31078
+ PR c++/31103
+ * c-common.c (c_build_qualified_type): Set canonical type
+ appropriately.
+
+2007-04-12 Richard Guenther <rguenther@suse.de>
+
+ * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
+ lower bound and element size if lower bound is not zero
+ or either of the ARRAY_REF operands is set.
+
+2007-04-12 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/24689
+ PR tree-optimization/31307
+ * fold-const.c (operand_equal_p): Compare INTEGER_CST array
+ indices by value.
+ * gimplify.c (canonicalize_addr_expr): To be consistent with
+ gimplify_compound_lval only set operands two and three of
+ ARRAY_REFs if they are not gimple_min_invariant. This makes
+ it never at this place.
+ * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
+
+2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
+ null before emitting a .nsubspa directive.
+
+2007-04-11 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
+ need_to_partition_p if there are no memory statements in the
+ function.
+
+2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
+ (gcd_of_steps_may_divide_p): New function.
+ (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
+
+2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload.c (find_reloads_toplev, find_reloads_address,
+ find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
+ not a pointer equality test, to decide if we need to call
+ push_reg_equiv_alt_mem.
+
+2007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
+
+ * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
+ insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
+ (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
+
+2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-data-ref.c (add_multivariate_self_dist): Force the distance
+ vector to be positive.
+
+2007-04-11 Diego Novillo <dnovillo@redhat.com>
+
+ PR 30735
+ PR 31090
+ * doc/invoke.texi: Document --params max-aliased-vops and
+ avg-aliased-vops.
+ * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
+ debug_memory_partitions): Move to tree-flow.h
+ * params.h (AVG_ALIASED_VOPS): Define.
+ * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
+ users.
+ (mp_info_t): Likewise.
+ (get_mem_sym_stats_for): New.
+ (set_memory_partition): Move from tree-flow-inline.h.
+ (mark_non_addressable): Only clear the set of symbols for the
+ partition if it exists.
+ (dump_memory_partitions): Move from tree-ssa-operands.c
+ (debug_memory_partitions): Likewise.
+ (need_to_partition_p): New.
+ (dump_mem_ref_stats): New.
+ (debug_mem_ref_stats): New.
+ (dump_mem_sym_stats): New.
+ (debug_mem_sym_stats): New.
+ (update_mem_sym_stats_from_stmt): New.
+ (compare_mp_info_entries): New.
+ (mp_info_cmp): Call it.
+ (sort_mp_info): Change argument to a list of mem_sym_stats_t
+ objects.
+ (get_mpt_for): Move from tree-ssa-operands.c.
+ (find_partition_for): New.
+ (create_partition_for): Remove.
+ (estimate_vop_reduction): New.
+ (update_reference_counts): New.
+ (build_mp_info): New.
+ (compute_memory_partitions): Refactor.
+ Document new heuristic.
+ Call build_mp_info, update_reference_counts,
+ find_partition_for and estimate_vop_reduction.
+ (compute_may_aliases): Populate virtual operands before
+ calling debugging dumps.
+ (delete_mem_sym_stats): New.
+ (delete_mem_ref_stats): New.
+ (init_mem_ref_stats): New.
+ (init_alias_info): Call it.
+ (maybe_create_global_var): Remove alias_info argument.
+ Get number of call sites and number of pure/const call sites
+ from gimple_mem_ref_stats().
+ (dump_alias_info): Call dump_memory_partitions first.
+ (dump_points_to_info_for): Show how many times a pointer has
+ been dereferenced.
+ * opts.c (decode_options): For -O2 set --param
+ max-aliased-vops to 500.
+ For -O3 set --param max-aliased-vops to 1000 and --param
+ avg-aliased-vops to 3.
+ * fortran/options.c (gfc_init_options): Remove assignment to
+ MAX_ALIASED_VOPS.
+ * tree-flow-inline.h (gimple_mem_ref_stats): New.
+ * tree-dfa.c (dump_variable): Dump memory reference
+ statistics.
+ Dump NO_ALIAS* settings.
+ (referenced_var_lookup): Tidy.
+ (mem_sym_stats): New.
+ * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
+ and ORIG are different SSA names for a memory partition.
+ * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
+ * tree-flow.h (struct mem_sym_stats_d): Define.
+ (mem_sym_stats_t): Define.
+ (struct mem_ref_stats_d): Define.
+ (struct gimple_df): Add field mem_ref_stats.
+ (enum noalias_state): Define.
+ (struct var_ann_d): Add bitfield noalias_state.
+ (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
+ debug_mem_ref_stats, debug_memory_partitions,
+ debug_mem_sym_stats): Declare.
+ * tree-ssa-structalias.c (update_alias_info): Update call
+ sites, pure/const call sites and asm sites in structure
+ returned by gimple_mem_ref_stats.
+ Remove local variable IS_POTENTIAL_DEREF.
+ Increase NUM_DEREFS if the memory expression is a potential
+ dereference.
+ Call update_mem_sym_stats_from_stmt.
+ If the memory references memory, call
+ update_mem_sym_stats_from_stmt for all the direct memory
+ symbol references found.
+ (intra_create_variable_infos): Set noalias_state field for
+ pointer arguments according to the value of
+ flag_argument_noalias.
+ * tree-ssa-structalias.h (struct alias_info): Remove fields
+ num_calls_found and num_pure_const_calls_found.
+ (update_mem_sym_stats_from_stmt): Declare.
+ * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
+ Set default value to 100.
+ (PARAM_AVG_ALIASED_VOPS): Define.
+
+2007-04-11 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/31530
+ * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
+ a * -b + c as c - a * b if we honor sign dependent rounding.
+
+2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
+ bfin_expand_strmov.
+ * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
+ bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
+ variables.
+ (initialize_trampoline): Don't use old-style function definition.
+ (bfin_secondary_reload): Mark IN_P argument as unused.
+
+2007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
+
+ PR tree-optimization/31343
+ * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
+ (build_polynomial_chrec): Return a scalar when the evolution is zero.
+ * testsuite/gcc.dg/vect/pr31343.c: New.
+
+2007-04-10 Eric Christopher <echristo@apple.com>
+
+ * config/i386/i386.h (X87_FLOAT_MODE_P): New.
+ * config/i386/i386.md (*cmpfp0): Use.
+ (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
+ (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
+ (fix_trunc<mode>_i386_fisttp): Ditto.
+ (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
+ (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
+ (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
+ (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
+ (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
+ (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
+ (unnamed_splitters): Ditto.
+ * config/i386/i386.c (output_fix_trunc): Assert that
+ we're not being passed a TFmode operand.
+
+2007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/31526
+ * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
+ n_basic_blocks to find newly added blocks.
+
+2007-04-10 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
+ alternative.
+ (fix_trunc<mode>si_sse): Ditto.
+ (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
+ (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
+ (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
+ (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
+ (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
+ expander using SSEMODEF mode macro.
+ (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
+ expander using SSEMODEF mode macro.
+ (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
+ *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
+ (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
+ *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
+ (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
+ *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
+ (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
+ Macroize insn using X87MODEF mode macro.
+
+2007-04-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (sse2_pinsrw): Removed.
+ (sse2_pextrw): Renamed to ...
+ (*sse2_pextrw): This.
+
+2007-04-09 Jan Hubicka <jh@suse.cz>
+
+ PR target/27869
+ * config/i386/sse.md
+ (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
+ (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
+ (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
+ (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
+
+2007-04-09 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
+ multiple fields of union.
+
+2007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
+ (create_preheaders): Check that loops are available.
+ (fix_loop_structure): Clean up, improve comments.
+ * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
+ Check that loops are available. Set LOOP_CLOSED_SSA to the loops
+ state flags.
+ * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
+ * predict.c (tree_estimate_probability): Do not call
+ calculate_dominance_info. Call create_preheaders.
+ * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
+ rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
+ flags.
+ * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
+ * cfgloop.h (LOOP_CLOSED_SSA): New constant.
+ * tree-cfg.c (tree_split_edge): Make an assert more precise.
+ * tree-ssa-threadedge.c (thread_across_edge): Comment the function
+ arguments.
+
+2007-04-08 Jan Hubicka <jh@suse.cz>
+
+ * tree.h (maybe_fold_offset_to_component_ref): Declare.
+ * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
+ * fold-const.c (fold_unary): Use it.
+
+2007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * varasm.c (assemble_variable): Remove call to
+ lang_hooks.decls.prepare_assemble_variable.
+ * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
+ (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
+ * langhooks.h (lang_hooks_for_decls): Remove
+ prepare_assemble_variable.
+
+2007-04-08 Mike Stump <mrs@apple.com>
+
+ * config/i386/i386.c: Use inc/dec on Core2.
+
+2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
+
+ * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
+ lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
+ lhd_tree_inlining_end_inlining): Remove.
+ * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
+ add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
+ end_inlining hooks.
+ * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
+ lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
+ lhd_tree_inlining_end_inlining): Remove prototypes.
+ (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
+ LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
+ LANG_HOOKS_TREE_INLINING_START_INLINING,
+ LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
+
+ * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
+ not set it.
+
+2007-04-08 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/29932
+ * config/avr/predicates.md (io_address_operand): Delete predicate.
+ (low_io_address_operand): Don't use 'mode' argument.
+ (higth_io_address_operand): Rename ...
+ (high_io_address_operand): ... to this. Don't use 'mode' argument.
+ * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
+ for above change.
+
2007-04-07 Daniel Berlin <dberlin@dberlin.org>
Revert change removing staticp.
@@ -5,7 +834,7 @@
2007-04-07 Anatoly Sokolov <aesok@post.ru>
PR target/30289
- * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
+ * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
earlyclobber.
2007-04-07 Bruce Korb <bkorb@gnu.org>
@@ -83,7 +912,7 @@
* langhooks.h (lang_hooks): Remove safe_from_p.
(lhd_safe_from_p): Remove prototype.
* langhooks.c (lhd_safe_from_p): Remove.
-
+
2007-04-06 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (decide_is_function_needed): Do not keep always_inline
@@ -189,7 +1018,7 @@
2007-04-05 Anatoly Sokolov <aesok@post.ru>
PR target/25448
- * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
+ * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
DECL_ASSEMBLER_NAME, not the DECL_NAME.
2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2007-04-16 16:03:43.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2007-04-17 01:31:17.000000000 +0000
@@ -1,3 +1,47 @@
+2007-04-16 Seongbae Park <seongbae.park@gmail.com>
+
+ PR c++/29365
+
+ * cp/decl2.c (constrain_class_visibility):
+ Do not warn about the use of anonymous namespace in the main input file.
+
+2007-04-15 Mark Mitchell <mark@codesourcery.com>
+
+ * cp-tree.h (current_template_parms): Fix typo in comment.
+
+2007-04-15 Kazu Hirata <kazu@codesourcery.com>
+
+ * cp-tree.h, error.c: Fix comment typos.
+
+2007-04-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/31074
+ * call.c (reference_binding): Add c_cast_p parm. If true,
+ add quals to TO as needed to make it reference-compatible.
+
+2007-04-11 Jan Hubicka <jh@suse.cz>
+
+ * cp/class.c (convert_to_base_statically): Fold produced tree; verify
+ that we are not processing template_decl.
+
+2007-04-09 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/31449
+ * class.c (build_base_path): Ensure that the converted pointer has
+ the same cv-qualification as the input.
+
+2007-04-09 Paolo Carlini <pcarlini@suse.de>
+
+ * tree.c (cp_tree_equal): Deal with TRAIT_EXPR.
+
+2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
+
+ * cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS):
+ Do not set it.
+ (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do not set it.
+ * tree.c (cp_add_pending_fn_decls): Remove.
+ * cp-tree.h (cp_add_pending_fn_decls): Remove prototype.
+
2007-04-07 Daniel Berlin <dberlin@dberlin.org>
Revert change removing staticp.
@@ -13,8 +57,6 @@
* class.c (check_for_override): Don't remove dllmport attribute
of virtual methods.
-
-
2007-04-03 Jakub Jelinek <jakub@redhat.com>
PR c++/30847
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.