OSDN Git Service

* tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 3ed6355..a2f3006 100644 (file)
+2009-07-06  Diego Novillo  <dnovillo@google.com>
+
+       * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
+       if it has one.  Handle cases where VAR does not have an
+       annotation or cfun is NULL.
+
+2009-07-06  Diego Novillo  <dnovillo@google.com>
+
+       * tree.c: Include debug.h.
+       (initialize_tree_contains_struct): New.
+       (init_ttree): Call it.
+       (tree_node_structure_for_code): Factor out of ...
+       (tree_node_structure): ... here.
+       * treestruct.def (TS_PHI_NODE): Remove.
+       (TS_GIMPLE_STATEMENT): Remove.
+
+2009-07-06  Diego Novillo  <dnovillo@google.com>
+
+       * tree-pretty-print.c (dump_generic_node): Protect
+       against NULL op0.
+       (debug_tree_chain): Handle cycles.
+
+2009-07-06  Nick Clifton  <nickc@redhat.com>
+           DJ Delorie  <dj@redhat.com>
+
+       * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
+       __FMOVD_ENABLED__ is defined.
+       * config/sh/sh.h
+       (TARGET_FMOVD): Provide a default definition.
+       (MASK_FMOVD): Likewise.
+       (TARGET_CPU_CPP_BUILTINS): Define
+       __FMOVD_ENABLED__ if TARGET_FMOVD is true.
+       * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
+       two fmov instructions depending upon whether TARGET_FMOVD is
+       enabled.
+       (split for DF load from memory into register): Also handle
+       MEMs which consist of REG+DISP addressing.
+       (split for DF store from register to memory): Likewise.
+       (movsf_ie): Always use single fp_mode.
+       * config/sh/sh.c (sh_override_options): Do not automatically
+       enable TARGET_MOVD for the SH2A when supporting doubles - leave
+       that to the -mfmovd command line switch.
+       (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
+       (fldi_ok): Always allow.
+       * config/sh/sh.opt (mfmovd): Remove this switch.
+       * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
+
+2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
+           Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR rtl-optimization/30807
+       * postreload.c (reload_combine): For every new use of REG_SUM,
+       record the use of BASE.
+
+2009-07-06  Jan Hubicka  <jh@suse.cz>
+
+       * params.def: Revert my accidental commit at 2009-06-30.
+
+2009-07-04  Ian Lance Taylor  <iant@google.com>
+
+       PR target/40636
+       * config/i386/msformat-c.c (mingw_format_attributes): Declare as
+       EXPORTED_CONST.
+       (mingw_format_attribute_overrides): Likewise.
+
+2009-07-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/40596
+       * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
+       don't check cfa.reg.  Instead of cfa.indirect use
+       fde && fde->drap_reg != INVALID_REGNUM test.
+
+2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
+
+2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR target/40587
+       * ira.c (build_insn_chain): Use DF_LR_OUT instead of
+       df_get_live_out.
+       
+2009-07-03  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/40640
+       * tree-switch-conversion.c (build_arrays): Perform arithmetic
+       in original type.
+
+2009-07-03  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
+       for size, reduce amount of inlining.
+
+2009-07-03  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/34163
+       * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to
+       (T2)t +- (T2)x if t +- x is known to not overflow and
+       the conversion widens the operation.
+       * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
+
+2009-07-03  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-pure-const.c (analyze): Update loop optimizer init.
+       * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
+       try_remove_empty_loop, remove_empty_loops): Remove.
+       * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
+       * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
+       to mark regular loops as neccesary.
+       (degenerate_phi_p): New function.
+       (propagate_necessity, remove_dead_phis): Use it.
+       (forward_edge_to_pdom): Likewise.
+       (eliminate_unnecessary_stmts): Take care to remove uses of results of
+       virtual PHI nodes that became unreachable.
+       (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
+       * tree-flow.h (remove_empty_loops): Remove.
+       * passes.c (init_optimization_passes): Remove.
+
+2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
+       can_create_pseudo_p.
+       (*fix_trunc<mode>_i387_1): Ditto.
+       (*floathi<mode>2_1): Ditto.
+       (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
+       (*fistdi2_1): Ditto.
+       (*fist<mode>2_1): Ditto.
+       (frndintxf2_floor): Ditto.
+       (*fist<mode>2_floor_1): Ditto.
+       (frndintxf2_ceil): Ditto.
+       (*fist<mode>2_ceil_1): Ditto.
+       (frndintxf2_trunc): Ditto.
+       (frndintxf2_mask_pm): Ditto.
+       (fxam<mode>2_i387_with_temp): Ditto.
+       * config/i386/sse.md (mulv16qi3): Ditto.
+       (*sse2_mulv4si3): Ditto.
+       (mulv2di3): Ditto.
+       (sse4_2_pcmpestr): Ditto.
+       (sse4_2_pcmpistr): Ditto.
+
+2009-07-03  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
+       (mark_stmt_necessary): Set it.
+       (mark_operand_necessary): Set it.
+       (mark_control_dependent_edges_necessary): Set it.
+       (mark_virtual_phi_result_for_renaming): New function.
+       (get_live_post_dom): New function.
+       (forward_edge_to_pdom): New function.
+       (remove_dead_stmt): Fix handling of control dependences.
+       (tree_dce_init): Init new bitmap.
+       (tree_dce_done): Free it.
+
+2009-07-02  Richard Guenther  <rguenther@suse.de>
+
+       PR bootstrap/40617
+       * tree-ssa-structalias.c (new_var_info): Initialize
+       is_restrict_var.
+
+2009-07-02  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
+       local.
+
+2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
+
+       * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
+       instead of recomputing it.  Adjust calls.
+       (emit_store_flag): Adjust recursive calls.
+
+2009-07-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-live.c (remove_unused_locals): Do not remove
+       heap variables.
+       * tree-ssa-structalias.c (handle_lhs_call): Delay setting
+       of DECL_EXTERNAL for HEAP variables.
+       (compute_points_to_sets): Set DECL_EXTERNAL for escaped
+       HEAP variables.  Do not adjust RESTRICT vars.
+       (find_what_var_points_to): Nobody cares if something
+       points to READONLY.
+
+2009-07-02  Ben Elliston  <bje@au.ibm.com>
+
+       * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
+       pc_low and pc_high declarations to the top of the function.
+
+2009-07-01  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.c (mep_handle_option): Leave IVC2 control
+       registers as fixed.
+       (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
+       * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
+       unspecified accesses to control registers.
+       * config/mep/intrinsics.md: Regenerate.
+       * config/mep/intrinsics.h: Regenerate.
+       * config/mep/mep-intrin.h: Regenerate.
+       
+2009-07-01  Anthony Green  <green@moxielogic.com>
+
+       * config/moxie/moxie.c (moxie_expand_prologue): Use dec
+       instruction when possible.
+       (moxie_expand_prologue): Ditto.  Also, save an instruction and
+       some complexity by popping off of $r12 instead of $sp.  
+       * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
+       operands.
+       
+2009-07-01  Richard Henderson  <rth@redhat.com>
+
+       PR bootstrap/40347
+       * function.c (reposition_prologue_and_epilogue_notes): If epilogue
+       contained no insns, reposition note before last insn.
+
+2009-07-01  Richard Henderson  <rth@redhat.com>
+
+       PR debug/40431
+       * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
+       DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
+
+2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR bootstrap/40558
+       * config/rs6000/rs6000.c (print_operand): Undo change that breaks
+       darwin9 for printing reg addresses with %y.
+
+2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
+       truncation from operands in binary operations.
+
+2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
+
+       Revert:
+       2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
+       * expmed.c (store_bit_field_1): Properly truncate the paradoxical
+       subreg of op0 to the original op0.
+
+       * expmed.c (store_bit_field_1): Use a temporary as the destination
+       instead of a paradoxical subreg when we need to truncate the result.
+
+2009-07-01  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
+       names to VLIW variants.
+       (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
+       * config/mep/intrinsics.md: Regenerate.
+       * config/mep/intrinsics.h: Regenerate.
+       * config/mep/mep-intrin.h: Regenerate.
+
+2009-07-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/40462
+       * jump.c (returnjump_p): Revert last patch.
+       * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
+
+2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/40575
+       * pa.md (casesi32p): Use jump table label to determine the offset
+       of the jump table.
+       (casesi64p): Likewise.
+
+       * pa.c (forward_branch_p): Return bool type.  Use instruction
+       addresses when available.  Assert that INSN has a jump label.
+       (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
+       have a jump label.
+
+2009-07-01  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/19831
+       * tree-ssa-dce.c (propagate_necessity): Calls to functions
+       that only act as barriers do not make any previous stores necessary.
+       * tree-ssa-structalias.c (handle_lhs_call): Delay making
+       HEAP variables global, do not add a constraint from nonlocal.
+       (find_func_aliases): Handle escapes through return statements.
+       (compute_points_to_sets): Make escaped HEAP variables global.
+
+2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR bootstrap/40597
+       * expmed.c (emit_store_flag): Perform a conversion if necessary,
+       after reducing a DImode cstore to SImode.
+
+2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
+
+       * expr.c (expand_expr_real_1): Reinstate fallthrough to
+       TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
+
+2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
+       * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
+       to 0.
+       * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
+       and umod_optab if TARGET_BSD_DIVMOD.
+       * config/vax/lib1funcs.asm: New file.
+       * config/vax/t-linux: New file.
+       * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
+
+2009-06-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/40566
+       * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
+       to type arguments that have void type.
+
+       PR debug/40573
+       * dwarf2out.c (gen_formal_parameter_die): Call
+       equate_decl_number_to_die if node is different from origin.
+
+2009-06-30  Anthony Green  <green@moxielogic.com>
+
+       Clean up moxie port for --enable-build-with-cxx.
+       * config/moxie/moxie.c (moxie_function_value): First two
+       parameters are const_tree, not tree.
+       * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
+       (REG_CLASS_NAMES): Ditto.
+       (REGNO_REG_CLASS): Ditto.
+       * config/moxie/moxie-protos.h (moxie_override_options): Declare.
+       (moxie_function_value): Fix constyness of arguments.
+
+2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cgraphunit.c (cgraph_finalize_compilation_unit): Call
+       finalize_size_functions before further processing.
+       * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
+       (variable_size): Call self_referential_size on size expressions
+       that contain a PLACEHOLDER_EXPR.
+       (size_functions): New static variable.
+       (copy_self_referential_tree_r): New static function.
+       (self_referential_size): Likewise.
+       (finalize_size_functions): New global function.
+       * tree.c: Include tree-inline.h.
+       (push_without_duplicates): New static function.
+       (find_placeholder_in_expr): New global function.
+       (substitute_in_expr) <tcc_declaration>: Return the replacement object
+       on equality.
+       <tcc_expression>: Likewise.
+       <tcc_vl_exp>: If the replacement object is a constant, try to inline
+       the call in the expression.
+       * tree.h (finalize_size_functions): Declare.
+       (find_placeholder_in_expr): Likewise.
+       (FIND_PLACEHOLDER_IN_EXPR): New macro.
+       (substitute_placeholder_in_expr): Update comment.
+       * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
+       is true.
+       (copy_tree_body_r): Likewise.
+       (copy_tree_body): New static function.
+       (maybe_inline_call_in_expr): New global function.
+       * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
+       (maybe_inline_call_in_expr): Declare.
+       * Makefile.in (tree.o): Depend on TREE_INLINE_H.
+       (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
+       GIMPLE_H.
+
+2009-06-30  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
+       continue walking.
+       (propagate_necessity): Do not mark reaching defs of stores
+       as necessary.
+
+2009-06-30  Jan Hubicka  <jh@suse.cz>
+
+       * cfgloopanal.c (check_irred): Move into ...
+       (mark_irreducible_loops): ... here; return true if ireducible
+       loops was found.
+       * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
+       (analyze_function): Try to prove loop finiteness.
+       * cfgloop.h (mark_irreducible_loops): Update prototype.
+       * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
+
+2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
+
+       * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
+
+2009-06-30  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/40542
+       * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
+       types.
+
+2009-06-30  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/40582
+       * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
+       than useless_type_conversion_p.
+       (generate_subtree_copies): Increment sra_stats.subtree_copies at a
+       proper place.
+
+2009-06-30  Martin Jambor  <mjambor@suse.cz>
+
+       PR middle-end/40554
+       * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
+
+2009-06-30  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
+       use ao_ref references.
+       (walk_aliased_vdefs): Likewise.
+       * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
+       * tree-ssa-dce.c (struct ref_data): Remove.
+       (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
+       (mark_aliased_reaching_defs_necessary): Adjust.
+       (mark_all_reaching_defs_necessary_1): Likewise.
+
+2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR boostrap/40597
+       * expmed.c (emit_cstore): New name of emit_store_flag_1.
+       (emit_store_flag_1): Extract from emit_store_flag, adjust
+       calls to (what now is) emit_cstore.
+       (emit_store_flag): Call emit_store_flag_1 and also use it
+       for what used to be recursive calls.
+
+2009-06-30  Wei Guozhi  <carrot@google.com>
+
+       PR/40416
+       * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
+       if the target bb post dominates from bb.
+       * config/i386/i386.c (memory_address_length): Check existence of base
+       register before using it.
+
+2009-06-30  Nick Clifton  <nickc@redhat.com>
+           DJ Delorie  <dj@redhat.com>
+
+       * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
+       __FMOVD_ENABLED__ is defined.
+       * config/sh/sh.h
+       (TARGET_FMOVD): Provide a default definition.
+       (MASK_FMOVD): Likewise.
+       (TARGET_CPU_CPP_BUILTINS): Define
+       __FMOVD_ENABLED__ if TARGET_FMOVD is true.
+       * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
+       two fmov instructions depending upon whether TARGET_FMOVD is
+       enabled.
+       (split for DF load from memory into register): Also handle
+       MEMs which consist of REG+DISP addressing.
+       (split for DF store from register to memory): Likewise.
+       * config/sh/sh.opt (mfmovd): Remove this switch.
+       * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
+       * config/sh/sh.c (sh_override_options): Do not automatically
+       enable TARGET_MOVD for the SH2A when supporting doubles - leave
+       that to the -mfmovd command line switch.
+
+       * config/sh/sh.c (broken_move): Do not restrict fldi test to only
+       the SH4 and SH4A.
+       (fldi_ok): Always allow.
+       * config/sh/sh.md (movsf_ie): Always use single fp_mode.
+
+2009-06-29  DJ Delorie  <dj@redhat.com>
+
+       * doc/install.texi (mep-x-elf): Correct chip's full name.
+
+2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * doc/extend.texi: Fix typo.
+
+2009-06-29  Tom Tromey  <tromey@redhat.com>
+
+       * dwarf2.h: Remove.
+       * Makefile.in (DWARF2_H): New variable.
+       (except.o): Use it.
+       (dwarf2out.o): Likewise.
+       (dwarf2asm.o): Likewise.
+       * config/i386/t-i386: Use DWARF2_H.
+       * except.c: Include elf/dwarf2.h.
+       * unwind-dw2.c: Include elf/dwarf2.h.
+       * dwarf2out.c: Include elf/dwarf2.h.
+       (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
+       <dtprel>: New field.
+       (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
+       (size_of_loc_descr): Likewise.
+       (output_loc_operands_raw): Likewise.
+       (output_loc_operands): Handle new dtprel field.
+       (loc_checksum): Update.
+       (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
+       * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
+       * unwind-dw2-fde.c: Include elf/dwarf2.h.
+       * dwarf2asm.c: Include elf/dwarf2.h.
+       * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
+       * config/mmix/mmix.c: Include elf/dwarf2.h.
+       * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
+       * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
+       * config/sh/sh.c: Include elf/dwarf2.h.
+       * config/i386/i386.c: Include elf/dwarf2.h.
+
+2009-06-29  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
+
+       * doc/extend.texi: Add MeP attributes and pragmas.
+       * doc/invoke.text: Add MeP Options.
+       * doc/contrib.texi: Add MeP contribution.
+       * doc/md.texi: Add MeP constraints.
+       * doc/install.texi: Add MeP target.
+
+2009-06-30  Anatoly Sokolov  <aesok@post.ru>
+
+       * target.h (struct gcc_target): Add frame_pointer_required field.
+       * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
+       (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
+       * ira.c (setup_eliminable_regset): Use frame_pointer_required target
+       hook.
+       * reload1.c (update_eliminables): (Ditto.).
+       * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
+       * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
+       (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
+
+       * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
+
+       * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
+       (arm_frame_pointer_required): New function.
+
+       * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
+       (avr_frame_pointer_required_p): Declare as static.
+       * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
+
+       * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
+       (bfin_frame_pointer_required): Make as static, change return type
+       to bool.
+       * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
+
+       * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
+       (cris_frame_pointer_required): New function.
+       
+       * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
+
+       * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
+       (fr30_frame_pointer_required): New function.
+       
+       * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
+       (frv_frame_pointer_required): Make as static, change return type
+       to bool.
+       * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
+
+       * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
+       (ix86_frame_pointer_required): Make as static, change return type to
+       bool.
+       * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
+
+       * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
+
+       * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
+
+       * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
+       
+       * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
+
+       * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
+       (mips_frame_pointer_required): Make as static.
+       * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
+       
+       * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
+       (mmix_frame_pointer_required): Mew function.
+
+       * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
+
+       * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
+
+       * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
+
+       * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
+
+       * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
+       (CAN_ELIMINATE): Redefine.
+       * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
+       (sparc_frame_pointer_required): New function.
+       (sparc_can_eliminate): New function.
+       * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
+
+       * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
+
+       * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
+       * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
+       (xtensa_frame_pointer_required): Make as static, change return type
+       to bool.
+       * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
+       Remove.
+
+2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
+
+       * doc/plugins.texi: Document PLUGIN_START_UNIT.
+       * toplev.c (compile_file): Call PLUGIN_START_UNIT.
+       * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
+       * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
+       (register_callback): Handle PLUGIN_START_UNIT.
+       (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
+
+2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.c (process_call_operands): Propagate TREE_READONLY from the
+       operands.
+       (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
+       (build3_stat): Propagate TREE_READONLY for COND_EXPR.
+
+2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
+       move cost.
+
+2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
+
+       * doc/extend.texi (Additional Floating Types): __float128 is also
+       supported on i386 targets.
+
+2009-06-29  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/14187
+       * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
+       flag.
+       (pt_solutions_same_restrict_base): Declare.
+       * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
+       flag.
+       (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
+       (make_constraint_from, make_copy_constraint): Move earlier.
+       (make_constraint_from_heapvar): New function.
+       (make_constraint_from_restrict): Likewise.
+       (handle_lhs_call): Use it.
+       (find_func_aliases): Use it to track conversions to restrict
+       qualified pointers.
+       (struct fieldoff): Add only_restrict_pointers flag.
+       (push_fields_onto_fieldstack): Initialize it.
+       (create_variable_info_for): Track global restrict qualified pointers.
+       (intra_create_variable_infos): Use make_constraint_from_heapvar.
+       Track restrict qualified pointer arguments.
+       (set_uids_in_ptset): Use varinfo is_global_var flag.
+       (find_what_var_points_to): Set the vars_contains_restrict flag.
+       Always create the points-to solution for sets including restrict tags.
+       (pt_solutions_same_restrict_base): New function.
+       * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
+       qualified pointers use pt_solutions_same_restrict_base as
+       additional source for disambiguation.
+
+2009-06-29  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/38212
+       * alias.c (find_base_decl): Remove.
+       (get_deref_alias_set_1): Remove restrict handling.
+       * c-common.c (c_apply_type_quals_to_decl): Do not set
+       DECL_POINTER_ALIAS_SET.
+       * gimplify.c (find_single_pointer_decl_1): Remove.
+       (find_single_pointer_decl): Likewise.
+       (internal_get_tmp_var): Remove restrict handling.
+       (gimple_regimplify_operands): Likewise.
+       * omp-low.c (expand_omp_atomic_pipeline): Do not set
+       DECL_POINTER_ALIAS_SET. Use ref-all pointers.
+       * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
+       * tree.c (restrict_base_for_decl): Remove.
+       (init_ttree): Do not allocate it.
+       (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
+       LABEL_DECL_UID for label decls.
+       (copy_node_stat): Do not copy restrict information.
+       (decl_restrict_base_lookup): Remove.
+       (decl_restrict_base_insert): Likewise.
+       (print_restrict_base_statistics): Likewise.
+       (dump_tree_statistics): Do not call print_restrict_base_statistics.
+       * tree.h (DECL_POINTER_ALIAS_SET): Remove.
+       (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
+       (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
+       (LABEL_DECL_UID): Adjust.
+       (DECL_BASED_ON_RESTRICT_P): Remove.
+       (DECL_GET_RESTRICT_BASE): Likewise.
+       (SET_DECL_RESTRICT_BASE): Likewise.
+       (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
+
+       * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
+       instead of DECL_POINTER_ALIAS_SET.
+       * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
+       * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
+       * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
+
+2009-06-29  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/40579
+       * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
+       the IL to simplify has constants that overflowed.
+
+2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR tree-optimization/40550
+       * tree-vect-generic.c (expand_vector_operations_1): Compute in
+       vector_compute_type only when the size of vector_compute_type is
+       less than the size of type.
+
+2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fold-const.c (contains_label_1): Fix comments.
+       (contains_label_p): Do not walk trees multiple time.
+
+2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
+       * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
+       cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
+       ix86_fp_comparison_operator.
+       (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
+       *fp_jcc_2_sse, *fp_jcc_2_387): Delete
+       (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
+       *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
+       !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
+       to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
+       (related splits): Change predicate to ix86_fp_comparison_operator.
+       * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
+       instead of ix86_fp_comparison_codes.
+       (ix86_trivial_fp_comparison_operator,
+       ix86_fp_comparison_operator): New.
+       * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
+       (ix86_expand_compare): Eliminate last two parameters.
+       (ix86_fp_jump_nontrivial_p): Kill.
+       * config/i386/i386.c (put_condition_code): Eliminate call to
+       ix86_fp_comparison_codes and subsequent assertion.
+       (ix86_fp_comparison_codes): Eliminate.
+       (ix86_fp_swap_condition): New.
+       (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
+       ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
+       into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
+       (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
+       and ix86_fp_swap_condition.
+       (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
+       Use ix86_fp_comparison_strategy.
+       (ix86_expand_compare): Likewise.  Eliminate last two arguments.
+       (ix86_fp_jump_nontrivial_p): Eliminate.
+       (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
+       call to ix86_expand_compare.
+       (ix86_split_fp_branch, ix86_expand_setcc,
+       ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
+       ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
+
+2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
+       related to jump_clobbers.
+       * config/arm/arm.md (conds): Remove jump_clob case.
+       (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
+       splits): Change comparison_operator to arm_comparison_operator.
+       (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
+       Eliminate.
+
+2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
+
+       * dojump.c (do_compare_rtx_and_jump): Try swapping the
+       condition for floating point modes.
+       * expmed.c (emit_store_flag_1): Move here a bigger part
+       of emit_store_flag.
+       (emit_store_flag): Try swapping the condition for floating point
+       modes.
+       * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
+
+2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
+
+       * expr.c (expand_expr_real_1): Just use do_store_flag.
+       (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
+       emit_store_flag_force.
+       * expmed.c (emit_store_flag_force): Copy here trick
+       previously in expand_expr_real_1.  Try reversing the comparison.
+       (emit_store_flag_1): Work if target is NULL.
+       (emit_store_flag): Work if target is NULL, using the result mode
+       from the comparison.  Use split_comparison, restructure final part
+       to simplify conditionals.
+
+2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
+
+       * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
+       * dojump.c (do_jump): Change handling of floating-point
+       ops to use just do_compare_and_jump.
+       (split_comparison): New.
+       (do_compare_rtx_and_jump): Add here logic coming previously
+       in do_jump, using split_comparison.
+
+2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/40489
+       * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
+
+2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-ssa-alias.c: Fix unintentional commit.
+
+2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       * passes.c (execute_one_pass): Fix unintentional commit.
+
+2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       * df-problems.c (df_set_seen, df_unset_seen): Delete.
+       (df_rd_local_compute, df_md_local_compute): Inline them.
+
+       (df_md_scratch): New.
+       (df_md_alloc, df_md_free): Allocate/free it.
+       (df_md_local_compute): Only include live registers in init.
+       (df_md_transfer_function): Prune the in-set computed by
+       the confluence function, and the gen-set too.
+
+2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR rtl-optimization/26854
+       * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
+       * df-problems.c (df_rd_add_problem): Fix comment.
+       (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
+       df_md_simulate_artificial_defs_at_top,
+       df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
+       df_md_bb_local_compute, df_md_local_compute, df_md_reset,
+       df_md_transfer_function, df_md_init, df_md_confluence_0,
+       df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
+       problem_MD, df_md_add_problem): New.
+       * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
+       df_md_get_bb_info): New.
+       (DF_LAST_PROBLEM_PLUS1): Adjust.
+
+       * Makefile.in (fwprop.o): Include domwalk.h.
+       * fwprop.c: Include domwalk.h.
+       (reg_defs, reg_defs_stack): New.
+       (bitmap_only_bit_between): Remove.
+       (process_defs): New.
+       (process_uses): Use reg_defs and local_md instead of
+       bitmap_only_bit_between and local_rd.
+       (single_def_use_enter_block): New, from build_single_def_use_links.
+       (single_def_use_leave_block): New.
+       (build_single_def_use_links): Remove code moved to
+       single_def_use_enter_block, invoke domwalk.
+       (use_killed_between): Adjust comment.
+
+2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       * bitmap.h (bitmap_ior_and_into): New.
+       * bitmap.c (bitmap_ior_and_into): New.
+
+2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       * domwalk.h (struct dom_walk_data): Remove all callbacks except
+       before_dom_children_before_stmts and after_dom_children_after_stmts.
+       Rename the two remaining callbacks to just before_dom_children and 
+       after_dom_children. Remove other GIMPLE statement walking bits.
+       * domwalk.c (walk_dominator_tree): Remove now unsupported features.
+       * graphite.c: Do not include domwalk.h.
+       * tree-into-ssa.c (interesting_blocks): New global.
+       (struct mark_def_sites_global_data): Remove it and names_to_rename.
+       (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
+       rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
+       now that they're not domwalk callbacks.
+       (rewrite_initialize_block): Rename to...
+       (rewrite_enter_block): ... this, place after called functions.  Test
+       interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
+       (rewrite_finalize_block): Rename to...
+       (rewrite_leave_block): ... this, place after called functions.
+       (rewrite_update_init_block): Rename to...
+       (rewrite_update_enter_block): ... this, place after called functions.
+       Test interesting_blocks, call rewrite_update_stmt and 
+       rewrite_update_phi_arguments.
+       (rewrite_update_fini_block): Rename to...
+       (rewrite_leave_block): ... this, place after called functions.
+       (rewrite_blocks): Remove last argument, simplify initialization of
+       walk_data.
+       (mark_def_sites_initialize_block): Rename to...
+       (mark_def_sites_block): ... this, call mark_def_sites.
+       (mark_def_sites_blocks): Remove argument, simplify initialization of
+       walk_data.
+       (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
+       (update_ssa): Likewise.
+       * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
+       callback.
+       (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
+       (dom_opt_initialize_block): Rename to...
+       (dom_opt_enter_block): ... this, place after called functions.  Walk
+       statements here, inline propagate_to_outgoing_edges.
+       (dom_opt_finalize_block): Rename to...
+       (dom_opt_leave_block): ... this, place after called functions.
+       * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
+       domwalk callback.
+       (dse_enter_block, dse_record_phi): New.
+       (dse_record_phis): Delete.
+       (dse_finalize_block): Rename to...
+       (dse_leave_block): ... this.
+       (tree_ssa_dse): Simplify initialization of walk_data.
+       * tree-ssa-loop-im.c (determine_invariantness, move_computations):
+       Adjust initialization of walk_data.
+       * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
+       * tree-ssa-loop-phiopt.c (get_non_trapping):
+       Adjust initialization of walk_data.
+       * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
+       * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
+       it's not a domwalk callback.
+       (uncprop_initialize_block): Rename to...
+       (dse_enter_block): ... this, call uncprop_into_successor_phis.
+       (dse_finalize_block): Rename to...
+       (dse_leave_block): ... this.
+       (tree_ssa_uncprop): Simplify initialization of walk_data.
+       * Makefile.in: Adjust dependencies.
+
+2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md (casesi): Fix test for Thumb1.
+       (thumb1_casesi_internal_pic): Likewise.
+       (thumb1_casesi_dispatch): Likewise.
+
+2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
+
+       * config/arm/arm-cores.def: Added core cortex-m0.
+       * config/arm/arm-tune.md: Regenerated.
+       * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
+
+2009-06-26  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
+
+       * config/mep/mep.c (mep_bundle_insns): Account for the fact that
+       the scheduler doesn't tag jump insns.
+
+2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * c-decl.c (merge_decls): Re-indent.
+
+2009-06-26  Janis Johnson  <janis187@us.ibm.com>
+
+       PR c/39902
+       * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
+       Special-case decimal float constants.
+
+2009-06-26  Richard Henderson  <rth@redhat.com>
+
+       * function.h (struct function): Add cannot_be_copied_reason,
+       and cannot_be_copied_set.
+       * tree-inline.c (has_label_address_in_static_1): Rename from
+       inline_forbidden_p_2; don't set inline_forbidden_reason here.
+       (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
+       don't set inline_forbidden_reason.
+       (copy_forbidden): New function, split out of inline_forbidden_p.
+       (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
+       (inline_forbidden_p): Use copy_forbidden.
+       (tree_versionable_function_p): Likewise.
+       (inlinable_function_p): Merge into tree_inlinable_function_p.
+       (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
+       * ipa-cp.c (ipcp_versionable_function_p): New function.
+       (ipcp_cloning_candidate_p): Use it.
+       (ipcp_node_modifiable_p): Likewise.
+
+2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
+
+       * builtins.c (expand_builtin_alloca): Handle builtin alloca
+       that is marked not to be inlined. Remove flag_mudflap use.
+       * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
+       (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
+
+2009-06-26  Steve Ellcey  <sje@cup.hp.com>
+
+       PR bootstrap/40338
+       * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
+       * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
+
+2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
+       shared libgcc.
+       (__mingwthr_remove_key_dtor): Likewise.
+
+2009-06-26  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
+
+2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR middle-end/40525
+       * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
+       try the non-cond_exec path also.
+
+2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/40468
+       * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
+       (output_cbranch): Use new functions.
+       (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
+       Likewise.
+
+2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
+           Pat Haugen  <pthaugen@us.ibm.com>
+           Revital Eres <ERES@il.ibm.com>
+
+       * config/rs6000/rs6000.c (print_operand): Correct lossage message
+       for %c error.  Add %x support to print VSX registers as a unified
+       register set, instead of separate float and altivec registers.
+       Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
+       %y case, and add support for VSX pre-modify addresses.
+       (output_toc): Add assert for CONST containing an integer constant
+       in the PLUS case.
+       (rs6000_adjust_cost): Add POWER7 support.
+       (insn_must_be_first_in_group): Ditto.
+       (insn_must_be_last_in_group): Ditto.
+       (rs6000_emit_popcount): Ditto.
+       (rs6000_vector_mode_supported_p): Ditto.
+
+       * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
+       Change some of the functions called by macros to being called
+       through a pointer, so debug functions can be inserted if
+       -mdebug=addr or -mdebug=cost. 
+       (rs6000_preferred_reload_class_ptr): Ditto.
+       (rs6000_secondary_reload_class_ptr): Ditto.
+       (rs6000_secondary_memory_needed_ptr): Ditto.
+       (rs6000_cannot_change_mode_class_ptr): Ditto.
+       (rs6000_secondary_reload_inner): Ditto.
+       (rs6000_legitimize_reload_address): Ditto.
+       (rs6000_legitimize_reload_address_ptr): Ditto.
+       (rs6000_mode_dependent_address): Ditto.
+       (rs6000_mode_dependent_address_ptr): Ditto.
+
+       * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
+       function to return true if the mode allows reg + integer
+       addresses.
+       (virtual_stack_registers_memory_p): New function to return true if
+       the address refers to a virtual stack register.
+       (rs6000_legitimate_offset_address_p): Move code to say whether a
+       mode supports reg+int addressing to reg_offset_addressing_ok_p and
+       call it.
+       (rs6000_legitimate_address_p): Add checks for modes that only can
+       do reg+reg addressing.  Start adding VSX support.
+       (rs6000_legitimize_reload_address): Ditto.
+       (rs6000_legitimize_address): Ditto.
+       (rs6000_debug_legitimate_address_p): New debug functions for
+       -mdebug=addr and -mdebug=cost.
+       (rs6000_debug_rtx_costs): Ditto.
+       (rs6000_debug_address_costs): Ditto.
+       (rs6000_debug_adjust_cost): Ditto.
+       (rs6000_debug_legitimize_address): Ditto.
+       (rs6000_legitimize_reload_address_ptr): Point to call normal
+       function or debug function.  Make functions called via pointer
+       static.
+       (rs6000_mode_dependent_address_ptr): Ditto.
+       (rs6000_secondary_reload_class_ptr): Ditto.
+       (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
+       (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
+       into a friendlier error.
+       (rs6000_init_builtins): Add initial VSX support.
+       (rs6000_adjust_cost): Fix some spacing issues.
+
+       * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
+       (REG_CLASS_NAMES): Ditto.
+       (REG_CLASS_CONTENTS): Ditto.
+       (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
+       pointer, to add -mdebug=addr support.
+       (CANNOT_CHANGE_MODE_CLASS): Ditto.
+       (SECONDARY_RELOAD_CLASS): Call through a pointer to add
+       -mdebug=addr support.
+       (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
+       (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
+       (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
+
+       * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
+       16-bit values.
+       (bswapsi*): Set attribute types for load/store.  Add combiner
+       patterns to eliminate zero extend on 64-bit.
+       (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
+       stdbrx if the hardware supports those instructions.
+
 2009-06-25  Ian Lance Taylor  <iant@google.com>
 
        * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
        condition determining whether to remove the statement.
 
 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
-       * doc/plugins.texi (Building GCC plugins): Corrected typo in
-       Makefile excerpt - @ should be doubled for texinfo.
+
+       * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
+       excerpt - @ should be doubled for texinfo.
 
 2009-06-24  Ian Lance Taylor  <iant@google.com>
 
        * config/avr/avr.md (movmemhi): Use add_reg_note.
        (andhi3, andsi3): Don't use AS2 with "and".
        (iorhi3, iorsi3): Don't use AS2 with "or".
-       * config/avr/avr-protos.h (class_likely_spilled_p): Update
-       declaration.
+       * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
        * config/crx/crx.c: Include "df.h".
        (crx_attribute_table): Make static.
        * config/m32r/m32r.c: Include "df.h".
        HARD_REGNO_NREGS, to calculate the number of registers each hard
        register takes for each type.
        (rs6000_debug_reg_print): New function for -mdebug=reg support.
-       (rs6000_debug_vector_unit): New array, map rs6000_vector to
-       string.
+       (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
        (+rs6000_init_hard_regno_mode_ok): New function, move calculation
        of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
        unit information here so it is calculated once at compiler startup
 
 2009-06-22  Ian Lance Taylor  <iant@google.com>
 
-       * config/rs6000/rs6000.opt: Move msched-epilog before
-       msched-prolog.
+       * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
 
 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
 
 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
        PR target/40482
-       * config/arm/arm.c (thumb_shiftable_const): Truncate val to 
-       32 bits.
+       * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
        * config/arm/arm.md: Likewise.
 
 2009-06-19  Ian Lance Taylor  <iant@google.com>
        to GIMPLE_ERROR_MARK.
 
        * c-typeck.c (build_conditional_expr): Add op1_original_type and
-       op2_original_type parameters.  Warn about using different enum
-       types.
+       op2_original_type parameters.  Warn about using different enum types.
        * c-parser.c (c_parser_conditional_expression): Pass original
        types to build_conditional_expr.
        * c-tree.h (build_conditional_expr): Update declaration.