OSDN Git Service

* dwarf2out.c (deferred_asm_name): New.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index e788ff6..3db4c9b 100644 (file)
@@ -1,3 +1,950 @@
+2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
+
+       * dwarf2out.c (deferred_asm_name): New.
+       (add_name_and_src_coords_attributes): Defer creation of
+       DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
+       computed yet.
+       (move_linkage_attr): New.
+       (dwarf2out_finish): Revisit deferrals and emit attributes at the
+       right place.
+
+2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-nested.c (finalize_nesting_tree_1): Declare the
+       frame_decl in the binding tree.
+
+2009-06-04  Cary Coutant  <ccoutant@google.com>
+
+       * basic-block.h (struct basic_block_def): Add discriminator field.
+       * dbxout.c (dbxout_source_line): Add new parameter.  Change all
+       callers.
+       * debug.c (do_nothing_debug_hooks): Add additional entry.
+       (debug_nothing_int_charstar_int): New function.
+       * debug.h (struct gcc_debug_hooks): Add parameter to source_line
+       hook.
+       (debug_nothing_int_charstar_int): New declaration.
+       * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
+       discriminator value in .loc directive.
+       * final.c (last_discriminator): New variable.
+       (discriminator): New variable.
+       (final_start_function): Initialize above variables, pass current
+       discriminator to debug hook.
+       (notice_source_line): Check for discriminator change.
+       * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
+       * sdbout.c (sdbout_source_line): New parameter.
+       * tree-cfg.c (struct locus_discrim_map): New structure type.
+       (discriminator_per_locus): New hash table.
+       (build_gimple_cfg): Allocate and free discriminator hash table.
+       (make_edges): Call assign_discriminator.
+       (locus_map_hash): New function.
+       (locus_map_eq): New function.
+       (next_discriminator_for_locus): New function.
+       (same_line_p): New function.
+       (assign_discriminator): New function.
+       (make_cond_expr_edges): Call assign_discriminator.
+       (make_gimple_switch_edges): Likewise.
+       (first_non_label_stmt): New function.
+       * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
+       all callers.
+       * xcoffout.c (xcoffout_source_line): Add new parameter.
+
+       * configure.ac (gcc_cv_as_discriminator): New configury check for
+       gas support for discriminator.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
+       val after checking for integers.
+
+2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
+       X64_REGPARM_MAX.
+       (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
+       (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
+       (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
+       * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
+       X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
+       X64_SSE_REGPARM_MAX.
+       * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
+       X64_SSE_REGPARM_MAX.
+
+2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
+
+       * gcc.c (report_times_to_file): New.
+       (execute): Implement it.
+       (process_command): Support -time=.
+       * doc/invoke.texi: Document it.
+
+2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
+       that have value exprs.
+
+2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
+
+       * dwarf2asm.c (dw2_force_const_mem): Defer creation of
+       declarations for constants until...
+       (dw2_output_indirect_constant_1): ... this point.
+
+2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/10242
+       * arm.md (arm_addsi3): Don't try to split an add with an
+       eliminable register until after reload has completed.
+
+2009-06-03  Ian Lance Taylor  <iant@google.com>
+
+       * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
+       * genattrtab.c (write_length_unit_log): Likewise.
+       * genchecksum.c (dosum): Likewise.
+       * gengtype.c (write_rtx_next): Likewise.
+       (finish_root_table, write_roots): Likewise.
+       * gimple.c (gimple_ops_offset_): Likewise.
+       * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
+       * config/arc/arc.c (arc_attribute_table): Likewise.
+       * config/arm/arm.c (arm_attribute_table): Likewise.
+       * config/avr/avr.c (avr_attribute_table): Likewise.
+       * config/crx/crx.c (crx_attribute_table): Likewise.
+       * config/m32r/m32r.c (m32r_attribute_table): Likewise.
+       * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
+       * config/mcore/mcore.c (mcore_attribute_table): Likewise.
+       * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
+       * config/sh/sh.c (sh_attribute_table): Likewise.
+       * config/sparc/sparc.c (sparc_attribute_table): Likewise.
+       * config/spu/spu.c (spu_attribute_table): Likewise.
+       * config/v850/v850.c (v850_attribute_table): Likewise.
+
+       * config/alpha/alpha.c (vms_attribute_table): Make static.
+       * config/bfin/bfin.c (bfin_attribute_table): Likewise.
+       * config/h8300/h8300.c (h8300_attribute_table): Likewise.
+       * config/mips/mips.c (mips_attribute_table): Likewise.
+
+       * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
+       $(SYSTEM_H).
+       (cc1-checksum.o): Likewise.
+
+2009-06-03  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
+
+2009-06-03  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
+       insn if it is changing sp.  Use gen_add3_insn instead of
+       conditionally gen_addsi3 and gen_adddi3.
+       (offset_below_red_zone_p): New static inline function.
+       (rs6000_emit_epilogue): Emit needed epilogue unwind info.
+       Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
+       * config/rs6000/ppc-asm.h: Include auto-host.h.
+       (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
+       CFI_RESTORE): Define.
+       * config/rs6000/crtresxgpr.asm: Add unwind info.
+       * config/rs6000/crtresxfpr.asm: Likewise.
+       * config/rs6000/crtresgpr.asm: Likewise.
+       * config/rs6000/crtresfpr.asm: Likewise.
+       * config/rs6000/crtsavgpr.asm: Likewise.
+       * config/rs6000/crtsavfpr.asm: Likewise.
+
+       * dwarf2out.c (output_cfi_directive): Pass 1 instead of
+       0 to second argument of DWARF2_FRAME_REG_OUT macros.
+
+2009-06-03  Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
+       words or less (including TImode) in core registers.
+
+2009-06-03  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/40328
+       * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
+
+2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
+
+       * statistics.c (statistics_counter_event): Do not record event 
+       in pass dump if its number == -1.
+       (curr_statistics_hash): Add assert that we never get passes 
+       with static number == -1.
+
+2009-06-03  Richard Guenther  <rguenther@suse.de>
+           Andrey Belevantsev  <abel@ispras.ru>
+
+       * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
+       non-BLKmode arrays addressable.
+
+2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
+       * config/m68k/m68k.h: ... here.
+       * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
+       m68k and fido.
+
+2009-06-03  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/40323
+       * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
+       assignment.
+
+2009-06-03  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
+       consistently.
+
+2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
+
+       * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
+       JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
+       JUMP_TABLE_DATA_P where applicable.
+       * config/sh/sh.c: Ditto.
+       * config/sh/sh.h: Ditto.
+       * config/sh/sh.md: Ditto.
+       * config/sh/symbian.c: Ditto.
+
+2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/driver-i386.c (describe_cache): Optimize
+       concatenation of strings.  Use snprintf instead of sprintf.
+       (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
+       target when not compiling with GCC.
+
+2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c: Revert last change.
+       (sh_expand_epilogue): Emit a blockage insn before the frame
+       pointer adjustment unconditionally.
+
+2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
+       * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
+       * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
+       * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
+       to COLLECT_GCC_OPTIONS.
+
+2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * collect2.c (target_system_root): New variable.
+       (main): Handle --sysroot=.
+       (ignore_library): Strip the sysroot from the library path.
+
+2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
+       (collect2.o): Depend on collect2-aix.h.
+       (collect2-aix.o): New rule.
+       * collect2-aix.h: New file.
+       * collect2-aix.c: Likewise.
+       * collect2.c: Include collect2-aix.h.  Don't undefine
+       OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
+       Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
+       Use TARGET_AIX_VERSION instead of _AIX51.
+       * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
+       * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
+       * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
+       * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
+       * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
+
+2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * collect2.c (ignore_library): Avoid premature post-increment
+       and null deference.
+
+2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
+       * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
+       !CROSS_DIRECTORY_STRUCTURE alternative and use it for
+       CROSS_DIRECTORY_STRUCTURE too.
+       (LINK_LIBG_SPEC): Likewise.
+       (LIB_SPEC): Add %R to sysroot paths.
+       * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
+       (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
+       * config/rs6000/aix51.h: As for aix43.h.
+       * config/rs6000/aix52.h: Likewise.
+       * config/rs6000/aix53.h: Likewise.
+       * config/rs6000/aix61.h: Likewise.
+       * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
+       to the beginning of sysroot paths.
+
+2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
+       INSN_LISTs that are out of the REG_NOTE range.
+
+2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       * loop-unroll.c (struct iv_to_split): Add pointer to next.
+       (struct var_to_expand): Likewise.
+       (struct opt_info): Add head and tail for linked lists of the above.
+       (analyze_insn_to_expand_var): Initialize next.
+       (analyze_iv_to_split_insn): Likewise.
+       (analyze_insns_in_loop): Create linked lists.
+       (allocate_basic_variable): Simplify for use without hash table.
+       (insert_var_expansion_initialization): Likewise, make it type-safer.
+       (combine_var_copies_in_loop_exit): Likewise.
+       (apply_opt_in_copies): Walk lists rather than hash tables.
+       (release_var_copies): Simplified and inlined by hand into...
+       (free_opt_info): ... this function.
+
+2009-06-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
+       for field decls.
+
+2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       * cfgexpand.c (gimple_expand_cfg): Discard the source location
+       only for builtins that are not overridden.
+
+2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
+       label string.
+
+2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       * df-core.c (df_ref_debug): Honor -fdump-noaddr.
+
+2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       * combine.c (move_deaths): Compare LUIDs within the same BB only.
+
+2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       * common.opt (fdump-unnumbered-links): New.
+       * doc/invoke.texi (-fdump-unnumbered-links): Document it.
+       * print-rtl.c (flag_dump_unnumbered_links): New.
+       (print_rtx): Test it.
+
+2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
+       push/pop multiple to 8-byte alignment.
+
+2009-06-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (queued_cfa_restores): New static variable.
+       (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
+       functions.
+       (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
+       (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
+       Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
+       Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
+       note unconditionally.
+       (ix86_emit_restore_regs_using_mov): Likewise.
+       (ix86_emit_restore_sse_regs_using_mov): Likewise.
+       (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
+       it through to ix86_emit_restore_reg_using_pop.
+       (ix86_emit_leave): Add RED_OFFSET argument.  Call
+       ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
+       instead of adding REG_CFA_OFFSET note unconditionally.
+       (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
+       the above functions.  Call ix86_add_queued_cfa_restore_notes when
+       needed.
+
+       * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
+       force output of the label even for dwarf2out_do_cfi_asm.
+       (add_fde_cfi): If -g2 and above and cfi might change CFA,
+       force creation of CFI label and chain DW_CFA_set_loc jumping to it
+       for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
+       caller.
+       (dwarf2out_stack_adjust, dwarf2out_frame_debug,
+       dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
+       dwarf2out_cfi_label callers.
+       * tree.h (dwarf2out_cfi_label): Adjust prototype.
+       * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
+       Adjust dwarf2out_cfi_label callers.
+       * config/vax/vax.c (vax_output_function_prologue): Likewise.
+
+       * config/i386/i386.h (struct machine_cfa_state,
+       struct machine_function): Guard with ifndef USED_FOR_TARGET
+       instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
+
+       PR other/40024
+       * emutls.c (__emutls_get_address): Change arr->size to mean number
+       of allocated arr->data entries instead of # of slots + 1.
+
+       PR middle-end/40316
+       * recog.c (peep2_reinit_state): New function.
+       (peephole2_init_state): Use it at the end of a basic block and also
+       when seeing a RTX_FRAME_RELATED_P insn.
+
+2009-06-01  Steve Ellcey  <sje@cup.hp.com>
+
+       * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
+       fixuns_truncrfdi2): New.
+       (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
+       *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
+       *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
+       *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
+       *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
+       *recip_approx): Remove.
+       (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
+       moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
+       divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
+       move to div.md.
+       * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
+       setf_exp_rf): New.
+
+2009-06-01  Ian Lance Taylor  <iant@google.com>
+
+       * attribs.c (register_attribute): Use CONST_CAST.
+       * collect2.c (main): Use CONST_CAST2.
+       (scan_prog_file): Likewise.
+       * gcc.c (process_command, main): Likewise.
+       * toplev.c (toplev_main): Likewise.
+
+       * c-typeck.c (handle_warn_cast_qual): New static function,
+       partially broken out of build_c_cast.
+       (build_c_cast): Call handle_warn_cast_qual.
+       * doc/invoke.texi (Warning Options): Document new effect of
+       -Wcast-qual.
+
+2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
+
+       * diagnostic.c (diagnostic_build_prefix): Always print columns.
+       (diagnostic_report_current_module): Print columns.
+       * common.opt (flag_show_column): Enable by default.
+
+2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
+
+       * alias.c (find_base_term): Check for NULL term before returning.
+
+2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       Revert due to PR40320:
+       2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
+       * calls.c (emit_library_call_value_1): Don't force_operand for move
+       and push insns.
+
+2009-06-01  Olivier Hainque  <hainque@adacore.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
+       to be processed as a bitfield for constructor output purposes.
+       * output.h (initializer_constant_valid_for_bitfield_p): Declare
+       new function.
+       * varasm.c (oc_local_state): New type, output_constructor
+       local state to support communication with helpers.
+       (oc_outer_state): New type, output_constructor outer state of
+       relevance in recursive calls.
+       (output_constructor_array_range): New output_constructor helper,
+       extracted code for an array range element.
+       (output_constructor_regular_field): New output_constructor helper,
+       extracted code for an element that is not a bitfield.
+       (output_constructor_bitfield): New output_constructor helper,
+       extracted code for a bitfield element.  Accept an OUTER state
+       argument for recursive processing.  Recurse on record or array
+       CONSTRUCTOR values, possibly past noop conversions.
+       (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
+       VALUE is a valid constant-valued expression for use in a static
+       bit-field initializer.
+       (output_constructor): Rework to use helpers.  Accept and honor an
+       OUTER state argument for recursive calls.  Return total size.  Be
+       prepared for nested constructors initializing bitfields.
+       (output_constant): Feed OUTER in calls to output_constructor.
+
+2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * calls.c (emit_library_call_value_1): Don't force_operand for move
+       and push insns.
+
+2009-06-01  Nick Clifton  <nickc@redhat.com>
+
+       * doc/invoke.texi (IA-64 Options): Fix typo.
+
+2009-06-01  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/39129
+       * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
+       printed message.
+       (vect_do_peeling_for_loop_bound): Use 
+       LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
+       LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
+       (vect_loop_versioning): Likewise.
+       (vect_create_cond_for_alias_checks): Fix indentation.
+       * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
+       macros.
+       (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
+       (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
+       * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
+       "control flow in loop".
+       (vect_estimate_min_profitable_iters): Use 
+       LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
+       LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
+       * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
+       (vect_create_data_ref_ptr): Don't mention array dimension in printing.
+       * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
+       statement belongs to a group of strided accesses with the exact code 
+       check.
+       (vectorizable_load): Likewise.
+       * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
+       (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
+
+2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * config/freebsd-stdint.h: New file.
+       * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
+       Add freebsd-stdint.h to tm_file.
+
+2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
+       (thumb2_extendhidi2): Likewise.
+
+2009-05-31  Ian Lance Taylor  <iant@google.com>
+
+       * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
+
+2009-05-31  Ian Lance Taylor  <iant@google.com>
+
+       * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
+       (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
+       (ipa-reference.o): Depend upon gt-ipa-reference.h.
+
+2009-05-31  Jason Merrill  <jason@redhat.com>
+
+       * tree-pretty-print.c (print_call_name): Take the callee, not the
+       call itself.  Make non-static.  Use dump_function_name for functions.
+       (dump_generic_node): Adjust.
+       * diagnostic.h: Declare print_call_name.
+       * gimple-pretty-print.c (dump_gimple_call): Use it.
+
+2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.md (ashldi3_std): New define_expand.
+       (ashldi3): Use it.
+
+2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/40313
+       * config/sh/sh.c: Include debug.h.
+       (sh_expand_epilogue): Emit a blockage insn before the frame
+       pointer adjustment also when dwarf2out_do_frame returns true.
+
+2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
+       (thumb2_extendqidi2): New pattern.
+
+2009-05-31  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
+       mark phis for renaming.
+       * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
+       (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
+       Call mark_sym_for_renaming.
+       * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
+       * tree-vect-loop.c (vect_transform_loop): Remove
+       vect_memsyms_to_rename initialization and a call to
+       mark_set_for_renaming.
+
+2009-05-31  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/40304
+       * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
+       frame related even if !set_cfa && style < 0.
+
+2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/mingw-tls.c: New file.
+       * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
+       * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
+       defining _WIN32 but not __CYGWIN__.
+
+2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * configure.ac: Add MPC support.
+       
+       * config.in, configure: Regenerate.     
+
+2009-05-29  Richard Henderson  <rth@redhat.com>
+
+       * cfgcleanup.c (try_crossjump_to_edge): Only skip past
+       NOTE_INSN_BASIC_BLOCK.
+       * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
+       Duplicate NOTE_INSN_EPILOGUE_BEG notes.
+       * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
+       to be deleted.
+       * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
+       add in_use field.
+       (add_cfi): Disable check redefining cfa away from drap.
+       (lookup_cfa_1): Add remember argument; handle remember/restore.
+       (lookup_cfa): Pass remember argument.
+       (cfa_remember): New.
+       (compute_barrier_args_size_1): Remove sibcall check.
+       (dwarf2out_frame_debug_def_cfa): New.
+       (dwarf2out_frame_debug_adjust_cfa): New.
+       (dwarf2out_frame_debug_cfa_offset): New.
+       (dwarf2out_frame_debug_cfa_register): New.
+       (dwarf2out_frame_debug_cfa_restore): New.
+       (dwarf2out_frame_debug): Handle REG_CFA_* notes.
+       (dwarf2out_begin_epilogue): New.
+       (dwarf2out_frame_debug_restore_state): New.
+       (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
+       DW_CFA_restore_state.
+       (output_cfi_directive): Likewise.
+       (convert_cfa_to_fb_loc_list): Likewise.
+       (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
+       * dwarf2out.h: Update.
+       * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
+       (copy_insn_1): Early out for null.
+       * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
+       and dwarf2out_frame_debug_restore_state.
+       * function.c (prologue, epilogue, sibcall_epilogue): Remove.
+       (prologue_insn_hash, epilogue_insn_hash): New.
+       (free_after_compilation): Adjust freeing accordingly.
+       (record_insns): Create hash table if needed; push insns into
+       hash instead of array.
+       (maybe_copy_epilogue_insn): New.
+       (contains): Search hash table instead of array.
+       (sibcall_epilogue_contains): Remove.
+       (thread_prologue_and_epilogue_insns): Split eh_return insns
+       and mark them as epilogues.
+       (reposition_prologue_and_epilogue_notes): Rewrite epilogue
+       scanning in terms of basic blocks.
+       * insn-notes.def (CFA_RESTORE_STATE): New.
+       * jump.c (returnjump_p_1): Accept EH_RETURN.
+       (eh_returnjump_p_1, eh_returnjump_p): New.
+       * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
+       CFA_REGISTER, CFA_RESTORE): New.
+       * rtl.def (EH_RETURN): New.
+       * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
+
+       * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
+       (eh_return_internal): Use eh_return rtx; split w/ epilogue.
+
+       * config/i386/i386.c (gen_push): Update cfa state.
+       (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
+       add a CFA_ADJUST_CFA note.
+       (ix86_dwarf_handle_frame_unspec): Remove.
+       (ix86_expand_prologue): Update cfa state.
+       (ix86_emit_restore_reg_using_pop): New.
+       (ix86_emit_restore_regs_using_pop): New.
+       (ix86_emit_leave): New.
+       (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
+       (ix86_expand_epilogue): Add notes for unwinding the epilogue.
+       * config/i386/i386.h (struct machine_cfa_state): New.
+       (ix86_cfa_state): New.
+       * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
+       (eh_return_internal): Merge from eh_return_<mode>,
+       use eh_return rtx, split w/ epilogue.
+
+2009-05-29  Ian Lance Taylor  <iant@google.com>
+
+       * builtins.c (validate_gimple_arglist): Don't use va_arg with
+       enum type.
+       * calls.c (emit_library_call_value_1): Likewise.
+
+       * c-typeck.c (c_build_va_arg): New function.
+       * c-tree.h (c_build_va_arg): Declare.
+       * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
+       instead of build_va_arg.
+
+2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
+       (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
+       (ptr_difference_cost): Use affine combinations to compute it.
+       (difference_cost): Likewise.
+       (get_computation_cost_at): Compute more accurate cost for addresses
+       if the ratio is a multiplier allowed in addresses.
+       For non-addresses, consider that an additional offset or symbol is
+       added only once.
+
+2009-05-29  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (ix86_decompose_address): Avoid useless
+       0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
+
+       * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
+       TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
+       (prefix_rex): For UNIT_MMX don't imply the prefix by default
+       if MODE_DI.
+       (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
+       to 1 for TYPE_SSE{IADD1,CVT1}.
+       (prefix_vex_imm8): Removed.
+       (length_vex): Only pass 1 as second argument to
+       ix86_attr_length_vex_default if prefix_extra is 0.
+       (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
+       (length): For prefix vex computation use length_immediate
+       attribute instead of prefix_vex_imm8.
+       (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
+       addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
+       *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
+       *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
+       (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
+       *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
+       a space in between the operands.
+       (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
+       if one operand is 0xff and the other one si, di, bp or sp.
+       (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
+       other one si, di, bp or sp.
+       (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
+       (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
+       type and mode attributes.
+       (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
+       (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
+       prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
+       (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
+       prefix_data16 attribute iff MODE_DF.
+       (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
+       (fix_trunc<mode>di_sse): Set prefix_rex attribute.
+       (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
+       constm128_operand in length_immediate computation.
+       (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
+       (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
+       (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
+       length_immediate attribute to 1.
+       (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
+       (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
+       for certain alternatives.
+       (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
+       prefix_data16 attribute if MODE_V1DF.
+       (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
+       length_immediate to 1.
+       (set_got_rex64, set_rip_rex64): Remove length attribute, set
+       length_address to 4, set mode attribute to MODE_DI.
+       (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
+       (fxam<mode>2_i387): Set length attribute to 4.
+       (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
+       *prefetch_3dnow_rex): Override length_address attribute.
+       (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
+       attributes.
+       * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
+       (constm128_operand): Removed.
+       * config/i386/i386.c (memory_address_length): For
+       disp && !index && !base in 64-bit mode account for SIB byte if
+       print_operand_address can't optimize disp32 into disp32(%rip)
+       and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
+       for fs: or gs: segment.
+       (ix86_attr_length_immediate_default): When checking if shortform
+       is possible, truncate immediate to the length of the non-shortened
+       immediate.
+       (ix86_attr_length_address_default): Ignore MEM_P operands
+       with X constraint.
+       (ix86_attr_length_vex_default): Only check for DImode on
+       GENERAL_REG_P operands.
+       * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
+       prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
+       (sse_cvttps2pi): Clear prefix_rep attribute.
+       (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
+       attribute.
+       (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
+       (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
+       *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
+       iff operand 2 is const_int_operand.
+       (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
+       sse2_shufpd_<mode>): Set length_immediate attribute to 1.
+       (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
+       instead of vex.
+       (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
+       prefix_data16.
+       (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
+       prefix_data16 attribute for movlpd and movhpd instructions.
+       (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
+       length_immediate for shufpd instruction.
+       (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
+       (avx_cmpp<avxmodesuffixf2c><mode>3,
+       avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
+       <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
+       avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
+       *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
+       (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
+       (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
+       (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
+       prefix_data16 attribute for the first alternative to 1.
+       (*avx_loadlps): Override length_immediate for the first alternative.
+       (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
+       attributes for second alternative.
+       (*vec_concatv2sf_sse4_1): Override length_immediate and
+       prefix_data16 attributes for second alternative.
+       (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
+       vec_extract_hi_<mode>, vec_extract_lo_v16hi,
+       vec_extract_hi_v16hi, vec_extract_lo_v32qi,
+       vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
+       (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
+       prefix_data16 and length_immediate to 1.
+       (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
+       to 1.
+       (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
+       prefix_extra attribute for variants that don't have 0f prefix alone.
+       (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
+       (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
+       *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
+       *sse4_1_pextrd): Set length_immediate to 1.
+       (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
+       (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
+       to 1.
+       (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
+       *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
+       length_immediate to 1 for second alternative.
+       (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
+       prefix_extra and length_immediate attributes for the first
+       alternative.
+       (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
+       first alternative.
+       (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
+       to 1 for the first and third alternative.
+       (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
+       alternative.
+       (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
+       attribute.
+       (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
+       attribute to 0.
+       (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
+       *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
+       *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
+       *avx_psign<mode>3): Set prefix_extra attribute to 1.
+       (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
+       ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
+       ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
+       ssse3_psign<mode>3): Override prefix_rex attribute.
+       (*avx_palignrti): Override prefix_extra and length_immediate to 1.
+       (ssse3_palignrti): Override length_immediate to 1.
+       (ssse3_palignrdi): Override length_immediate to 1, override
+       prefix_rex attribute.
+       (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
+       (sse4a_extrqi): Override length_immediate to 2.
+       (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
+       (sse4a_insertq): Override prefix_data16 to 0.
+       (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
+       avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
+       avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
+       *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
+       avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
+       and length_immediate to 1.
+       (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
+       sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
+       sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
+       sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
+       and length_immediate to 1.
+       (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
+       (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
+       (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
+       avx_ptest256): Override prefix_extra to 1.
+       (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
+       Override prefix_data16 and length_immediate to 1.
+       (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
+       sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
+       sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
+       sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
+       prefix_data16 to 0 and prefix_extra to 2.
+       (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
+       (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
+       attribute.
+       (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
+       sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
+       Override prefix_data16 and prefix_rep to 0, length_immediate to 1
+       and prefix_extra to 2.
+       (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
+       prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
+       (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
+       avx_vpermilvar<mode>3,
+       avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
+       avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
+       avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
+       avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
+       Override prefix_extra to 1.
+       (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
+       (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
+       vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
+       vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
+       prefix_extra and length_immediate to 1.
+       (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
+       modrm to 0.
+       (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
+       to 1 for the first alternative.
+       * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
+       prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
+       cases.
+       (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
+       *movv2sf_internal_avx, *movv2sf_internal): Override
+       prefix_rep attribute for certain alternatives.
+       (*mov<mode>_internal): Override prefix_rep or prefix_data16
+       attributes for certain alternatives.
+       (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
+       attributes for certain alternatives.
+       (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
+       *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
+       mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
+       mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
+       *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
+       mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
+       mmx_pswapdv2si2): Set prefix_extra attribute to 1.
+       (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
+       length_immediate to 1 if operand 2 is const_int_operand.
+       (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
+       *vec_extractv2si_1): Set length_immediate attribute to 1.
+       (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
+       using old 3DNOW insn rather than SSE/3DNOW_A.
+       (mmx_emms, mmx_femms): Clear modrm attribute.
+
+2009-05-29  Martin Jambor  <mjambor@suse.cz>
+
+       * tree-sra.c:  New implementation of SRA.
+
+       * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
+       (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
+       (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
+       * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
+       (SRA_MAX_STRUCTURE_COUNT): Removed.
+       (SRA_FIELD_STRUCTURE_RATIO): Removed.
+       * doc/invoke.texi (sra-max-structure-size): Removed.
+       (sra-field-structure-ratio): Removed.
+
+2009-05-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/40291
+       * builtins.c (expand_builtin_memcmp): Convert len to sizetype
+       before expansion.
+
+2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/40101
+       * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
+       seqno.  Adjust comment.
+       * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
+       inserting bookkeeping before a jump, the jump is not scheduled.
+       When no positive seqno found, provide a value.  Add comment.
+
+2009-05-29  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
+       short-cutting on the first component.
+
+2009-05-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/39958
+       * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
+       for trees other than decls/types.
+
+2009-05-29  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-operands.c (get_expr_operands): Do not handle
+       INDIRECT_REFs in the handled-component case.  Remove
+       unused get_ref_base_and_extent case.
+       * tree-dfa.c (get_ref_base_and_extent): Avoid calling
+       tree_low_cst and host_integerp where possible.
+       * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
+       codes for equivalence.
+       * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
+
+2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
+
+       * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
+       to tmake_file for i[34567]86-*-cygwin*. 
+
+2009-05-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/40017
+       * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
+       (altivec_categorize_keyword, init_vector_keywords,
+       rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
+       similar to bool.
+
 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
 
        * tree.c (handle_dll_attribute): Check if node is
 
 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
 
-       * doc/invoke.texi (IA-64 Options)
+       * doc/invoke.texi (IA-64 Options):
        Add -msdata, -mfused-madd, -mno-inline-float-divide, 
        -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
        -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
        -msched-stop-bits-after-every-cycle,
        -msched-count-spec-in-critical-path,
        -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
-       -msched-max-memory-insns-hard-limit, -msched-max-memory-insns
+       -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
        Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
        and -msched-spec-verbose.
 
 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
 
-       * config/arm/lib1funcs.asm (__clear_cache): Define if
-       L_clear_cache.
+       * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
        * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
        error if used.
        * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
        (get_ref_from_reference_ops): remove.
        (vn_reference_lookup_2): Adjust signature.
        (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
-       (vn_reference_lookup_pieces): Adjust signature, do not re-build
-       trees.
+       (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
        (vn_reference_lookup): Adjust.
        (vn_reference_insert): Likewise.
        (vn_reference_insert_pieces): Adjust signature.
 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
 
        PR middle-end/33699
-       * target.h (struct gcc_target): Fix indentation.  Add
-       const_anchor.
+       * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
        * target-def.h (TARGET_CONST_ANCHOR): New macro.
        (TARGET_INITIALIZER): Use it.
        * cse.c (CHEAPER): Move it up to the other macros.
        find_reg_offset_for_const, try_const_anchors): New functions.
        (cse_insn): Call try_const_anchors.  Adjust cost of src_related
        when using a const-anchor.  Call insert_const_anchors.
-       * config/mips/mips.c (mips_set_mips16_mode): Set
-       targetm.const_anchor.
+       * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
        * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
 
 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
 
 2009-05-21  Denis Chertykov  <denisc@overta.ru>
 
-       * doc/contrib.texi (Contributors): add myself to the list.
+       * doc/contrib.texi (Contributors): Add myself to the list.
 
 2009-05-27  Olivier Hainque  <hainque@adacore.com>
 
 
 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
 
-       * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h with
-       it.
+       * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
+       with it.
        * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
        included.
        * gcc-plugin.h: Include config.h and system.h.
        (Interacting with the GCC Garbage Collector): Added new section.
        (Giving information about a plugin): Added new section for
        PLUGIN_INFO.
-       * testsuite/gcc.dg/plugin/plugin.exp: Added ggcplug.c test plugin
-       with ggcplug-test-1.c for testing PLUGIN_GGC_MARKING etc...
-       * testsuite/gcc.dg/plugin/ggcplug-test-1.c: Added new file.
-       * testsuite/gcc.dg/plugin/ggcplug.c: Added new file.
        * ggc.h (ggc_register_root_tab): Added declaration.
        * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
        (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
        (register_callback): Improved comment in declaration.
-       * ggc-common.c (const_ggc_root_tab_t) Added new typedef for
-       vectors.
-       (extra_root_vec) Added static variable for dynamic roots
-       registration.
+       * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
+       (extra_root_vec) Added static variable for dynamic roots registration.
        (ggc_register_root_tab) Added new routine.
        (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
        PLUGIN_GGC_MARKING event.
        (cgraph_default_inline_p): Likewise.
        (cgraph_edge_badness): Compute badness based on benefit and size cost.
        (cgraph_decide_recursive_inlining): Check size.
-       (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
-       times.
+       (cgraph_decide_inlining_of_small_function): Update size; dump sizes
+       and times.
        (cgraph_decide_inlining): Likewise.
        (cgraph_decide_inlining_incrementally): Likewise; honor
        PARAM_EARLY_INLINING_INSNS.
 
        PR tree-optimization/36327
        * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
-       callback for reference translation or lookup at the point
-       of may-defs.
+       callback for reference translation or lookup at the point of may-defs.
        * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
        * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
        for union COMPONENT_REFs.
        Likewise.
        * tree-ssa-propagate.c (substitute_and_fold): Likewise.
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
-       (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
+       (dom_opt_finalize_block): Likewise, adjusting access to
+       stmts_to_rescan.
        (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
        (stmts_to_rescan): Change item type to gimple.
        (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/i386/driver-i386.c (host_detect_local_cpu): Check
-       extended family and model for Intel processors.  Support Intel
-       Atom.
+       extended family and model for Intel processors.  Support Intel Atom.
 
 2009-05-20  Olivier Hainque  <hainque@adacore.com>
 
 
 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
-       * c-common.c (warn_logical_operator): Remove unnecessary
-       conditionals.
+       * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
 
 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        (cgraph_default_inline_p): Likewise.
        (cgraph_edge_badness): Compute badness based on benefit and size cost.
        (cgraph_decide_recursive_inlining): Check size.
-       (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
-       times.
+       (cgraph_decide_inlining_of_small_function): Update size; dump sizes
+       and times.
        (cgraph_decide_inlining): Likewise.
        (cgraph_decide_inlining_incrementally): Likewise; honor
        PARAM_EARLY_INLINING_INSNS.
        (cgraph_default_inline_p): Likewise.
        (cgraph_edge_badness): Compute badness based on benefit and size cost.
        (cgraph_decide_recursive_inlining): Check size.
-       (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
-       times.
+       (cgraph_decide_inlining_of_small_function): Update size; dump sizes
+       and times.
        (cgraph_decide_inlining): Likewise.
        (cgraph_decide_inlining_incrementally): Likewise; honor
        PARAM_EARLY_INLINING_INSNS.
        (is_subrange_type): Delete.
        (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
        (modified_type_die): Call subrange_type_for_debug_p on subtypes.
-       * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
-       the destination type is boolean.
+       * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
+       if the destination type is boolean.
        (build_range_check): Do not special-case subtypes.
        (fold_sign_changed_comparison): Likewise.
        (fold_unary): Likewise.
        * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
        (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
        * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
-       * tree.c (subrange_type_for_debug_p): New predicate based on the former
-       is_subrange_type.
+       * tree.c (subrange_type_for_debug_p): New predicate based on the
+       former is_subrange_type.
        * tree.h (subrange_type_for_debug_p): Declare.
        * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
        (convert_affine_scev): Remove call to above function.
        (arm_legitimate_address_outer_p): ... this.
        * config/arm/constraints.md ("Uq"): Adjust call.
        * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
-       * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
+       * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
+       to...
        (arm_legitimate_address_outer_p): ... this.
-       (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
+       (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
+       static.
        (TARGET_LEGITIMATE_ADDRESS_P): New.
 
        * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
 
 2009-05-13  Taras Glek  <tglek@mozilla.com>
 
-       * attribs.c (register_attribute): moved out attribute registration into
-       register_attribute.
-       * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
+       * attribs.c (register_attribute): moved out attribute registration
+       into register_attribute.
+       * doc/plugins.texi: Documented register_attribute and
+       PLUGIN_ATTRIBUTES.
        * gcc-plugin.h: Added forward decl for register_attribute.
        * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
        * plugin.c (register_callback, invoke_plugin_callbacks): Added
        (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
        * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
        with lookup of ctrap_optab.
-       * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
-       setcc_gen_code): Delete.
+       * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
+       Delete.
        (ctrap_optab): New.
 
        * combine.c (combine_simplify_rtx, simplify_set): Do not