+2009-05-04 Michael Eager <eager@eagercon.com>
+
+ * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
+ * config/rs6000/t-xilinx: New
+
+2009-05-04 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
+ * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/explow.c (memory_address): Use target hook.
+ * gcc/targhooks.c (default_legitimize_address): New.
+ * gcc/targhooks.h (default_legitimize_address): New.
+ * gcc/target.h (legitimize_address): New.
+ * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
+ (TARGET_INITIALIZER): Include it.
+ * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
+
+ * config/bfin/bfin-protos.h (legitimize_address): Remove.
+ * config/bfin/bfin.c (legitimize_address): Remove.
+ * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
+ * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address): Remove.
+ * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
+ * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
+
+ * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
+ THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
+ * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
+
+ * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
+ * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
+ * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
+ * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
+ * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
+ * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
+ * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
+ * gcc/config/arm/arm-protos.h (arm_legitimize_address,
+ (thumb_legitimize_address): Delete.
+ * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
+ * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
+ * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
+ * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
+ * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
+ * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address): Delete.
+ * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address): Delete.
+
+ * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
+ * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
+ * config/m32r/m32r.c (m32r_legitimize_address): New.
+ * config/m68k/m68k.c (m68k_legitimize_address): New.
+ * config/score/score.c (score_legitimize_address): Standardize.
+ * config/score/score3.c (score3_legitimize_address): Standardize.
+ * config/score/score3.h (score3_legitimize_address): Adjust.
+ * config/score/score7.c (score7_legitimize_address): Standardize.
+ * config/score/score7.h (score7_legitimize_address): Adjust.
+ * config/sh/sh.c (sh_legitimize_address): New.
+ * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
+
+ * gcc/config/s390/s390.c (legitimize_address): Rename to...
+ (s390_legitimize_address): ... this.
+ * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
+ (sparc_legitimize_address): ... this.
+ * gcc/config/i386/i386.c (legitimize_address): Rename to...
+ (ix86_legitimize_address): ... this.
+ * gcc/config/avr/avr.c (legitimize_address): Rename to...
+ (avr_legitimize_address): ... this.
+ * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
+ (mn10300_legitimize_address): ... this.
+ * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
+ (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
+ (alpha_expand_mov): Adjust call.
+
+ * config/frv/frv.c (frv_legitimize_address): Return x on failure.
+ * config/spu/spu.c (spu_legitimize_address): Likewise.
+ * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
+ * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
+
+2009-05-04 Joseph Myers <joseph@codesourcery.com>
+
+ * intl.c (locale_encoding, locale_utf8): New.
+ (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
+ * intl.h (locale_encoding, locale_utf8): Declare.
+ * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
+ (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
+ New.
+ * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
+ argument.
+ (pp_tree_identifier): Define to call pp_base_tree_identifier.
+ (pp_base_tree_identifier): Declare as function.
+ (identifier_to_locale): Declare.
+ * Makefile.in (pretty-print.o): Update dependencies.
+ * varasm.c (finish_aliases_1): Use %qE for identifiers in
+ diagnostics.
+
+2009-05-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/40015
+ * builtins.c (fold_builtin_memory_op): Do not decay to element
+ type if the size matches the whole array.
+
+2009-05-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * expmed.c (synth_mult): When trying out a shift, pass the result
+ of a signed shift.
+
+2009-05-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
+ (shiftsub1_cost): New.
+ (init_expmed): Compute shiftsub1_cost.
+ (synth_mult): Optimize multiplications by constants of the form
+ -(2^^m-1) for some constant positive integer m.
+
+2009-05-03 Richard Guenther <rguenther@suse.de>
+
+ PR c/39983
+ * c-typeck.c (array_to_pointer_conversion): Do not built
+ ADDR_EXPRs of arrays of pointer-to-element type.
+ * c-gimplify.c (c_gimplify_expr): Revert change fixing
+ up wrong ADDR_EXPRs after-the-fact.
+ * c-common.c (strict_aliasing_warning): Strip pointer
+ conversions for obtaining the original type.
+ * builtins.c (fold_builtin_memset): Handle array types.
+ (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
+ and array types
+
+2009-05-03 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/23329
+ * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
+ Do not lose casts from array types with unknown extent to array
+ types with known extent.
+ * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
+ alias set compatibility.
+
+2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * flags.h (extra_warnings): Delete.
+ * toplev.c (process_options): Handle Wuninitialized here.
+ * opts.c (extra_warnings): Delete.
+ (set_Wextra): Delete.
+ (common_handle_option): -Wextra can be handled automatically.
+ * c-opts.c (c_common_handle_option): Delete obsolete code.
+ (c_common_post_options): Simplify comment.
+ * common.opt (W): Add Var.
+ (Wextra): Add Var.
+ (Wuninitialized): Initialize to -1.
+
+2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
+ Richard Guenther <rguenther@suse.de>
+
+ * expr.c (get_def_for_expr): New function.
+ (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
+ SSA rather than trees.
+ <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
+ TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
+
+2009-05-03 Joseph Myers <joseph@codesourcery.com>
+
+ * c-common.c (reswords): Add _Imaginary.
+ * c-common.c (enum rid): Add RID_IMAGINARY.
+
+2009-05-03 Paolo Bonzini <bonzini@gnu.org>
+
+ * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
+ Patch by Richard Guenther.
+
+2009-05-03 Anatoly Sokolov <aesok@post.ru>
+
+ * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
+ * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
+ * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
+ * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
+
+2009-05-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/39940
+ * tree-ssa-pre.c (eliminate): Make sure we may propagate before
+ doing so.
+
+2009-05-02 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/40001
+ * tree-ssa.c (execute_update_addresses_taken): Properly check
+ if we can mark a variable DECL_GIMPLE_REG_P.
+ * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
+ back to the end of the function.
+ (is_gimple_reg_type): Remove complex type special casing.
+ * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
+ if not optimizing.
+
+2009-05-02 Ben Elliston <bje@au.ibm.com>
+
+ * doc/collect2.texi (Collect2): Document search path behaviour
+ when configured with --with-ld.
+
+2009-05-02 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
+ parameter; update callers.
+ (coalesce_cost_edge): EH edges are costier because they needs splitting
+ even if not critical and even more costier when there are multiple
+ EH predecestors.
+
+2009-05-02 Jan Hubicka <jh@suse.cz>
+
+ * except.c (remove_eh_handler_and_replace): Handle updating after
+ removing TRY blocks.
+
+2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
+
+2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
+
+ * varasm.c: Do not include c-pragma.h.
+ * attribs.c: Do not incude c-common.h.
+
+2009-05-01 Michael Matz <matz@suse.de>
+
+ * calls.c (initialize_argument_information): Handle SSA names like
+ decls with a non MEM_P DECL_RTL.
+
2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
* ipa-reference.c: Do not include c-common.h, include splay-tree.h.