+2009-05-06 Janis Johnson <janis187@us.ibm.com>
+
+ PR middle-end/39986
+ * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
+ decode_decimal64, encode_decimal128, decode_decimal128): Avoid
+ 32-bit memcpy into long.
+
+2009-05-06 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
+ (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
+ new_reg_loc_descr.
+ (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
+ instead of appending DW_OP_deref*.
+
+2009-05-06 Michael Matz <matz@suse.de>
+
+ PR middle-end/40021
+ * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
+ (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
+
+2009-05-06 Rafael Avila de Espindola <espindola@google.com>
+
+ * Makefile.in (install-plugin): Fix srcdir handling.
+
+2009-05-06 Andrey Belevantsev <abel@ispras.ru>
+
+ * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
+ when processing for not_regs_needed bitmap.
+ * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
+ handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
+ handling it for rhs.
+
+2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (unnamed inc/dec peephole): Use
+ optimize_insn_for_size_p instead
+ of optimize_size.
+ * config/i386/predicates.md (incdec_operand): Likewise.
+ (aligned_operand): Likewise.
+ * config/i386/sse.md (divv8sf3): Likewise.
+ (sqrtv8sf2): Likewise.
+
+2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
+
+ * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
+
+2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
+ ssemodesuffixf2c with avxmodesuffixf2c.
+
+2009-05-06 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/40032
+ * c-decl.c (grokdeclarator): Handle incomplete type of unnamed
+ field.
+
+2009-05-05 Jakub Jelinek <jakub@redhat.com>
+
+ * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
+ (struct tree_base): Adjust spacing for 8 bit boundaries.
+ (struct tree_decl_common): Add decl_by_reference_flag bit.
+ (DECL_BY_REFERENCE): Adjust.
+ * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
+ print DECL_BY_REFERENCE bit.
+ * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
+ * dwarf2out.c (loc_by_reference, gen_decl_die): Check
+ DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
+ (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
+ unconditionally.
+
+ PR middle-end/39666
+ * gimplify.c (gimplify_switch_expr): If case labels cover the whole
+ range of the type, but default label is missing, add it with one
+ of the existing labels instead of adding a new label for it.
+
+2009-05-05 Joseph Myers <joseph@codesourcery.com>
+
+ * dwarf.h: Remove.
+
+2009-05-05 Rafael Avila de Espindola <espindola@google.com>
+
+ * Makefile.in (enable_plugin, plugin_includedir): New.
+ (install): Depend on install-plugin.
+ (PLUGIN_HEADERS): New.
+ (install-plugin): New.
+ * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
+
+2009-05-05 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/40022
+ * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
+ the only vuse.
+ (phivn_valid_p): Fix tuplification error, simplify.
+ (phiprop_insert_phi): Add dumps.
+ (propagate_with_phi): Simplify.
+
+2009-05-05 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/40023
+ * builtins.c (gimplify_va_arg_expr): Properly build the
+ address.
+
+2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
+
+ * tree.h (strip_float_extensions): Remove duplicate declaration.
+ (build_low_bits_mask, debug_fold_checksum, expand_function_end,
+ expand_function_start, stack_protect_prologue, stack_protect_epilogue,
+ block_ultimate_origin): Rearrange the declarations line to match the
+ comment that indicates the .c file which the functions are defined.
+ (dwarf2out_*, set_decl_rtl): Add comment.
+ (get_base_address): Adjust comment.
+ (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
+ declarations line and add comment.
+ (is_builtin_name): Add blank after function name, for clarity.
+
+2009-05-04 Joseph Myers <joseph@codesourcery.com>
+
+ * attribs.c (decl_attributes): Use %qE for identifiers in
+ diagnostics.
+ * cgraphunit.c (verify_cgraph_node): Translate function names to
+ locale character set in diagnostics.
+ * coverage.c (get_coverage_counts): Use %qE for identifiers in
+ diagnostics.
+ * doc/invoke.texi (-finstrument-functions-exclude-function-list):
+ Document that functions are named in UTF-8.
+ * expr.c (expand_expr_real_1): Translate function names to locale
+ character set in diagnostics.
+ * gimplify.c (omp_notice_variable, omp_is_private,
+ gimplify_scan_omp_clauses): Use %qE for identifiers in
+ diagnostics.
+ * langhooks.c (lhd_print_error_function): Translate function names
+ to locale character set.
+ * langhooks.h (decl_printable_name): Document that return value is
+ in internal character set.
+ * stmt.c: Include pretty-print.h
+ (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
+ diagnostics.
+ (resolve_operand_name_1): Translate named operand name to locale
+ character set.
+ * stor-layout.c (finalize_record_size): Use %qE for identifiers in
+ diagnostics.
+ * toplev.c (announce_function): Translate function names to locale
+ character set.
+ (warn_deprecated_use): Use %qE for identifiers in diagnostics.
+ (default_tree_printer): Use pp_identifier or translate identifiers
+ to locale character set. Mark "<anonymous>" for translation.
+ * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
+ for identifiers in diagnostics.
+ * tree.c (handle_dll_attribute): Use %qE for identifiers in
+ diagnostics.
+ * varasm.c (output_constructor): Use %qE for identifiers in
+ diagnostics.
+
+2009-05-04 Rafael Avila de Espindola <espindola@google.com>
+
+ * configure.ac: use ` ` instead of $()
+ * configure: Regenerate.
+
+2009-05-05 Ben Elliston <bje@au.ibm.com>
+
+ * config/pa/linux-atomic.c: Eliminate conditional include of
+ errno.h on non-LP64 systems to simplify build requirements.
+
+2009-05-04 Joseph Myers <joseph@codesourcery.com>
+
+ * c-common.c (handle_mode_attribute): Use %qE for identifiers in
+ diagnostics.
+ * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
+ and pass value to identifier_to_locale.
+ (warn_variable_length_array): Make name a tree.
+ (grokdeclarator): Separate diagnostic texts for named and unnamed
+ declarators. Use %qE for named declarators.
+ * c-parser.c (c_lex_one_token): Use %qE for identifiers in
+ diagnostics.
+ * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
+ identifiers in diagnostics.
+ * c-typeck.c (push_member_name, start_init): Pass identifiers to
+ identifier_to_locale. Mark "anonymous" strings for translation.
+
+2009-05-04 Michael Eager <eager@eagercon.com>
+
+ * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
+ address for DImode/DFmode only if double-precision FP regs.
+
+2009-05-04 Michael Eager <eager@eagercon.com>
+
+ * config/rs6000/rs6000.c (rs6000_libcall_value): Add
+ TARGET_SINGLE_FLOAT check.
+
+2009-05-04 Michael Eager <eager@eagercon.com>
+
+ * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
+
+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.
+ * ipa-utils.c: Likewise.
+ * ipa-type-escape.c: Likewise.
+ * cgraphunit.c Do not include c-common.h.
+ * ipa-pure-const.c: Likewise.
+ * tree-if-conv.c: Likewise.
+ * matrix-reorg.c: Do not include c-common.h and c-tree.h.
+ * ipa-struct-reorg.c: Likewise.
+ * tree-nomudflap.c: Likewise.
+ * tree-ssa-structalias.c: Likewise.
+
+2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
+
+ * store-motion.c: Many cleanups to make this pass a first-class
+ citizen instead of an appendix to gcse load motion. Add TODO list
+ to make this pass faster/cleaner/better.
+
+ (struct ls_expr): Post gcse.c-split cleanups.
+ Rename to st_expr. Rename "loads" field to "antic_stores". Rename
+ "stores" field to "avail_stores".
+ (pre_ldst_mems): Rename to store_motion_mems.
+ (pre_ldst_table): Rename to store_motion_mems_table.
+ (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
+ (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
+ (ldst_entry): Rename to st_expr_entry, update users.
+ (free_ldst_entry): Rename to free_st_expr_entry, update users.
+ (free_ldst_mems): Rename to free_store_motion_mems, update users.
+ (enumerate_ldsts): Rename to enumerate_store_motion_mems, update caller.
+ (first_ls_expr): Rename to first_st_expr, update users.
+ (next_ls_expr): Rename to next_st_expr, update users.
+ (print_ldst_list): Rename to print_store_motion_mems. Print names of
+ fields properly for store motion instead of names inherited from load
+ motion in gcse.c.
+ (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
+ (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
+ are done with it.
+
+ (ae_kill): Rename to st_kill, update users.
+ (ae_gen): Rename to st_avloc, update users.
+ (transp): Rename to st_transp, update users.
+ (pre_insert_map): Rename to st_insert_map, update users.
+ (pre_delete_map): Rename to st_delete_map, update users.
+ (insert_store, build_store_vectors, free_store_memory,
+ one_store_motion_pass): Update for abovementioned changes.
+
+ (gcse_subst_count, gcse_create_count): Remove.
+ (one_store_motion_pass): New statistics counters "n_stores_deleted"
+ and "n_stores_created", local variables.
+
+ (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
+ use for_each_rtx.
+
+ (regvec, compute_store_table_current_insn): Remove.
+ (reg_set_info, reg_clear_last_set): Remove.
+ (compute_store_table): Use DF caches instead of local dataflow
+ solvers.
+
+2009-05-01 Joseph Myers <joseph@codesourcery.com>
+
+ * c-objc-common.c (c_tree_printer): Print identifiers with
+ pp_identifier, not pp_string. Mark "({anonymous})" for
+ translation.
+ * c-pretty-print.c (pp_c_ws_string): New.
+ (pp_c_cv_qualifier, pp_c_type_specifier,
+ pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
+ pp_c_storage_class_specifier, pp_c_function_specifier,
+ pp_c_attributes, pp_c_bool_constant, pp_c_constant,
+ pp_c_primary_expression, pp_c_postfix_expression,
+ pp_c_unary_expression, pp_c_shift_expression,
+ pp_c_relational_expression, pp_c_equality_expression,
+ pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
+ use pp_string and pp_c_ws_string in place of pp_identifier and
+ pp_c_identifier for non-identifiers. Mark English strings for
+ translation.
+ * c-pretty-print.h (pp_c_ws_string): Declare.
+
+2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
+ Roland McGrath <roland@redhat.com>
+
+ * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id
+ support.
+ (ENABLE_LD_BUILDID): New configuration option.
+ * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
+ (LINK_BUILDID_SPEC): New macro.
+ (init_spec): If defined, prepend it between LINK_EH_SPEC and
+ link_spec.
+ * doc/install.texi: Document --enable-linker-build-id option.
+ * configure: Rebuild.
+ * config.in: Rebuild.
+
+2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
+ MIPS_GP_SAVE_AREA_SIZE): Define new macros.
+ (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
+ MIPS_GP_SAVE_AREA_SIZE.
+ * config/mips/mips.c (struct mips_frame_info): Update comment
+ before arg_pointer_offset and hard_frame_pointer_offset.
+ (mips_compute_frame_info): Update diagram before function: to
+ correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
+ indicate the position of frame_pointer_rtx with -fstack-protector and
+ to show args_size. Don't allocate cprestore area for leaf functions
+ if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
+ cprestore_size.
+ (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
+
+2009-04-30 Michael Matz <matz@suse.de>
+
+ PR tree-optimization/39955
+ * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
+
+2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ * ira.c (setup_cover_and_important_classes): Use safe macro
+ REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
+ directly.
+ * genpreds.c (write_tm_preds_h): Output suitable definition of
+ REG_CLASS_FOR_CONSTRAINT.
+
+2009-04-30 Rafael Avila de Espindola <espindola@google.com>
+
+ * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
+ instead of an int.
+ * bitmap.c (bitmap_descriptor): Likewise.
+ * ggc-common.c (loc_descriptor): Likewise.
+ * varray.c (varray_descriptor): Likewise.
+ * vec.c (vec_descriptor): Likewise.
+
+2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
+
+ * Makefile.in (dce.o): Add $(EXCEPT_H).
+ * dce.c: Include except.h and delete redundant vector definitions.
+ (deletable_insn_p): Return false for non-call insns that can throw
+ if DF is running.
+
+2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
+
+ * gcse.c (ae_gen): Remove.
+ (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
+ and make non-static function to make it available in store-motion.c.
+ Update call sites with search-and-replace.
+ (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
+ extract_mentioned_regs, extract_mentioned_regs_helper,
+ find_moveable_store, compute_store_table, load_kills_store, find_loads,
+ store_killed_in_insn, store_killed_after, store_killed_before,
+ build_store_vectors, insert_insn_start_basic_block, insert-store,
+ remove_reachable_equiv_notes, replace_store_insn, delete_store,
+ free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
+ execute_rtl_store_motion, pass_rtl_store_motion): Move to...
+ * store-motion.c: ...new file. Also copy data structures from gcse.c
+ and clean up to remove parts not used by store motion.
+ * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
+ * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
+
+2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ PR target/38571
+ * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
+ when optimizing for size.
+
+2009-04-30 Hans-Peter Nilsson <hp@axis.com>
+
+ * gcse.c (gcse_constant_p): Fix typo in last change.
+
+2009-04-30 Rafael Avila de Espindola <espindola@google.com>
+
+ * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
+
+2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * gcse.c (gcse_constant_p): Make sure the constant is sharable.
+
+2009-04-29 James E. Wilson <wilson@codesourcery.com>
+
+ * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
+ CONST_HIGH_PART result.
+
+2009-04-29 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (initial_elimination_offset): Rename to
+ avr_initial_elimination_offset.
+ (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
+ change return type to bool.
+ (avr_can_eliminate): New function.
+ * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
+ (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
+ (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
+ * config/avr/avr-protos.h (initial_elimination_offset) : Rename to
+ avr_initial_elimination_offset.
+ (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
+ (avr_initial_elimination_offset): Define.
+
+2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
+ Steven Bosscher <steven@gcc.gnu.org>
+
+ PR rtl-optimization/39938
+ * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
+ * cfgrtl.c: Include insn-attr.h.
+ (rest_of_pass_free_cfg): New function.
+ (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
+ * resource.c (init_resource_info): Remove call to df_analyze.
+
+2009-04-29 Richard Guenther <rguenther@suse.de>
+
+ PR target/39943
+ * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
+ allow conversion to signed integers.
+
+2009-04-29 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_gimple_assign_binary): Allow vector
+ shifts of floating point vectors if the shift amount is
+ a constant multiple of the element size.
+
+2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
+ Michael Matz <matz@suse.de>
+
+ PR middle-end/39927
+ PR bootstrap/39929
+ * tree-outof-ssa.c (emit_partition_copy): New function.
+ (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
+ insert_part_to_rtx_on_edge): Perform the partition base var
+ copy using emit_partition_copy.
+ (insert_value_copy_on_edge): Convert constants to the right mode.
+ (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
+ (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
+
+2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
+ scan backwards to try to find a constant to initialize it.
+
+ * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
+ insn before the loop_end instruction, don't look past labels.
+
+2009-04-29 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/39937
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
+ loose type conversions.
+ (forward_propagate_addr_expr): Fix tuplification bug. Remove
+ stmts only if there are no uses of its definition.
+
+2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.h (splitting_loops): Declare.
+ * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
+ Reorder bit definitions to be ascending.
+ (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
+ * config/bfin/bfin.c (splitting_loops): New variable.
+ (bfin_cpus): Add WA_LOAD_LCREGS as needed.
+ (struct loop_info): Remove members INIT and LOOP_INIT.
+ (bfin_optimize_loop): Don't set them. Reorder the code that generates
+ the LSETUP sequence. Allow LC to be loaded from any register, but also
+ add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
+ (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
+ set to 1.
+ * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
+ of reload_completed.
+ From Jie Zhang:
+ * config/bfin/bfin.md (movsi_insn): Refine constraints.
+
+2009-04-29 Rafael Avila de Espindola <espindola@google.com>
+
+ * Makefile.in (PLUGIN_VERSION_H): New.
+ (OBJS-common): Remove plugin-version.o.
+ (plugin.o): Depend on (PLUGIN_VERSION_H).
+ (plugin-version.o): Remove.
+ * configure: Regenerate
+ * configure.ac: Create plugin-version.h.
+ * gcc-plugin.h (plugin_gcc_version): Remove.
+ (plugin_default_version_check): Change signature.
+ * plugin-version.c: Remove.
+ * plugin.c: Include plugin-version.h.
+ (str_plugin_gcc_version_name): Remove.
+ (try_init_one_plugin): Pass gcc version to plugin_init.
+ (plugin_default_version_check): Both gcc and plugin versions are now
+ arguments.
+
+2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
+ problematic last insns. Test for TYPE_CALL rather than CALL_P.
+ Remove special case testing for last insn of inner loops. Don't fail if
+ the loop ends with a jump, emit an extra nop instead.
+
+ * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
+ DREGS rather than comparing directly. Remove code that tries to
+ account for latencies.
+
+2009-04-29 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/39941
+ * tree-ssa-pre.c (eliminate): Schedule update-ssa after
+ eliminating an indirect call.
+
2009-04-29 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue