OSDN Git Service

PR tree-optimization/50693
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 111efb1..25eb1ce 100644 (file)
@@ -1,5 +1,183 @@
+2011-11-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/50693
+       * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with
+       non-forced user labels.
+       (gimple_merge_blocks): Turn non-forced user labels into
+       debug bind stmt with the label as first operand and reset value.
+       (gimple_duplicate_bb): Don't duplicate label debug stmts.
+       * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
+       * final.c (final_scan_insn): Likewise.
+       (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL.
+       * var-tracking.c (debug_label_num): New variable.
+       (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs,
+       instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes.
+       * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle
+       NOTE_INSN_DELETED_DEBUG_LABEL.
+       (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs.
+       * insn-notes.def (DELETED_DEBUG_LABEL): New note kind.
+       * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
+       * gengtype.c (adjust_field_rtx_def): Likewise.
+       * config/i386/i386.c (ix86_output_function_epilogue): For MachO
+       clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL
+       if their are at the end of function and nop hasn't been emitted.
+       * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise.
+
+2011-11-05  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR rtl-optimization/50448
+       * cprop.c (try_replace_reg): Also try to replace uses of FROM that
+       appear in SET_DEST.
+
+2011-11-05  Peter Dufault  <dufault@hda.com>,
+           Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+       * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
+       Extend rs6000_spe handling.
+
+2011-11-05  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+       * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib.
+       Remove -mcpu=601 multilib.
+       Remove -Dmpc8260 multilib.
+       * config/rs6000/rtems.h: Allow --float-gprs=... to override grps
+       on E500 targets.        
+
+2011-11-05  Quentin Neill  <quentin.neill@amd.com>
+
+       Piledriver f16cintrin.h fix.
+       * config/i386/f16cintrin.h: Contents moved from immintrin.h.
+       * config/config.gcc: Add f16cintrin.h.
+
+2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR c++/50608
+       * c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
+       to fold_offsetof.
+       * c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
+
+2011-11-04  Alan Modra  <amodra@gmail.com>
+
+       * reload1.c (gen_reload): Don't use REGNO on SUBREGs.
+       * print-rtl.c (print_rtx): Don't segfault on negative regno.
+
+2011-11-04  David S. Miller  <davem@davemloft.net>
+
+       PR target/49965
+       * config/sparc/sparc.c (sparc_expand_conditional_move): Handle the
+       fact that sparc_emit_float_lib_cmp modifies the comparison in
+       operands[1].
+
+2011-11-04  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+       * config/lm32/t-rtems: New.
+       * config.gcc (lm32-*-rtems*): Add t-rtems.
+
+2011-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/50979
+       * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
+
+2011-11-04  Jiangning Liu  <jiangning.liu@arm.com>
+
+       PR rtl-optimization/38644
+       * config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
+       for epilogue having stack adjustment.
+
+2011-11-04  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/50931
+       * config/avr/avr-modes.def: New file defining PSImode.
+       * config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__,
+       __UINT24_MAX__): New built-in defines.
+       * config/avr/avr.md (adjust_len): Add tstpsi, mov24,  reload_in24,
+       ashlpsi, ashrpsi, lshrpsi.
+       (QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI.
+       (MOVMODE): New mode iterator.
+       (movpsi): New expander.
+       (movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE.
+       (*reload_inpsi, *movpsi): New insns.
+       (*reload_inpsi): New RTL peephole.
+       (addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi,
+       *addpsi3_sign_extend.hi): New insns.
+       (subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi,
+       *subpsi3_sign_extend.hi): New insns.
+       (divmodpsi4, udivmodpsi4): New define insn-and-split.
+       (*divmodpsi4_call, *udivmodpsi4_call): New insns.
+       (andpsi3, iorpsi3, xorpsi3): New insns.
+       (*rotlpsi2.1, *rotlpsi2.23): New insns.
+       (*rotw<mode>): Insn condition only allow even-sized modes.
+       (*rotb<mode>): Insn condition allows odd-sized modes.
+       (ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns.
+       (negpsi2, one_cmplpsi2): New insns.
+       (extendqipsi2, extendhipsi2, extendpsisi2): New insns.
+       (zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New
+       insn-and-splits.
+       (*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns.
+       (cbranchpsi4): New expander.
+       * config/avr/constraints.md (Ca3, Co3, Cx3): New constraints.
+       * config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi,
+       avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3,
+       avr_out_reload_inpsi): New prototypes.
+
+       * config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to...
+       (avr_scalar_mode_supported_p): ...this new static function.
+       (avr_asm_len): Always return "".
+       (avr_out_load_psi, avr_out_store_psi): New static functions.
+       (avr_out_movpsi, avr_out_reload_inpsi): New functions.
+       (avr_out_tstpsi): New function.
+       (avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions.
+       (avr_out_plus_1, output_reload_in_const): Handle 3-byte types.
+       (avr_simplify_comparison_p): Ditto.
+       (adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24,
+       ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI,
+       ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI.
+       (avr_rtx_costs_1): Report PSI costs.
+       (avr_libcall_value): Handle odd-sized parameters.
+       (avr_init_builtin_int24): New static function to define built-in
+       24-bit types __int24 and __uint24.
+       (avr_init_builtins): Use it.
+
+2011-11-04  Thomas Doerfler <thomas.doerfler@embedded-brains.de>
+
+       PR target/50989
+       * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional
+       support for VFP floating point model.
+
+2011-11-04  Tristan Gingold  <gingold@adacore.com>
+
+       * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section.
+
+2011-11-04  Ira Rosen  <ira.rosen@linaro.org>
+
+       Unrevert:
+       2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
+
+       PR tree-optimization/50730
+       * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
+       analysis if encountered unsupported data-ref.
+
 2011-11-04  Jakub Jelinek  <jakub@redhat.com>
 
+       * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New
+       function.
+       * config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf):
+       New prototype.
+       * config/i386/sse.md (floatuns<sseintvecmodelower><mode>2): Use it.
+       For floatunsv8siv8sf2 require TARGET_AVX2.
+
+       * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add
+       XORP argument.  Subtract 0x1p31 instead of 0x1p32.  Use normal
+       signalling comparison instead of non-signalling.  Store into
+       *XORP pseudo holding 0x80000000 integers if 0x1p31 has been
+       subtracted and 0 otherwise.
+       * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si):
+       Adjust prototype.
+       * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Enable
+       already for TARGET_SSE2.  Xor in vector initialized by
+       ix86_expand_adjust_ufix_to_sfix_si at the end.
+       (vec_pack_ufix_trunc_<mode>): Likewise.
+
        * tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle
        not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P,
        WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what