OSDN Git Service

* config/i386/sse.md (*sse4_1_extractps): Change into
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 3f79363..5c65c31 100644 (file)
@@ -1,3 +1,656 @@
+2011-09-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (*sse4_1_extractps): Change into
+       define_insn_and_split, add =x 0 n and =x x n alternatives
+       and split them after reload.
+
+2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
+
+2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
+
+       * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
+
+2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
+
+       PR tree-optimization/50413
+       * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
+       a basic block if one of its data-refs can't be analyzed.
+
+2011-09-19  Paul Brook  <paul@codesourcery.com>
+
+       gcc/
+       * config/arm/predicates.md (shift_amount_operand): Check constant
+       shift count is in range.
+       (const_shift_operand): Remove.
+
+2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
+           Iain Sandoe  <developer@sandoe-acoustics.co.uk>
+
+       PR target/50091
+       * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
+       * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
+
+2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/bmiintrin.h: Remove tmp.
+       * config/i386/tbmintrin.h: Likewise.
+
+2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
+
+       PR tree-optimization/50414
+       * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
+       MIN_EXPR.
+
+2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
+
+       PR tree-optimization/50412
+       * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
+       acceses that require epilogue loop if vectorizing outer loop.
+
+2011-09-17  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
+       UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
+       New unspecs.
+       (define_attr type): New type 'edge'.
+       (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
+       edge32l_vis): New patterns.
+       * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
+       * config/sparc/ultra3.md: Likewise.
+       * config/sparc/niagara.md: Likewise.
+       * config/sparc/niagara2.md: Likewise.
+       * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
+       builtins for VIS edge instructions.
+       * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
+       (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
+       intrinsics.
+       (__v8qi, __v4qi): Make unsigned.
+       (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
+       __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
+       __vis_fpack32): Fix types.
+       * doc/extend.texi: Document new 'edge' VIS intrinsics.
+
+       * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
+       divide costs.
+       (niagara3_costs): New.
+       (sparc_option_override): Use it.
+       * gcc/config/sparc/niagara2.md: Adjust with more accurate
+       Niagara-3 reservations.
+
+2011-09-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
+       (sse2_avx, sseinsnmode): Add V2TI.
+       (REDUC_SMINMAX_MODE): New mode iterator.
+       (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
+       reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
+       (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
+       (sse2_lshrv1ti3): Rename to...
+       (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
+       iterator.  Move before umaxmin expanders.
+       * config/i386/i386.h (VALID_AVX256_REG_MODE,
+       SSE_REG_MODE_P): Accept V2TImode.
+       * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
+       V16HImode, V8SImode and V4DImode.
+
+       * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
+       and V4DImode.
+       (ix86_build_signbit_mask): Likewise.
+       (ix86_expand_int_vcond): Likewise.  Handle V16HImode and
+       V32QImode.
+       (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
+       instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
+       * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename
+       to...
+       (<code><mode>3) ... this.
+       (avx2_<code><mode>3 smaxmin expand): Rename to...
+       (<code><mode>3) ... this.
+       (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
+       (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
+       VI8_AVX2 mode iterator.
+       (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
+       VI8_AVX2 mode iterator.
+       (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
+       New expanders.
+
+2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-16  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/visintrin.h: New file.
+       * config.gcc: Add it to extra_headers on sparc.
+
+2011-09-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
+       (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
+       * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
+       reduc_smin_v4sf): Adjust callers.
+       (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
+       New expanders.
+
+       * config/i386/sse.md (vec_extract_hi_<mode>,
+       vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
+       vextracti128 instead of vextractf128 for -mavx2 and
+       integer vectors.  For V4DFmode fix up mode attribute.
+       (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
+       (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
+       instead of V8SF mode attribute.
+       (avx2_extracti128): Change into define_expand.
+       * config/i386/i386.c (ix86_expand_vector_extract): Handle
+       32-byte vector modes if TARGET_AVX.
+
+2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
+       (umulqi3_highpart, smulqi3_highpart): Ditto.
+       (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
+       (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
+       (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
+
+2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/50358
+       * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
+       (*maddqi4, *maddqi4.const): New insns.
+       (*msubqi4, *msubqi4.const): New insns.
+       * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
+       PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
+       HImode by 1 in the case of multiplying with a CONST_INT.
+       Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
+
+2011-09-15   Jan Hubicka  <jh@suse.cz>
+
+       PR lto/50430
+       * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
+       error_mark_node in the DECL_INITIAL of vtable.
+
+2011-09-15   Diego Novillo  <dnovillo@google.com>
+
+       * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
+       @SYSROOT_CFLAGS_FOR_TARGET@.
+       * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from
+       build-sysroot.
+       * configure: Regenerate.
+       (site.exp): Add definition of TEST_ALWAYS_FLAGS.
+       Remove setting of GCC_UNDER_TEST.
+
+2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (output_fp_compare): Return %v prefixed
+       instruction mnemonics for TARGET_AVX.
+
+       * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
+       "type" attribute calculation.
+       (*movdf_internal): Ditto.
+       (*movsf_internal): Ditto.
+
+2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
+
+2011-09-15  Jason Merrill  <jason@redhat.com>
+
+       PR c++/50361
+       * expr.c (count_type_elements): Handle NULLPTR_TYPE.
+
+2011-09-15  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-analysis.c (add_condition): Add conditions parameter;
+       simplify obviously true clauses.
+       (and_predicates, or_predicates): Add conditions parameter.
+       (inline_duplication_hoook): Update.
+       (mark_modified): New function.
+       (unmodified_parm): New function.
+       (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
+       set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
+       Use unmodified_parm.
+       (estimate_function_body_sizes): Update.
+       (remap_predicate): Update.
+
+2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
+
+       * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
+       read-after-read dependencies in basic block SLP.
+
+2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+       * config/rs6000/constraints.md: Likewise.
+
+2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/microblaze/microblaze.md: Use match_test rather than
+       eq/ne symbol_ref throughout file.
+
+2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-14  Tom de Vries  <tom@codesourcery.com>
+
+       PR middle-end/50251
+       * explow.c (emit_stack_restore): Set crtl->need_drap if
+       stack_restore is emitted.
+
+2011-09-14  Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/arm.c (arm_override_options): Add unaligned_access
+       support.
+       (arm_file_start): Emit attribute for unaligned access as appropriate.
+       * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
+       (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
+       (insv, extzv): Add unaligned-access support.
+       (extv): Change to expander. Likewise.
+       (extzv_t1, extv_regsi): Add helpers.
+       (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
+       (unaligned_storesi, unaligned_storehi): New.
+       (*extv_reg): New (previous extv implementation).
+       * config/arm/arm.opt (munaligned_access): Add option.
+       * config/arm/constraints.md (Uw): New constraint.
+       * expmed.c (store_bit_field_1): Adjust bitfield numbering according
+       to size of access, not size of unit, when BITS_BIG_ENDIAN !=
+       BYTES_BIG_ENDIAN. Don't use bitfield accesses for
+       volatile accesses when -fstrict-volatile-bitfields is in effect.
+       (extract_bit_field_1): Likewise.
+
+2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * simplify-rtx.c (simplify_subreg): Check that the inner mode is
+       a scalar integer before applying integer-only optimisations to
+       inner arithmetic.
+
+2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * config/mips/mips.c (mips_expand_epilogue): Generate a
+       simple_return only if the return address is in r31.
+
+2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * cfgcleanup.c (try_head_merge_bb): If get_condition returns
+       NULL for a jump that is a cc0 insn, pick the previous insn for
+       move_before.
+
+2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mn10300/mn10300.md: Use match_test rather than eq/ne
+       symbol_ref throughout file.
+
+2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+       * config/arm/neon.md: Likewise.
+       * config/arm/vfp.md: Likewise.
+       * config/arm/thumb2.md: Likewise.
+       * config/arm/cortex-m4.md: Likewise.
+
+2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
+
+       * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
+       define_insn patterns for combine.
+
+2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
+
+       * reorg.c: Always define make_return_insns.
+
+2011-09-13  Jan Hubicka  <jh@suse.cz>
+
+       PR other/49533
+       * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
+
+2011-09-13  Jan Hubicka  <jh@suse.cz>
+
+       PR other/49533
+       * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
+
+2011-09-13  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
+       (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
+       * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
+       * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
+       * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
+       * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
+       * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
+       * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
+       enabling unwind tables.
+       (c6x_debug_unwind_info): New function.
+       (TARGET_ARM_EABI_UNWINDER): Define.
+       (TARGET_DEBUG_UNWIND_INFO): Define.
+       * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
+       (TARGET_EXTRA_CFI_SECTION): Remove.
+       * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
+       * ginclude/unwind-arm-common.h: New file.
+
+2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/50358
+       * config/avr/predicates.md (const_1_to_6_operand): New predicate.
+       * config/avr/avr.md: (extend_s): New code attribute.
+       (mul_r_d): New code attribute.
+       (*maddqihi4, *umaddqihi4): New insns.
+       (*msubqihi4, *umsubqihi4): New insns.
+       (*usmaddqihi4, *sumaddqihi4): New insns.
+       (*usmsubqihi4, *susubdqihi4): New insns.
+       (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
+       (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
+       (*umsubqihi4.uconst.ashift): New insn-and-split.
+       (*msubqihi4.sconst.ashift): New insn-and-split.
+       (*sumaddqihi4.uconst): New insn-and-split.
+       (*sumsubqihi4.uconst): New insn-and-split.
+       * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
+       PLUS:HI and MINUS:HI.
+
+2011-09-13  Revital Eres  <revital.eres@linaro.org>
+
+       modulo-sched.c (remove_node_from_ps): Return void instead of bool.
+       (optimize_sc): Adjust call to remove_node_from_ps.
+       (sms_schedule): Add print info.
+
+2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * rtl.c (copy_rtx): Do not handle frame_related, jump or call
+       flags specially.
+
+2011-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/50010
+       * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
+       NOTE_INSN_CFI notes, with the exception of
+       NOTE_INSN_SWITCH_TEXT_SECTIONS.
+
+2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
+           Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.c (mips_epilogue): New structure.
+       (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
+       restoring registers.
+       (mips_epilogue_emit_cfa_restores): New function.
+       (mips_epilogue_set_cfa): Likewise.
+       (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
+       the current CFA register from the stack, redefine the CFA in terms
+       of the stack pointer.
+       (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
+       to the epilogue instructions.
+
+2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
+       argument.
+       (mips16e_build_save_restore): Update accordingly.
+
+2011-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/50212
+       * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
+       Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
+
+       PR debug/50299
+       * calls.c (load_register_parameters): Use use_reg_mode instead
+       of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
+       entry.
+       (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
+       for stack CALL_INSN_FUNCTION_USAGE uses.
+       * expr.h (use_reg_mode): New prototype.
+       (use_reg): Changed into inline around use_reg_mode.
+       * expr.c (use_reg): Renamed to...
+       (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
+       mode to that mode instead of VOIDmode.
+       * var-tracking.c (prepare_call_arguments): Don't track parameters
+       whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
+       to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
+       EXPR_LIST mode.
+
+2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/43746
+       * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
+       (progmem_section): New Variable.
+       (avr_asm_init_sections): Initialize it.
+       (TARGET_ASM_SELECT_SECTION): Define to...
+       (avr_asm_select_section): ... this new Function.
+       (avr_replace_prefix): New Function.
+       (avr_asm_function_rodata_section): Use it.
+       (avr_insert_attributes): Don't add section attribute for PROGMEM.
+       (avr_section_type_flags): Use avr_progmem_p instead of section
+       name to detect if object is in PROGMEM.
+       (avr_asm_named_section): Set section name prefix for objects in
+       PROGMEM.
+
+2011-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/50352
+       * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
+       sprintf format string.
+
+2011-09-12  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/50343
+       * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
+       that the reduction is over an SSA name before checking its definition.
+
+2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+
+2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
+       throughout file.
+       * config/mips/sb1.md: Likewise.
+       * config/mips/predicates.md: Replace (match_test "!...")
+       with (not (match_test "..."))
+       * config/mips/constraints.md: Likewise.
+
+2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/arm/arm-cores.def (generic-armv7-a): New architecture.
+       * config/arm/arm-tables.opt: Regenerate.
+       * config/arm/arm-tune.md: Regenerate.
+       * config/arm/arm.c (arm_file_start): Output .arch directive when
+       user passes -mcpu=generic-*.
+       (arm_issue_rate): Add genericv7a support.
+       * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
+       (ASM_CPU_SPEC): New define.
+       * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
+       * config/arm/semi.h (ASM_SPEC): Likewise.
+       * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
+       and -mtune=generic-*.
+
+2011-09-09  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/50328
+       * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
+       constant or default-def operand.
+
+2011-09-09  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-pre.c (create_expression_by_pieces): Fold the
+       last statement.
+
+2011-09-09  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
+       instead of a statement.
+       * gimple-fold.c (fold_stmt_inplace): Likewise.
+       * sese.c (graphite_copy_stmts_from_block): Adjust.
+       * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
+       * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
+       fold_stmt.
+       (forward_propagate_addr_into_variable_array_index): Likewise.
+       (forward_propagate_addr_expr_1): adjust.
+       (associate_plusminus): Likewise.
+       (ssa_forward_propagate_and_combine): Likewise.
+       * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
+       (execute_cse_reciprocals): Likewise.
+       * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
+
+2011-09-09  Nick Clifton  <nickc@redhat.com>
+
+       * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
+       Return a positive value to indicate that the bits at the
+       bottom of the register should be cleared.
+
+2011-09-09  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-operands.c (swap_tree_operands): Always adjust
+       existing operand positions.
+
+2011-09-09  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/50333
+       * tree-data-ref.c (split_constant_offset): Do not try to handle
+       ternary ops.
+
+2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
+
+       PR tree-optimization/50318
+       * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
+       typo in use of mult_rhs1 and mult_rhs2.
+
+2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
+       (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
+
+2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * config/arm/arm.md (push_multi): Emit predicates.
+       (push_fp_multi): Likewise.
+       * config/arm/arm.c (vfp_output_fstmd): Likewise.
+
+2011-09-08  Dodji Seketeli  <dodji@redhat.com>
+
+       PR c++/33255 - Support -Wunused-local-typedefs warning
+       * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
+       (pushdecl): Use the new record_locally_defined_typedef.
+       (store_parm_decls): Allocate cfun->language.
+       (finish_function): Use the new maybe_warn_unused_local_typedefs,
+       and free cfun->language.
+       (c_push_function_context): Allocate cfun->language here only if needed.
+       (c_pop_function_context): Likewise, mark cfun->language
+       for collection only when it should be done.
+       * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
+       * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
+       maybe_record_local_typedef_use.
+       * doc/invoke.texi: Update documentation for
+       -Wunused-local-typedefs.
+
+2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
+
+       * config/i386/i386-protos.h (ix86_lea_outperforms): New.
+       (ix86_avoid_lea_for_add): Likewise.
+       (ix86_avoid_lea_for_addr): Likewise.
+       (ix86_split_lea_for_addr): Likewise.
+
+       * config/i386/i386.c (LEA_MAX_STALL): New.
+       (increase_distance): Likewise.
+       (insn_defines_reg): Likewise.
+       (insn_uses_reg_mem): Likewise.
+       (distance_non_agu_define_in_bb): Likewise.
+       (distance_agu_use_in_bb): Likewise.
+       (ix86_lea_outperforms): Likewise.
+       (ix86_ok_to_clobber_flags): Likewise.
+       (ix86_avoid_lea_for_add): Likewise.
+       (ix86_avoid_lea_for_addr): Likewise.
+       (ix86_split_lea_for_addr): Likewise.
+       (distance_non_agu_define): Search in pred BBs added.
+       (distance_agu_use): Search in succ BBs added.
+       (IX86_LEA_PRIORITY): Value changed from 2 to 0.
+       (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
+       (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
+
+       * config/i386/i386.md: Split added to transform non destructive
+       add into move and add.
+       (lea_1): transformed into insn_and_split to avoid AGU stalls.
+       (lea<mode>_2): Likewise.
+
+2011-09-08  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/50287
+       * ipa-split.c (split_function): Do not create SSA names for
+       non-gimple-registers.
+
+2011-09-08  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/19831
+       * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
+       skip builtins with vdefs that do not really store something.
+       (propagate_necessity): For calls to free that we can associate
+       with an allocation function do not mark the freed pointer
+       definition necessary.
+       (eliminate_unnecessary_stmts): Remove a call to free if
+       the associated call to an allocation function is not necessary.
+
+2011-09-08  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/19831
+       * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
+       allocation functions as necessary.
+
+2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
+       cut from ...
+       (darwin_default_min_version): Amended to provide defaults
+       for the cross directory case.
+       (darwin_driver_init): call darwin_default_min_version unconditionally.
+       * config/darwin.h (DEF_MIN_OSX_VERSION): New.
+       * config/darwin9.h: Likewise.
+       * config/darwin10.h: Likewise.
+       * config/rs6000/darwin7.h: Likewise.
+
+2011-09-08  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/50310
+       * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
+       code early if TARGET_AVX.
+       (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
+
 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
 
        * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
        (merge_overlapping_regs): Use chain_from_id.  Assert that
        chains don't conflict with themselves.
        (rename_chains): Take no argument.  Iterate over id_to_chain
-       rather to find chains to rename.  Clear tick before the main
-       loop.
+       rather to find chains to rename.  Clear tick before the main loop.
        (struct incoming_reg_info): New struct.
        (struct bb_rename_info): New struct.
        (init_rename_info, set_incoming_from_chain, merge_chains): New
        * hooks.c (hook_int_uint_mode_1): Likewise.
 
        * config/i386/i386.h (ix86_tune_indices): Add
-       X86_TUNE_REASSOC_INT_TO_PARALLEL and
-       X86_TUNE_REASSOC_FP_TO_PARALLEL.
+       X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
 
        (TARGET_REASSOC_INT_TO_PARALLEL): New.
        (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
 
        * config/i386/i386.c (initial_ix86_tune_features): Add
-       X86_TUNE_REASSOC_INT_TO_PARALLEL and
-       X86_TUNE_REASSOC_FP_TO_PARALLEL.
+       X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
 
-       (ix86_reassociation_width) implementation of
-       new hook for i386 target.
+       (ix86_reassociation_width): New function.
 
        * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
 
        (swap_ops_for_binary_stmt): Likewise.
        (rewrite_expr_tree_parallel): Likewise.
 
-       (rewrite_expr_tree): Refactored. Part of code moved into
+       (rewrite_expr_tree): Refactored.  Part of code moved into
        swap_ops_for_binary_stmt.
 
-       (reassociate_bb): Now checks reassociation width to be used
-       and call rewrite_expr_tree_parallel instead of rewrite_expr_tree
-       if needed.
+       (reassociate_bb): Now checks reassociation width to be used and
+       call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
 
 2011-09-06  Richard Guenther  <rguenther@suse.de>
 
 
 2011-09-06  Richard Guenther  <rguenther@suse.de>
 
-       * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify
-       matching.
+       * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
 
 2011-09-06  Tom de Vries  <tom@codesourcery.com>
 
        * config/sparc/sparc.md: Add to "cpu" attribute.
        * config/sparc/sparc.h (TARGET_CPU_niagara3,
        TARGET_CPU_niagara4): New, treat as niagara2.
-       * config/sparc/linux64.h: Handle niagara3 and niagara4
-       like niagara2.
+       * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
        * config/sparc/sol2.h: Likewise.
-       * config/sparc/niagara2.md: Schedule niagara3 like
-       niagara2.
+       * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
        * config/sparc/sparc.c (sparc_option_override): Add
        niagara3 and niagara4 handling.
        (sparc32_initialize_trampoline): Likewise.
        * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
        * tree-object-size.c (cond_expr_object_size): Adjust.
        (collect_object_sizes_for): Likewise.
-       * tree-scalar-evolution.c (interpret_expr): Don't handle
-       ternary RHSs.
+       * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
        * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
        (ssa_forward_propagate_and_combine): Adjust.
        * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR