+2007-04-19 Janis Johnson <janis187@us.ibm.com>
+
+ * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
+ __STDC_WANT_DEC_FP__.
+
+2007-04-19 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
+ for long double compatibility.
+ * configure: Regenerate.
+
+2007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR rtl-optimization/29841
+ * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
+ trap instructions.
+ * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
+ that may cause control flow transfer from being moved.
+
+2007-04-18 Jan Hubicka <jh@suse.cz>
+
+ * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
+ types.
+
+2007-04-18 Eric Christopher <echristo@apple.com>
+
+ * config/rs6000/darwin.md (load_macho_picbase): Use link register
+ only. Update operands.
+ * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
+ * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
+ link register to pic register.
+
+2007-04-18 Dirk Mueller <dmueller@suse.de>
+
+ PR diagnostic/31227
+ * tree-vrp.c (search_for_addr_array): New.
+ (check_array_bounds): Suppress warning about
+ address taken of array refs if its not de-referenced.
+
+2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
+ * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
+
+ * tree-vectorizer.h (NITERS_KNOWN_P): New.
+ * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
+ instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
+
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
+ dump print.
+ (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a
+ print message.
+ (vect_analyze_scalar_cycles): Fix indentation.
+ (vect_enhance_data_refs_alignment): Fix check in case of peeling.
+ (vect_mark_relevant): Include phis in relevance analysis.
+
+ * tree-vect-transform.c (vect_transform_loop): Add an assert.
+
+2007-04-18 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (ptrreg_to_str): Replace error() with
+ output_operand_lossage().
+
+2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
+ the unused code for reduction without adjust-in-epilog to simplify the
+ function.
+
+2007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com>
+
+ * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
+ (S390_TDC_NEGATIVE_ZERO): New constant.
+ (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
+ (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
+ (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
+ (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
+ (S390_TDC_POSITIVE_INFINITY): New constant.
+ (S390_TDC_NEGATIVE_INFINITY): New constant.
+ (S390_TDC_POSITIVE_QUIET_NAN): New constant.
+ (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
+ (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
+ (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
+ (S390_TDC_INFINITY): New constant.
+ * config/s390/s390.c (s390_canonicalize_comparison): Renamed
+ UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
+ optimization for UNSPEC_CCZ_TO_INT.
+ * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
+ ("*ccz_to_int"): New insn.
+ ("isinf<mode>2"): New insn.
+ (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
+ (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
+ (UNSPEC_CCZ_TO_INT): New constant.
+
+2007-04-18 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/19431
+ PR tree-optimization/21463
+ * tree-pass.h (pass_phiprop): Declare.
+ * passes.c (init_optimization_passes): New phiprop pass.
+ * tree-ssa-forwprop.c (struct phiprop_d): New structure.
+ (phivn_valid_p): New helper function.
+ (phiprop_insert_phi): Likewise.
+ (propagate_with_phi): Likewise.
+ (tree_ssa_phiprop): New propagator propagating loads
+ through phi nodes if profitable.
+
+2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-analyze.c (process_use): New function.
+ (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
+ Check phis in all bbs.
+ * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
+ assert.
+
+2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
+ we use REG_EQUAL.
+
+2007-04-17 Anatoly Sokolov <aesok@post.ru>
+
+ PR target/30483
+ * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
+ error().
+
+2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
+ on "0".
+ (sse_vmmulv4sf3): Likewise.
+ (sse2_vmaddv2df3): Likewise.
+ (sse2_vmmulv2df3): Likewise.
+
+2007-04-17 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR rtl-optimization/31360
+ * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
+ (target_reg_cost): New.
+ (init_set_costs): Initialize target_reg_cost. Add comments
+ regarding the rationale of the costs.
+ (global_cost_for_size): Renamed to...
+ (estimate_reg_pressure_cost): ... and simplify. Decrease importance
+ of register pressure.
+ * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
+ estimate_reg_pressure_cost. Add number of ivs.
+ (determine_set_costs): Dump target_reg_cost.
+ * loop-invariant.c (gain_for_invariant): Use
+ estimate_reg_pressure_cost. Removed n_inv_uses argument.
+ (best_gain_for_invariant, find_invariants_to_move): Remove
+ n_inv_uses.
+ * cfgloop.h (target_small_cost, target_pres_cost): Removed.
+ (target_reg_cost): Declare.
+ (global_cost_for_size): Declaration removed.
+ (estimate_reg_pressure_cost): Declare.
+
+2007-04-17 Peter Bergner <bergner@vnet.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
+ regnos into even/odd register pairs.
+ * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
+ TDmode similar to the other floating point modes.
+ [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
+ * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
+ define_expand's.
+ (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
+ nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
+ (movdd_hardfloat64): Use TARGET_MFPGPR.
+
+2007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * reload1.c (delete_output_reload): Don't count output in n_inherited.
+
+ Revert
+ 2005-01-05 Richard Henderson <rth@redhat.com>
+ PR rtl-opt/10692
+ * reload1.c (do_input_reload): Restrict the optimization deleteing
+ a previous output reload to RELOAD_FOR_INPUT.
+
+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.
PR c++/31078
PR c++/31103
* c-common.c (c_build_qualified_type): Set canonical type
- appropriately.
+ appropriately.
2007-04-12 Richard Guenther <rguenther@suse.de>