OSDN Git Service

* godump.c (struct macro_hash_value): Define.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 14bc189..fc8704d 100644 (file)
@@ -1,3 +1,737 @@
+2011-11-01  Ian Lance Taylor  <iant@google.com>
+
+       * godump.c (struct macro_hash_value): Define.
+       (macro_hash_hashval): New static function.
+       (macro_hash_eq, macro_hash_del): New static functions.
+       (go_define): Use macro_hash_value to store values in macro_hash.
+       Replace an old value on a redefinition.  Don't print anything to
+       go_dump_file.
+       (go_undef): Delete the entry from the hash table.
+       (go_output_typedef): For an enum, use macro_hash_value, and don't
+       print anything to go_dump_file.
+       (go_print_macro): New static function.
+       (go_finish): Traverse macro_hash with go_print_macro.
+       (dump_go_spec_init): Update macro_hash creation for
+       macro_hash_value.
+
+2011-11-02  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED.
+
+2011-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/44277
+       * doc/invoke.texi: Document -Wzero-as-null-pointer-constant.
+
+2011-11-01  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning.
+
+2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (splitters for int-float conversion): Use
+       SUBREG_REG on SUBREGs in splitter constraints.
+
+2011-11-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New
+       prototype.
+       * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New
+       function.
+       * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use it.
+       (ssepackfltmode): New mode attr.
+       (vec_pack_ufix_trunc_<mode>): New expander.
+
+2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/50940
+       * config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter):
+       Compare <ssevecmode>mode with V4SFmode, not V4SImode.
+
+2011-11-01  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant.
+       * config/rs6000/476.h: New file.
+       * config/rs6000/476.opt: Likewise.
+       * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define.
+       (SET_TARGET_LINK_STACK): Likewise.
+       (TARGET_ASM_CODE_END): Define.
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
+       TARGET_LINK_STACK for -mtune=476 and -mtune=476fp.
+       (rs6000_legitimize_tls_address): Emit the link stack preserving GOT
+       code if TARGET_LINK_STACK.
+       (rs6000_emit_load_toc_table): Likewise.
+       (output_function_profiler): Likewise
+       (macho_branch_islands): Likewise
+       (machopic_output_stub): Likewise
+       (get_ppc476_thunk_name): New function.
+       (rs6000_code_end): Likewise.
+       * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
+       Convert to a define_expand.
+       (load_toc_v4_PIC_1_normal): New define_insn.
+       (load_toc_v4_PIC_1_476): Likewise.
+       (load_toc_v4_PIC_1b_normal): Likewise.
+       (load_toc_v4_PIC_1b_476): Likewise.
+
+2011-11-01  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/50910
+       * config/avr/avr.opt (-mbranch-cost=): New option.
+       * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost.
+       * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs.
+       * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns.
+       (*addhi3_zero_extend1): Remove % in constraint of operand 1.
+       (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns.
+
+2011-11-01  Tom de Vries  <tom@codesourcery.com>
+
+       PR tree-optimization/50908
+       * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed
+       before update_vuses, test for 1 predecessor rather than two.
+       (delete_block_update_dominator_info): New function, part of it factored
+       out of ...
+       (replace_block_by): Use delete_block_update_dominator_info.  Call
+       update_vuses after deleting bb1 and updating dominator info, instead of
+       before.
+
+2011-11-01  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/sparc.c (vector_init_faligndata): New function.
+       (sparc_expand_vector_init): Use it for V4HImode on VIS1.
+
+       * config/sparc/sparc.c (sparc_expand_vcond): New function.
+       * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it.
+       * config/sparc/sparc.md (vcond<mode><mode>): New VIS3 expander.
+       (vconduv8qiv8qi): Likewise.
+
+2011-11-01  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/50869
+       * cselib.c (cfa_base_preserved_regno): Initialize.
+       (cselib_expand_value_rtx_1): Don't expand it.
+       * var-tracking.c (vt_expand_var_loc_chain): Initialize depth.
+       Check it's only zero if result is NULL.
+
+2011-11-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New
+       expander.
+
+       * config/i386/sse.md (sseintvecmode): Remove duplicate modes.
+       (sseintvecmodelower): New mode iterator.
+       (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into...
+       (float<sseintvecmodelower><mode>2): ... this using VF1 iterator.
+       (floatunsv4siv4sf2): Macroize into...
+       (floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator.
+
+2011-10-31  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/sparc.md (cmask patterns): Allow zero operand.
+
+       * dwarf2out.c (cached_next_real_insn): New.
+       (dwarf2out_end_epilogue): Set it to NULL_RTX.
+       (dwarf2out_var_location): Remove cached_next_real_insn local static.
+
+2011-10-31  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256.
+       (floatv4siv4sf2): Rename from sse2_cvtdq2ps.
+       (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps.
+       (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256.
+       (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq.
+       (floatv4siv4df2): Rename from avx_cvtdq2pd256.
+       (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256.
+       (vec_unpacku_float_hi_v8si): Update for insn pattern name changes.
+       * config/i386/i386.md (splitters for int-float conversion): Likewise.
+       * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise.
+       (bdesc_args): Likewise.
+       (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove.
+       (ix86_vectorize_builtin_conversion): Remove.
+       (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
+
+2011-10-31  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.c (mark_modified): Moved up in the file.
+       (is_parm_modified_before_call): Renamed to
+       is_parm_modified_before_stmt, moved up in the file.
+       (load_from_unmodified_param): New function.
+       (compute_complex_assign_jump_func): Also attempt to create pass
+       through jump functions for values loaded from (addressable)
+       parameters.
+
+2011-10-31  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def
+       in a loop and has different type from op0, cast it to op0's type
+       before the loop first.  For slp give up.  Don't crash if op1_vectype
+       is NULL.
+
+2011-10-31  Paul Brook  <paul@codesourcery.com>
+
+       * cgraphunit.c: Don't mark clones as static constructors.
+
+2011-10-31  David Edelsohn  <dje.gcc@gmail.com>
+
+       * gcc-ar: Do not include stdio.h.
+
+2011-10-31  Diego Novillo  <dnovillo@google.com>
+
+       * tree-streamer-out.c (pack_ts_base_value_fields): Emit
+       TYPE_ADDR_SPACE.
+       * tree-streamer-in.c (unpack_ts_base_value_fields): Read
+       TYPE_ADDR_SPACE.
+
+2011-10-30  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/sparc.c (vector_init_bshuffle): New function.
+       (vector_init_fpmerge): New function.
+       (sparc_expand_vector_init): Use them to improve non-const cases.
+
+       * dwarf2out.c (dwarf2out_var_location): When processing several
+       consecutive location notes, cache the result of next_real_insn().
+
+2011-10-30  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn from
+       avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator.
+       (vec_dupv4sf): Remove expander.
+       (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx.
+       (vec_dupv2df): Remove expander.
+       (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3.
+       (*vec_concatv2df): Merge *vec_concatv2df_sse3.
+       (*vec_dupv4si): Merge *vec_dupv4si_avx.
+       (*vec_dupv2di): Merge *vec_dupv2di_sse3.
+
+2011-10-30  Dmitry Plotnikov  <dplotnikov@ispras.ru>
+
+       * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions.
+       * optabs.c (supportable_convert_operation): New function.
+       * optabs.h (supportable_convert_operation): New prototype.
+       * tree-vect-stmts.c (vectorizable_conversion): Change condition and
+       behavior for NONE modifier case.
+       * tree.h (VECTOR_INTEGER_TYPE_P): New macro.
+
+2011-10-30  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-vectorizer.h (NUM_PATTERNS): Bump to 9.
+       * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New
+       function.
+       (vect_vect_recog_func_ptrs): Add it.
+
+2011-10-30  David S. Miller  <davem@davemloft.net>
+
+       * reorg.c (label_before_next_insn): New function.
+       (relax_delay_slots): Use it instead of prev_label.
+       * rtl.h (prev_label): Delete declaration.
+       * emit-rtl.c (prev_label): Remove.
+
+2011-10-30  Revital Eres  <revital.eres@linaro.org>
+
+       * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog
+       as BB_DISABLE_SCHEDULE.
+       (mark_loop_unsched): New function.
+       (sms_schedule): Call it.
+
+2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/50617
+       * config/pa/protos.h (attr_length_save_restore_dltp): Delete.
+       (cmpib_comparison_operator): Likewise.
+       (following_cal, output_and, output_ior, output_move_double,
+       output_fp_move_double, output_block_move, output_block_clear,
+       output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra,
+       output_movb, output_parallel_movb, output_parallel_addb, output_call,
+       output_indirect_call, output_millicode_call, output_mul_insn,
+       output_div_insn, output_mod_insn, singlemove_string,
+       output_arg_descriptor, output_global_address, print_operand,
+       legitimize_pic_address, hppa_encode_label, symbolic_expression_p,
+       fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence,
+       emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay,
+       hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call,
+       attr_length_indirect_call, return_addr_rtx, function_arg_padding,
+       insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p,
+       output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move,
+       hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p,
+       compute_zdepdi_operands, output_64bit_and, output_64bit_ior,
+       reloc_needed, magic_milli, shadd_constant_p): Consistently prefix
+       exported functions and variables with "pa_".
+       * config/pa/predicates.md: Likewise.
+       * config/pa/pa64-hpux.h: likewise.
+       * config/pa/som.h: Likewise.
+       * config/pa/elf.h: Likewise.
+       * config/pa/pa64-linux.h: Likewise.
+       * config/pa/pa.md: Likewise.
+       * config/pa/pa.c: Likewise.
+       * config/pa/pa-linux.h: Likewise.
+       * config/pa/pa.h: Likewise.
+       * config/pa/constraints.md: Likewise.
+
+2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
+       Update all uses.
+       (xop_shl<mode>3): Rename from xop_lshl<mode>3.  Update all uses.
+       * config/i386/i386.c: Update all uses.
+
+2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (lshlv16qi3): Remove expander.
+       (lshrv16qi3): New expander.
+       (<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3
+       using any_shiftrt code iterator. Cleanup.
+       (ashlv16qi3): Cleanup.
+       (ashrv2di3): Ditto.
+
+2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/50691
+       * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol
+       references.
+       (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC
+       and TLS_MODEL_LOCAL_DYNAMIC symbol references.
+
+2011-10-29  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/50887
+       * config/avr/avr.opt (-maccumulate-args): New option.
+       * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
+       avr_starting_frame_offset.
+       (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
+       * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
+       (UNSPECV_WRITE_SP_IRQ_OFF): Remove.
+       (UNSPECV_WRITE_SP): New constant.
+       (*addhi3_sp_R): Rewrite to...
+       (*addhi3_sp): ...this new insn.
+       (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
+       (movhi_sp_r): ...this new insn.
+       * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
+       (avr_starting_frame_offset): New.
+       * config/avr/avr.c (avr_accumulate_outgoing_args): New function.
+       (avr_starting_frame_offset): New function.
+       (avr_outgoing_args_size): New static function.
+       (avr_initial_elimination_offset): Use it.
+       (avr_simple_epilogue): Use it.
+       (avr_asm_function_end_prologue): Use it.
+       (expand_epilogue): Use it.
+       (expand_prologue): Use it.  Break out code to...
+       (avr_prologue_setup_frame): ...this new static function.
+       (avr_can_eliminate): Allow eliminating to frame pointer if there
+       is one.
+       (avr_frame_pointer_required_p): Use frame pointer if target has a
+       nonlocal label.
+       * config/avr/constraints.md (R): Remove.
+       (Csp): New constraint.
+       * config/avr/predicates.md (avr_sp_immediate_operand): Use it.
+
+2011-10-29  Andi Kleen  <ak@linux.intel.com>
+
+       * gcc-ar.c (target_machine): Add.
+
+2011-10-29  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p,
+       cris_constant_index_p, cris_base_p, cris_index_p,
+       cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p,
+       cris_legitimate_address_p): New functions.
+       (TARGET_LEGITIMATE_ADDRESS_P): Define.
+       (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type
+       from rtx to const_rtx.
+       (cris_print_operand_address, cris_address_cost,
+       cris_side_effect_mode_ok):  Use
+       cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
+       cris_biap_index_p and cris_bdap_index_p.
+       * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P,
+       BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
+       REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
+       (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use
+       cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
+       cris_biap_index_p and cris_bdap_index_p.
+       * config/cris/cris.md (moversideqi movemsideqi peephole2): Use
+       cris_base_p.
+       * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p,
+       cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New
+       prototype.
+       (cris_pic_symbol_type, cris_valid_pic_const): Update prototype.
+
+2011-10-21  Andi Kleen  <ak@linux.intel.com>
+
+       * ggc-page (PAGE_ALIGN): Add.
+       (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read):
+       Replace ROUND_UP with PAGE_ALIGN.
+
+2011-10-20  Andi Kleen  <ak@linux.intel.com>
+
+       * ggc-page (alloc_anon): Add check argument.
+       (alloc_page): Add fallback to 1 page allocation.
+       Adjust alloc_anon calls to new argument.
+
+2011-10-18  Andi Kleen  <ak@linux.intel.com>
+
+       * ggc-page (release_pages): First free large continuous
+       chunks in the madvise path.
+
+2011-10-18  Andi Kleen  <ak@linux.intel.com>
+
+       * ggc-page.c (alloc_pages): Always round up entry_size.
+
+2011-10-19  Andi Kleen  <ak@linux.intel.com>
+
+       * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib.
+       (native): Add gcc-ar, gcc-nm, gcc-ranlib.
+       (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o,
+       gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add.
+       (install): Depend on install-gcc-ar.
+       (install-gcc-ar): Add.
+       (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib.
+       * gcc-ar.c: Add new file.
+
+2011-10-28  Pat Haugen <pthaugen@us.ibm.com>
+
+       * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble.
+       * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble
+       type for V2DF.
+       (VStype_div): Use vector types for V2DF/V4SF.
+       (VStype_sqrt): Use *sqrt types.
+       (VS_spdp_type): Change type to vecdouble.
+       (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws,
+       vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds,
+       vsx_xvcvspuxds): Likewise.
+       (*vsx_fms<mode>4): Set type via <VStype_mul>.
+       (*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via
+       <VStype_simple>.
+       * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe.
+       (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt,
+       power7-dsqrt): Correct insn latency.
+       (power7-vecsimple): Add veccmp type and correct dispatch/VSU values.
+       (power7-veccmp): Delete.
+       (power7-vecfloat): Correct latency/dispatch/VSU values.
+       (define_bypass "power7-vecfloat"): Correct latency and types.
+       (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values.
+       (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New.
+
+2011-10-28  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (shift_insn): Rename code attribute from
+       shiftrt_insn.  Also handle ashift RTX.
+       (shift): Rename code attribute from shiftrt.  Also handle ashift RTX.
+       (vshift): New code attribute.
+       (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates.
+       (any_lshift): Move and rename code iterator from ...
+       * config/i386/sse.md (lshift): ... here.
+       (lshift_insn): Remove code attribute.
+       (lshift): Remove code attribute.
+       (vlshr<mode>3): Use lshiftrt RTX.
+       (vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX.
+       (vashl<mode>3, ashlv16qi3): Use ashift RTX.
+       (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>.  Use
+       any_lshift code iterator.  Update asm template.
+       (<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3
+       usign any_lshift code iterator.
+       * config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from
+       mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator.
+       * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update.
+
+2011-10-28  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/49313
+       * config/avr/avr.md (parityhi2): Expand allowing pseudos.
+       (*parityhi2): New pre-reload insn-and-split to map 16-bit parity
+       to the libgcc insn.
+       (*parityqihi2): Same for 8-bit parity.
+
+2011-10-28  Julian Brown  <julian@codesourcery.com>
+
+       PR rtl-optimization/47918
+       * reload1.c (set_initial_label_offsets): Use initial offsets
+       for labels on the nonlocal_goto_handler_labels chain.
+
+2011-10-28  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
+       Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA.
+       (LIB2FUNCS_EXTRA):  Add darwin-gpsave.asm.
+       (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from
+       config/t-darwin.
+       * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable.
+       (GP_SAVE_INLINE): Likewise.
+       (SAVE_FP_PREFIX,  SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
+       RESTORE_FP_SUFFIX): Set to empty strings.
+       * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin.
+       (debug_stack_info): Print savres_strategy.
+       (rs6000_savres_routine_name): Implement for Darwin.
+       (rs6000_make_savres_rtx): Adjust used register for Darwin.
+       (rs6000_emit_prologue): Implement out-of-line saves for Darwin.
+       (rs6000_output_function_prologue): Don't emit .extern for Mach-O.
+       (rs6000_emit_epilogue): Implement out-of-line saves for Darwin.
+       * config/rs6000/darwin-gpsave.asm: New file.
+
+2011-10-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (VI4SD_AVX2): Removed.
+       (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators.
+       (vashl<mode>3): Use VI12_128 iterator instead of VI124_128.
+       Add another expander using VI48_128 iterator for
+       TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator
+       for TARGET_AVX2.
+       (vlshr<mode>3): Likewise.  Change register_operand predicate to
+       nonimmediate_operand on last operand in the VI12_128 expander.
+       (vashr<mode>3): Use VI128_128 iterator instead of VI124_128.
+       (vashrv4si3, vashrv8si3): New expanders.
+       (avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si,
+       avx2_<lshift>vv2di): Removed.
+       (avx2_ashrv<mode>): New insn with VI4_AVX2 iterator.
+       (avx2_<lshift>v<mode>): Macroize using VI48_AVX2
+       iterator.  Simplify pattern.
+
+2010-10-28  Richard Guenther  <rguenther@suse.de>
+
+       PR driver/50876
+       * lto-wrapper.c (get_options_from_collect_gcc_options):
+       Properly count arguments.
+       (run_gcc): Use an obstack to collect argv, properly separate
+       switches and their arguments.
+
+2011-10-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different
+       vector mode from vectype's mode.
+
+2011-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       PR rtl-optimization/49720
+       * simplify-rtx.c (simplify_relational_operation_1): Detect
+       infinite recursion condition in "(eq/ne (plus x cst1) cst2)
+       simplifies to (eq/ne x (cst2 - cst1))" case.
+
+2011-10-27  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/sparc.md (snedi_special): Only match when not VIS3.
+       (*snedi_zero): Likewise.
+       (*snedi_zero_trunc): Likewise.
+       (snedi_special_vis3): New expander.
+       (*snedi_zero_vis3): New insn.
+       (*snedi_zero_trunc_vis3): Likewise.
+       (*sltu_insn_vis3): Likewise.
+       (*sltu_insn_vis3_trunc): Likewise.
+       (addxc): Likewise.
+       (*addxc_trunc_sp64_vis3): Likewise.
+       * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the
+       gen_snedi_special_vis3 expander, and try GTU/LTU addx based
+       sequences on DImode values.
+
+       * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f'
+       constraint.
+
+       * regcprop.c (copyprop_hardreg_forward_1): Reject the
+       transformation when we narrow the mode on big endian.
+
+2011-10-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,
+       vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders.
+       (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns.
+
+       * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'
+       overrides for -masm=intel memory.
+       * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd,
+       sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2,
+       sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2,
+       sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel.
+       (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2,
+       sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel.
+       (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel.
+
+2011-10-27  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info
+       to parm_ainfo.
+       (ipa_compute_jump_functions_for_edge): Likewise.
+       (ipa_compute_jump_functions): Likewise.
+       (ipa_analyze_indirect_call_uses): Likewise.
+       (ipa_analyze_call_uses): Likewise.
+       (ipa_analyze_params_uses): Likewise.
+       (ipa_analyze_node): Likewise.
+
+2011-10-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/50875
+       * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
+       constraints.  Change alternative 1 to "x,m,1".
+
+2011-10-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.in (build/gencheck.o): Depend on tree.def and
+       c-family/c-common.def.
+
+       * tree-ssa-strlen.c: Include expr.h.
+       (get_stridx): Don't use c_strlen, instead use string_constant
+       and compute string length from it.
+       * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H).
+
+2011-10-27  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR rtl-optimization/46603
+       PR bootstrap/50879
+       * reload.c (push_reload): In the out case, restore previous behavior
+       for subregs that don't have word mode.
+
+2011-10-27  Ian Lance Taylor  <iant@google.com>
+
+       * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
+       CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not.
+       (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
+       defined.
+
+2011-10-27  Richard Henderson  <rth@redhat.com>
+
+       * optabs.c (expand_vec_perm): Use the correct mode for scaling the
+       selector.  Save the qimode constant selector for later use by the
+       qimode vec_perm pattern.
+
+2011-10-27  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg
+       to unit_req_factor to the right enum type.
+       (get_unit_operand_masks, reshuffle_units, try_rename_operands,
+       hwloop_optimize): Remove unused variables.
+
+2010-10-27  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/50731
+       * tree-vect-generic.c (do_binop): Handle scalar operands.
+
+2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/37191
+       * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
+       from different units in a single alternative.
+
+2011-10-26  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
+       if we're comparing DImode and comparison is other than EQ or NE.
+
+       * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
+       LEU/LTU/GEU/GTU is attempted.
+       * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
+       and split.
+       (*neg_seqsi_sign_extend): Likewise.
+       (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64,
+       *neg_sgeu_extend_sp64): New insns.
+
+       * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
+       * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
+       (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
+       (*mov<I:mode>_cc_reg_sp64): Likewise.
+       (*movsf_cc_v9): Likewise.
+       (*movsf_cc_reg_sp64): Likewise.
+       (*movdf_cc_v9): Likewise.
+       (*movdf_cc_reg_sp64): Likewise.
+       (*movtf_cc_hq_v9): Likewise.
+       (*movtf_cc_reg_hq_sp64): Likewise.
+       (*movtf_cc_v9): Likewise.
+       (*movtf_cc_reg_sp64): Likewise.
+       * config/sparc/sparc.c (sparc_expand_conditional_move): New function.
+       (sparc_print_operand): Delete 'c' and 'd' handling, no longer used.
+
+2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * reload.c (reload_inner_reg_of_subreg): Change type of return value
+       and type of OUTPUT parameter to bool and adjust.  Document MODE and
+       OUTPUT parameters.  Use HARD_REGISTER_P.  Reorder final condition
+       and improve associated comment.
+       (push_reload): Clarify and update comments about reloading of subregs.
+       Adjust calls to reload_inner_reg_of_subreg.  Compute the class upfront
+       for the reloading of subregs in the out case as well.
+
+2011-10-26  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/50826
+       * var-tracking.c (rtx_debug_expr_p): New.
+       (use_type): Don't use debug exprs to track non-VTA variables.
+
+2011-10-26  Jeff Law  <law@redhat.com>
+
+       * doc/invoke.texi (sink-frequency-threshold): Document.
+       * tree-ssa-sink.c: Include params.h.
+       (select_best_block): New function.
+       (statement_sink_location): Use it.
+       * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.
+
+2011-10-26  Iain Sandoe  <iains@gcc.gnu.org>
+
+       PR target/48108
+       * config/darwin.c (top level): Amend comments concerning LTO output.
+       (lto_section_num): New variable.  (darwin_lto_section_e): New GTY.
+       (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
+       (LTO_NAMES_SECTION): Rename.
+       (darwin_asm_named_section): Record LTO section counts and switches
+       in a vec of darwin_lto_section_e.
+       (darwin_file_start): Remove unused code.
+       (darwin_file_end): Put an LTO section termination label.  Handle
+       output of the wrapped LTO sections, index and names table.
+
+2011-10-26  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
+       declaration.
+       (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
+       (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx.  Use
+       simple_return in pattern, emit instruction, and set jump_label.
+       (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx.  Use
+       simple_return rather than return.
+       (emit_cfa_restores): New function.
+       (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
+       Add missing cfa_restores for SAVE_WORLD.  Add missing LR cfa_restore
+       when using out-of-line gpr restore.  Add missing LR and FP regs
+       cfa_restores for out-of-line fpr restore.  Consolidate code setting
+       up cfa_restores.  Formatting.  Use LR_REGNO define.
+       (rs6000_output_mi_thunk): Use simple_return rather than return.
+       * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
+       (return_internal*): Likewise.
+       (any_return, return_pred, return_str): New iterators.
+       (return, conditional return insns): Provide both return and
+       simple_return variants.
+       * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
+       (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
+       Move r11 and r0 later to suit shrink-wrapping.
+
+2011-10-26  Richard Guenther  <rguenther@suse.de>
+
+       * lto-wrapper.c (run_gcc): Properly init/free obstack.
+
+2011-10-26  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.md (UNSPEC_VSIBADDR): New.
+       * config/i386/predicates.md (vsib_address_operand,
+       vsib_mem_operator): New predicates.
+       * config/i386/i386.c (ix86_print_operand_address): Handle
+       UNSPEC_VSIBADDR addresses.
+       * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
+       avx2_gatherdi<mode>256): Adjust expanders to use MEM with
+       UNSPEC_VSIBADDR address.
+       (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
+       Adjust insns to use MEM with UNSPEC_VSIBADDR address.
+
+2011-10-26  Tom de Vries  <tom@codesourcery.com>
+
+       PR tree-optimization/50763
+       * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
+       phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.
+
+2011-10-26  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/41844
+       * Makefile.in (lto-wrapper): Depend on and link against opts-common.o.
+       (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
+       * lto-wrapper.c (get_options_from_collect_gcc_options): New function.
+       (run_gcc): Use it.  Filter out language specific options.
+
+2011-10-26  Andreas Tobler  <andreast@fgznet.ch>
+
+       * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
+       32-bit target does.
+
 2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR driver/46617
 
 2011-10-25  Dodji Seketeli  <dodji@redhat.com>
 
-       * input.c (expand_location): Rewrite using
-       linemap_resolve_location and linemap_expand_location.  Add a
-       comment.
+       * input.c (expand_location): Rewrite using linemap_resolve_location
+       and linemap_expand_location.  Add a comment.
 
 2011-10-25  Jakub Jelinek  <jakub@redhat.com>
 
        to MASK_LITTLE_ENDIAN.
        * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.
 
-       * config/sparc/sparc.md: Only use F, G, and C constraints in FP
-       insns.  Only use D, Y, and Z constraints in vector insns.
+       * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns.
+       Only use D, Y, and Z constraints in vector insns.
 
        * config/sparc/sparc.md (cpu_feature, enabled): New attributes.
        (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
 2011-10-24  Julian Brown  <julian@codesourcery.com>
 
        * config/m68k/m68k.c (notice_update_cc): Tighten condition for
-       setting CC_REVERSED for FP comparisons.  
+       setting CC_REVERSED for FP comparisons.
 
 2011-10-24  Richard Guenther  <rguenther@suse.de>
 
        float and integer regs.
        (sparc_register_move_cost): Adjust to account for VIS3 moves.
        (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
-       integer reg to a class containing EXTRA_FP_REGS, constrain to
-       FP_REGS.
+       integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS.
        (sparc_secondary_reload): On 32-bit with VIS3 when moving between
        float and integer regs we sometimes need a FP_REGS class
        intermediate move to satisfy the reload.  When this happens
        specify an extra cost of 2.
-       (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3
-       guard.
+       (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard.
        (*movdi_insn_sp32_v9): Likewise.
        (*movdi_insn_sp64): Likewise.
        (*movsf_insn): Likewise.
        (*mov<VM32:mode>_insn_vis3): New insn.
        (*mov<VM64:mode>_insn_sp64_vis3): New insn.
        (*mov<VM64:mode>_insn_sp32_vis3): New insn.
-       (VM64 reg<-->reg split): New spliiter for 32-bit.
+       (VM64 reg<-->reg split): New splitter for 32-bit.
 
-       * config/sparc/sparc.c (sparc_split_regreg_legitimate): New
-       function.
+       * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function.
        * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
        Declare it.
        * config/sparc/sparc.md (DImode reg/reg split): Use it.
 2011-10-23  Tom de Vries  <tom@codesourcery.com>
 
        PR tree-optimization/50763
-       * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored out
-       of ...
+       * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored
+       out of ...
        (same_succ_flush_bbs): Use same_succ_flush_bb.
        (purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
        release_last_vdef and delete_basic_block.
        (unlink_virtual_phi): New function.
        (update_vuses): Add and use vuse1_phi_args argument.  Set var to
-       SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that def_stmt2
-       is NULL.  Use phi result as phi arg in case vuse1 or vuse2 is NULL_TREE.
-       Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code to limit
-       replacement of uses.  Propagate phi argument for phis with a single
-       argument.
+       SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that
+       def_stmt2 is NULL.  Use phi result as phi arg in case vuse1 or vuse2
+       is NULL_TREE.  Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code
+       to limit replacement of uses.  Propagate phi argument for phis with a
+       single argument.
        (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
-       Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add vuse1_phi_args
-       as argument to call to update_vuses.  Call release_last_vdef,
-       same_succ_flush_bb, delete_basic_block.  Update CDI_DOMINATORS info.
+       Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add
+       vuse1_phi_args as argument to call to update_vuses.  Call
+       release_last_vdef, same_succ_flush_bb, delete_basic_block.  Update
+       CDI_DOMINATORS info.
        (tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
        call to free_dominance_info.  Only call calculate_dominance_info once.