OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-dev/] [fsf-gcc-snapshot-1-mar-12/] [or1k-gcc/] [gcc/] [ChangeLog] - Diff between revs 684 and 783

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 684 Rev 783
2012-02-29  Eric Botcazou  
2012-02-29  Eric Botcazou  
        * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
        * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
        DW_AT_artificial attributes at the end of the processing.
        DW_AT_artificial attributes at the end of the processing.
        (gen_array_type_die): Likewise.
        (gen_array_type_die): Likewise.
        (gen_enumeration_type_die): Likewise.
        (gen_enumeration_type_die): Likewise.
        (gen_struct_or_union_type_die): Likewise.
        (gen_struct_or_union_type_die): Likewise.
        (add_gnat_descriptive_type_attribute): Do not suppress debug info for
        (add_gnat_descriptive_type_attribute): Do not suppress debug info for
        the parent type.
        the parent type.
2012-02-29  Jakub Jelinek  
2012-02-29  Jakub Jelinek  
        PR middle-end/52419
        PR middle-end/52419
        * expr.c (expand_assignment): If doing misaligned store that doesn't
        * expr.c (expand_assignment): If doing misaligned store that doesn't
        cover all mode bits, perform a RMW cycle.
        cover all mode bits, perform a RMW cycle.
        PR tree-optimization/52429
        PR tree-optimization/52429
        * tree-parloops.c (separate_decls_in_region_debug): Return early
        * tree-parloops.c (separate_decls_in_region_debug): Return early
        if var is LABEL_DECL.
        if var is LABEL_DECL.
2012-02-29  Bill Schmidt  
2012-02-29  Bill Schmidt  
        PR tree-optimization/52424
        PR tree-optimization/52424
        * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
        * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
        calling dom_thread_across_edge.
        calling dom_thread_across_edge.
2012-02-29  Georg-Johann Lay  
2012-02-29  Georg-Johann Lay  
        * config/avr/avr.c: Move definition of TARGET macros to end of file.
        * config/avr/avr.c: Move definition of TARGET macros to end of file.
2012-02-29  Georg-Johann Lay  
2012-02-29  Georg-Johann Lay  
        * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
        * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
        * config/avr/avr.c (avr_output_bld): Remove unused function.
        * config/avr/avr.c (avr_output_bld): Remove unused function.
        (avr_out_sbxx_branch): Use "%T" to print bit position.
        (avr_out_sbxx_branch): Use "%T" to print bit position.
2012-02-29  Georg-Johann Lay  
2012-02-29  Georg-Johann Lay  
        * config/avr/avr.md: Untabify.
        * config/avr/avr.md: Untabify.
2012-02-29  Georg-Johann Lay  
2012-02-29  Georg-Johann Lay  
        * config/avr/avr.md (eqne): New code iterator.
        * config/avr/avr.md (eqne): New code iterator.
        (*dec-and-branchsi): Use it in text peephole's condition.
        (*dec-and-branchsi): Use it in text peephole's condition.
        (*dec-and-branchhi): Ditto.
        (*dec-and-branchhi): Ditto.
        (*dec-and-branchqi): Ditto.
        (*dec-and-branchqi): Ditto.
2012-02-29  Georg-Johann Lay  
2012-02-29  Georg-Johann Lay  
        PR target/49939
        PR target/49939
        * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
        * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
        the device does not have the skip-bug.
        the device does not have the skip-bug.
2012-02-29  Oleg Endo  
2012-02-29  Oleg Endo  
        * doc/invoke.texi (-msoft-atomic): Add more detailed description.
        * doc/invoke.texi (-msoft-atomic): Add more detailed description.
        (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
        (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
        -mpretend-cmove): New.
        -mpretend-cmove): New.
2012-02-29  Jakub Jelinek  
2012-02-29  Jakub Jelinek  
        PR bootstrap/52397
        PR bootstrap/52397
        * df.h (struct df_d): Adjust comment that hard_regs_live_count
        * df.h (struct df_d): Adjust comment that hard_regs_live_count
        doesn't count DEBUG_INSN refs.
        doesn't count DEBUG_INSN refs.
        * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
        * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
        for DEBUG_INSN refs.
        for DEBUG_INSN refs.
2012-02-28  Ulrich Weigand  
2012-02-28  Ulrich Weigand  
        Partially revert:
        Partially revert:
        2012-02-20  Richard Guenther  
        2012-02-20  Richard Guenther  
        PR tree-optimization/52298
        PR tree-optimization/52298
        * tree-vect-stmts.c (vectorizable_load): Properly use
        * tree-vect-stmts.c (vectorizable_load): Properly use
        STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
        STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
        outer loops.
        outer loops.
2012-02-28  Aldy Hernandez  
2012-02-28  Aldy Hernandez  
        PR middle-end/51752
        PR middle-end/51752
        * gimple.h (gimple_in_transaction): New.
        * gimple.h (gimple_in_transaction): New.
        (gimple_set_in_transaction): New.
        (gimple_set_in_transaction): New.
        (struct gimple_statement_base): Add in_transaction field.
        (struct gimple_statement_base): Add in_transaction field.
        * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
        * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
        transaction loads.
        transaction loads.
        (tree_ssa_lim_initialize): Compute transaction bits.
        (tree_ssa_lim_initialize): Compute transaction bits.
        * tree.h (compute_transaction_bits): Protoize.
        * tree.h (compute_transaction_bits): Protoize.
        * trans-mem.c (tm_region_init): Use the heap to store BB
        * trans-mem.c (tm_region_init): Use the heap to store BB
        auxilliary data.
        auxilliary data.
        (compute_transaction_bits): New.
        (compute_transaction_bits): New.
2012-02-28  Bernhard Reutner-Fischer  
2012-02-28  Bernhard Reutner-Fischer  
        * gcc.c (display_help): Document --help=common and sort entries
        * gcc.c (display_help): Document --help=common and sort entries
        alphabetically.
        alphabetically.
2012-02-28  Bernhard Reutner-Fischer  
2012-02-28  Bernhard Reutner-Fischer  
        * doc/install.texi: Document check-$LANG specific shortcuts
        * doc/install.texi: Document check-$LANG specific shortcuts
2012-02-28  Matthew Gretton-Dann  
2012-02-28  Matthew Gretton-Dann  
        PR target/51534
        PR target/51534
        * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
        * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
        and vcgtu.
        and vcgtu.
        * config/arm/arm_neon.h: Regenerate.
        * config/arm/arm_neon.h: Regenerate.
        * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
        * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
        (neon_vcgeu): New insn.
        (neon_vcgeu): New insn.
        (neon_vcgtu): Likewise.
        (neon_vcgtu): Likewise.
        * config/arm/neon.ml (s_8_32, u_8_32): New lists.
        * config/arm/neon.ml (s_8_32, u_8_32): New lists.
        (ops): Unsigned comparison intrinsics call a different
        (ops): Unsigned comparison intrinsics call a different
        builtin.
        builtin.
2012-02-28  Richard Guenther  
2012-02-28  Richard Guenther  
        PR target/52407
        PR target/52407
        * config/i386/i386.c (ix86_expand_vector_set): Fix element
        * config/i386/i386.c (ix86_expand_vector_set): Fix element
        ordering for the VEC_CONCAT for two element vectors for
        ordering for the VEC_CONCAT for two element vectors for
        V2SFmode, V2SImode and V2DImode.
        V2SFmode, V2SImode and V2DImode.
2012-02-28  Richard Earnshaw  
2012-02-28  Richard Earnshaw  
        PR target/49448
        PR target/49448
        * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
        * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
        detecting big-endian triplets.
        detecting big-endian triplets.
2012-02-28  Richard Earnshaw  
2012-02-28  Richard Earnshaw  
        * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
        * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
        mode if there is no type information available.
        mode if there is no type information available.
2012-02-28  Thomas Koenig  
2012-02-28  Thomas Koenig  
        PR tree-optimization/53207
        PR tree-optimization/53207
        * doc/invoke.texi: Document as experimental and relying on graphite.
        * doc/invoke.texi: Document as experimental and relying on graphite.
2012-02-28  Georg-Johann Lay  
2012-02-28  Georg-Johann Lay  
        * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
        * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
        of initializer to changes from r184614.
        of initializer to changes from r184614.
2012-02-28  Richard Guenther  
2012-02-28  Richard Guenther  
        PR tree-optimization/52395
        PR tree-optimization/52395
        * tree-sra.c (build_ref_for_offset): Also look at the base
        * tree-sra.c (build_ref_for_offset): Also look at the base
        TYPE_ALIGN when figuring out the alignment of the replacement.
        TYPE_ALIGN when figuring out the alignment of the replacement.
2012-02-28  Richard Guenther  
2012-02-28  Richard Guenther  
        PR tree-optimization/52402
        PR tree-optimization/52402
        * ipa-prop.c (ipa_modify_call_arguments): Properly use
        * ipa-prop.c (ipa_modify_call_arguments): Properly use
        mis-aligned types when creating the accesses at the call site.
        mis-aligned types when creating the accesses at the call site.
2012-02-28  Georg-Johann Lay  
2012-02-28  Georg-Johann Lay  
        * config/avr/builtins.def: New file.
        * config/avr/builtins.def: New file.
        * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
        * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
        * config/avr/avr.c (enum avr_builtin_id): Use it.
        * config/avr/avr.c (enum avr_builtin_id): Use it.
        (avr_init_builtins): Use it. And use avr_bdesc.
        (avr_init_builtins): Use it. And use avr_bdesc.
        (bdesc_1arg): Remove.
        (bdesc_1arg): Remove.
        (bdesc_2arg): Remove.
        (bdesc_2arg): Remove.
        (bdesc_3arg): Remove.
        (bdesc_3arg): Remove.
        (struct avr_builtin_description): Add field n_args.
        (struct avr_builtin_description): Add field n_args.
        (avr_bdesc): New static variable using builtins.def.
        (avr_bdesc): New static variable using builtins.def.
        (avr_expand_builtin): Use it.
        (avr_expand_builtin): Use it.
        Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
        Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
        (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
        (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
        Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
        Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
2012-02-28  Georg-Johann Lay  
2012-02-28  Georg-Johann Lay  
        PR target/52148
        PR target/52148
        * config/avr/avr.md (movmem_): Replace match_operand that
        * config/avr/avr.md (movmem_): Replace match_operand that
        match only one single hard register with respective hard reg rtx.
        match only one single hard register with respective hard reg rtx.
        (movmemx_): Ditto.
        (movmemx_): Ditto.
        * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
        * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
        insn anatomy of movmem[x]_.
        insn anatomy of movmem[x]_.
        (avr_out_movmem): Same for printing assembler and operand usage.
        (avr_out_movmem): Same for printing assembler and operand usage.
2012-02-28  Georg-Johann Lay  
2012-02-28  Georg-Johann Lay  
        PR target/49868
        PR target/49868
        PR target/52261
        PR target/52261
        * doc/extend.texi (AVR Named Address Spaces): No more try to fix
        * doc/extend.texi (AVR Named Address Spaces): No more try to fix
        address spaces located outside of device flash.
        address spaces located outside of device flash.
        * config/avr/avr.h (base_arch_s): Remove field n_segments.
        * config/avr/avr.h (base_arch_s): Remove field n_segments.
        (mcu_type_s): Add field n_flash.
        (mcu_type_s): Add field n_flash.
        * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
        * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
        Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
        Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
        (AVR_MCU): Add N_FLASH argument.
        (AVR_MCU): Add N_FLASH argument.
        * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
        * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
        * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
        * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
        macro __FLASH if that address space makes sense for the device.
        macro __FLASH if that address space makes sense for the device.
        * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
        * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
        outside of target flash.
        outside of target flash.
        (avr_asm_named_section): Ditto.
        (avr_asm_named_section): Ditto.
        (avr_asm_select_section): Ditto.
        (avr_asm_select_section): Ditto.
        (avr_addr_space_convert): Ditto.
        (avr_addr_space_convert): Ditto.
        (avr_emit_movmemhi): Ditto.
        (avr_emit_movmemhi): Ditto.
        (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
        (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
        address space is outside of device flash.
        address space is outside of device flash.
        (avr_insert_attributes): Ditto.
        (avr_insert_attributes): Ditto.
        (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
        (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
        avr_current_arch->n_segments.
        avr_current_arch->n_segments.
2012-02-27  H.J. Lu  
2012-02-27  H.J. Lu  
        PR target/52352
        PR target/52352
        * config/i386/i386.md (*movabs_1): Enable only for
        * config/i386/i386.md (*movabs_1): Enable only for
        TARGET_LP64.
        TARGET_LP64.
        (*movabs_2): Likewise.
        (*movabs_2): Likewise.
2012-02-27  Jakub Jelinek  
2012-02-27  Jakub Jelinek  
        PR target/52375
        PR target/52375
        * config/arm/neon.md (vashr3, vlshr3): Use
        * config/arm/neon.md (vashr3, vlshr3): Use
        s_register_operand in the test instead of REG_P.  Don't call
        s_register_operand in the test instead of REG_P.  Don't call
        gen_reg_rtx if it won't be used.
        gen_reg_rtx if it won't be used.
        PR tree-optimization/52376
        PR tree-optimization/52376
        * ipa-split.c (split_function): Ignore CLOBBER stmts.
        * ipa-split.c (split_function): Ignore CLOBBER stmts.
2012-02-27  Stuart Henderson  
2012-02-27  Stuart Henderson  
        * ifcvt.c (noce_get_condition): Check condition variable is not
        * ifcvt.c (noce_get_condition): Check condition variable is not
        small_register_classes_for_mode_p before accepting.
        small_register_classes_for_mode_p before accepting.
2012-02-27  Uros Bizjak  
2012-02-27  Uros Bizjak  
        * config/i386/i386.md (*movabs_1): Fix operand 1 constraints.
        * config/i386/i386.md (*movabs_1): Fix operand 1 constraints.
2012-02-27  Matthew Gretton-Dann  
2012-02-27  Matthew Gretton-Dann  
        Revert:
        Revert:
        2012-01-09  Matthew Gretton-Dann  
        2012-01-09  Matthew Gretton-Dann  
        * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
        * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
        tuning parameters.
        tuning parameters.
        * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
        * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
2012-02-27  Oleg Endo  
2012-02-27  Oleg Endo  
        * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
        * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
2012-02-26  Oleg Endo  
2012-02-26  Oleg Endo  
        * config/sh/predicates.md: Remove blank lines.
        * config/sh/predicates.md: Remove blank lines.
        * config/sh/sh.c: Fix typos in comments.
        * config/sh/sh.c: Fix typos in comments.
        * config/sh/constraints.md: Likewise.
        * config/sh/constraints.md: Likewise.
        * config/sh/sh.md: Remove blank lines.
        * config/sh/sh.md: Remove blank lines.
        Fix typos in comments.  Use ;; as comment characters.
        Fix typos in comments.  Use ;; as comment characters.
2012-02-26  Walter Lee  
2012-02-26  Walter Lee  
        * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
        * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
        (replace_mov_pcrel_step2): Ditto.
        (replace_mov_pcrel_step2): Ditto.
2012-02-25  Alexandre Oliva  
2012-02-25  Alexandre Oliva  
        PR debug/52001
        PR debug/52001
        * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
        * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
        (get_addr): Walk canonical value's locs.  Avoid returning VALUEs
        (get_addr): Walk canonical value's locs.  Avoid returning VALUEs
        and locs that reference values newer than the non-canonical value
        and locs that reference values newer than the non-canonical value
        at hand.  Return the canonical value as a worst case.
        at hand.  Return the canonical value as a worst case.
        (memrefs_conflict_p): Walk canonical value's locs.
        (memrefs_conflict_p): Walk canonical value's locs.
        PR debug/52001
        PR debug/52001
        * cselib.c (preserve_only_constants): Rename to...
        * cselib.c (preserve_only_constants): Rename to...
        (preserve_constants_and_equivs): ... this.  Split out...
        (preserve_constants_and_equivs): ... this.  Split out...
        (invariant_or_equiv_p): ... this.  Preserve plus expressions
        (invariant_or_equiv_p): ... this.  Preserve plus expressions
        of other preserved expressions too.
        of other preserved expressions too.
        (cselib_reset_table): Adjust.
        (cselib_reset_table): Adjust.
        * var-tracking.c (reverse_op): Use canonical value to build
        * var-tracking.c (reverse_op): Use canonical value to build
        reverse operation.
        reverse operation.
2012-02-23  Kai Tietz  
2012-02-23  Kai Tietz  
        * config/i386/i386.c (ix86_delegitimize_address): Handle
        * config/i386/i386.c (ix86_delegitimize_address): Handle
        UNSPEC_PCREL plus displacement.
        UNSPEC_PCREL plus displacement.
2012-02-24  Georg-Johann Lay  
2012-02-24  Georg-Johann Lay  
        PR target/52261
        PR target/52261
        * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
        * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
        to test for unusedness in st X addressing.
        to test for unusedness in st X addressing.
2012-02-24  Richard Guenther  
2012-02-24  Richard Guenther  
        PR middle-end/52361
        PR middle-end/52361
        * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
        * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
        (is_gimple_reg_type): Move inline ...
        (is_gimple_reg_type): Move inline ...
        * gimple.h (is_gimple_reg_type): ... here.
        * gimple.h (is_gimple_reg_type): ... here.
2012-02-24  Richard Guenther  
2012-02-24  Richard Guenther  
        PR middle-end/52361
        PR middle-end/52361
        * passes.c (execute_function_todo): When verifying SSA form
        * passes.c (execute_function_todo): When verifying SSA form
        verify gimple form first.
        verify gimple form first.
        * tree-ssa.c (verify_ssa): Do not verify gimple form here.
        * tree-ssa.c (verify_ssa): Do not verify gimple form here.
2012-02-24  Richard Guenther  
2012-02-24  Richard Guenther  
        PR middle-end/52355
        PR middle-end/52355
        * fold-const.c (fold_addr_of_array_ref_difference): New function.
        * fold-const.c (fold_addr_of_array_ref_difference): New function.
        (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
        (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
2012-02-13  Bernhard Reutner-Fischer  
2012-02-13  Bernhard Reutner-Fischer  
        * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
        * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
2012-02-23  Bernhard Reutner-Fischer  
2012-02-23  Bernhard Reutner-Fischer  
        * tree-phinodes.c (make_phi_node): Mark static.
        * tree-phinodes.c (make_phi_node): Mark static.
        * tree-flow.h (make_phi_node): Remove extern decl.
        * tree-flow.h (make_phi_node): Remove extern decl.
        * doc/gimple.texi (make_phi_node): Remove documentation.
        * doc/gimple.texi (make_phi_node): Remove documentation.
2012-02-23  Bernhard Reutner-Fischer  
2012-02-23  Bernhard Reutner-Fischer  
        * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
        * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
        * tree-ssa-sccvn.c (print_scc): Ditto.
        * tree-ssa-sccvn.c (print_scc): Ditto.
2012-02-23  Bernhard Reutner-Fischer  
2012-02-23  Bernhard Reutner-Fischer  
        * doc/passes.texi (Full redundancy elimination): Fix typo.
        * doc/passes.texi (Full redundancy elimination): Fix typo.
2012-02-23  Bernhard Reutner-Fischer  
2012-02-23  Bernhard Reutner-Fischer  
        * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
        * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
2012-02-23  Eric Botcazou  
2012-02-23  Eric Botcazou  
        PR bootstrap/52287
        PR bootstrap/52287
        * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
        * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
2012-02-23  Uros Bizjak  
2012-02-23  Uros Bizjak  
        PR c/52290
        PR c/52290
        * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
        * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
2012-02-23  Georg-Johann Lay  
2012-02-23  Georg-Johann Lay  
        * config/avr/avr.md (code_stdname): Add ior, xor.
        * config/avr/avr.md (code_stdname): Add ior, xor.
        (xior): New code iterator.
        (xior): New code iterator.
        (*qi.byte0): Use xior instead of ior.
        (*qi.byte0): Use xior instead of ior.
        (*qi.byte1-3): Ditto.
        (*qi.byte1-3): Ditto.
2012-02-23  Jakub Jelinek  
2012-02-23  Jakub Jelinek  
        PR tree-optimization/52019
        PR tree-optimization/52019
        * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
        * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
        CLOBBER stmts.
        CLOBBER stmts.
2012-02-23  Ulrich Weigand  
2012-02-23  Ulrich Weigand  
        * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
        * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
        HAVE_INITFINI_ARRAY to work around namespace pollution in
        HAVE_INITFINI_ARRAY to work around namespace pollution in
        certain versions of newlib system headers.
        certain versions of newlib system headers.
        * config.in: Regenerate.
        * config.in: Regenerate.
        * configure: Regenerate.
        * configure: Regenerate.
        * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
        * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
        instead of HAVE_INITFINI_ARRAY.
        instead of HAVE_INITFINI_ARRAY.
2012-02-22  Uros Bizjak  
2012-02-22  Uros Bizjak  
        PR target/52330
        PR target/52330
        * config/i386/i386.c (ix86_print_operand) : Error out if x
        * config/i386/i386.c (ix86_print_operand) : Error out if x
        is not offsettable memory reference.
        is not offsettable memory reference.
2012-02-22  Georg-Johann Lay  
2012-02-22  Georg-Johann Lay  
        PR target/18145
        PR target/18145
        * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
        * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
        setting avr_need_clear_bss_p for __gnu_lto* symbols.
        setting avr_need_clear_bss_p for __gnu_lto* symbols.
2012-02-22  Georg-Johann Lay  
2012-02-22  Georg-Johann Lay  
        * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
        * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
        * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
        * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
2012-02-22  Rainer Orth  
2012-02-22  Rainer Orth  
        * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
        * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
        library on Solaris 8 even without TLS support.
        library on Solaris 8 even without TLS support.
        * configure: Regenerate.
        * configure: Regenerate.
2012-02-22  Richard Guenther  
2012-02-22  Richard Guenther  
        PR middle-end/52329
        PR middle-end/52329
        * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
        * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
        for GIMPLE_DEBUG stmts.
        for GIMPLE_DEBUG stmts.
2012-02-22  Martin Jambor  
2012-02-22  Martin Jambor  
        PR middle-end/51782
        PR middle-end/51782
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
        according to the base object.
        according to the base object.
2012-02-22  Georg-Johann Lay  
2012-02-22  Georg-Johann Lay  
        PR rtl-optimization/50063
        PR rtl-optimization/50063
        * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
        * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
        and 2 (8-bit SP) in operand 2.
        and 2 (8-bit SP) in operand 2.
        * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
        * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
        setup to use movhi_sp_r instead of vanilla move to write SP.
        setup to use movhi_sp_r instead of vanilla move to write SP.
        Adjust REG_CFA notes to superseed unspec.
        Adjust REG_CFA notes to superseed unspec.
        (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
        (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
        of vanilla move.
        of vanilla move.
        As function body might contain CLI or SEI: Use irq_state 0 (IRQ
        As function body might contain CLI or SEI: Use irq_state 0 (IRQ
        known to be off) only with TARGET_NO_INTERRUPTS. Never use
        known to be off) only with TARGET_NO_INTERRUPTS. Never use
        irq_state 1 (IRQ known to be on) here.
        irq_state 1 (IRQ known to be on) here.
2012-02-21  Bernd Schmidt  
2012-02-21  Bernd Schmidt  
        * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
        * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
        WORDS_BIG_ENDIAN.
        WORDS_BIG_ENDIAN.
        * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
        * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
        assign_hard_reg): Likewise.
        assign_hard_reg): Likewise.
2012-02-21  Georg-Johann Lay  
2012-02-21  Georg-Johann Lay  
        * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
        * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
2012-02-21  Georg-Johann Lay  
2012-02-21  Georg-Johann Lay  
        * config/avr/avr.md
        * config/avr/avr.md
        (*dec-and-branchhi!=-1.d.clobber): New text peephole.
        (*dec-and-branchhi!=-1.d.clobber): New text peephole.
        (*dec-and-branchhi!=-1.l.clobber): New text peephole.
        (*dec-and-branchhi!=-1.l.clobber): New text peephole.
2012-02-21  Georg-Johann Lay  
2012-02-21  Georg-Johann Lay  
        * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
        * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
        prototype from here to...
        prototype from here to...
        * config/avr/avr.h: ...here.
        * config/avr/avr.h: ...here.
2012-02-21  Richard Earnshaw  
2012-02-21  Richard Earnshaw  
        PR target/52294
        PR target/52294
        * thumb2.md (thumb2_shiftsi3_short): Split register and
        * thumb2.md (thumb2_shiftsi3_short): Split register and
        immediate shifts.  For register shifts tie operands 0 and 1.
        immediate shifts.  For register shifts tie operands 0 and 1.
        (peephole2 for above): Check that register-controlled shifts
        (peephole2 for above): Check that register-controlled shifts
        have suitably tied operands.
        have suitably tied operands.
2012-02-21  Quentin Neill  
2012-02-21  Quentin Neill  
        PR target/52137
        PR target/52137
        * config/i386/bdver1.md (bdver1_call, bdver1_push,
        * config/i386/bdver1.md (bdver1_call, bdver1_push,
        bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
        bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
        bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
        bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
        bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
        bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
        bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
        bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
        bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
        bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
        bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
        bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
        bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
        bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
        bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
        bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
        bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
        bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
        bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
        bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
        bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
        bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
        bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
        bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
        bdver1_ssevector_avx256_unaligned_load,
        bdver1_ssevector_avx256_unaligned_load,
        bdver1_ssevector_sse128_unaligned_load,
        bdver1_ssevector_sse128_unaligned_load,
        bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
        bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
        bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
        bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
        bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
        bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
        bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
        bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
        bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
        bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
        bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
        bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
        bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
        bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
        bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
        bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
        bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
        bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
        bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
        bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
        bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
        bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
        bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
        bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
        bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
        bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
        bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
        bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
        bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
        bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
        bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
        bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
        bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
        bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
        bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
        bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
        bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
        bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
        bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
        bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
        bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
        bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
        bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
        bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
        bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
        bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
        bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
        bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
        bdver1_ssediv_double_load, bdver1_ssediv_double,
        bdver1_ssediv_double_load, bdver1_ssediv_double,
        bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
        bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
        Add "bdver2" attribute.
        Add "bdver2" attribute.
2012-02-21  Andreas Krebbel  
2012-02-21  Andreas Krebbel  
        * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
        * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
        default if possible and not specified otherwise.
        default if possible and not specified otherwise.
2012-02-21  Richard Guenther  
2012-02-21  Richard Guenther  
        PR middle-end/52314
        PR middle-end/52314
        * gimplify.c (create_tmp_from_val): Use the main variant type
        * gimplify.c (create_tmp_from_val): Use the main variant type
        for the type of the temporary we create.
        for the type of the temporary we create.
2012-02-21  Richard Guenther  
2012-02-21  Richard Guenther  
        PR tree-optimization/52324
        PR tree-optimization/52324
        * gimplify.c (gimplify_expr): When re-gimplifying expressions
        * gimplify.c (gimplify_expr): When re-gimplifying expressions
        do not gimplify a MEM_REF address operand if it is already
        do not gimplify a MEM_REF address operand if it is already
        in suitable form.
        in suitable form.
2012-02-21  Andreas Krebbel  
2012-02-21  Andreas Krebbel  
        * config/s390/s390.md ("fixuns_truncsi2"): Replace
        * config/s390/s390.md ("fixuns_truncsi2"): Replace
        TARGET_HARD_FLOAT with TARGET_HARD_DFP.
        TARGET_HARD_FLOAT with TARGET_HARD_DFP.
2012-02-21  Richard Guenther  
2012-02-21  Richard Guenther  
        * tree-vect-stmts.c (vectorizable_load): Use pre-computed
        * tree-vect-stmts.c (vectorizable_load): Use pre-computed
        nested_in_vect_loop.
        nested_in_vect_loop.
2012-02-21  Jakub Jelinek  
2012-02-21  Jakub Jelinek  
        PR tree-optimization/52318
        PR tree-optimization/52318
        * gimple-fold.c (gimplify_and_update_call_from_tree): Add
        * gimple-fold.c (gimplify_and_update_call_from_tree): Add
        vdef also to non-pure/const call stmts in the sequence.
        vdef also to non-pure/const call stmts in the sequence.
2012-02-20  David S. Miller  
2012-02-20  David S. Miller  
        * config/sparc/sparc.md (load_pcrel_sym): Explain why we
        * config/sparc/sparc.md (load_pcrel_sym): Explain why we
        don't use the "rd %pc" instruction on v9 for PIC register loads.
        don't use the "rd %pc" instruction on v9 for PIC register loads.
2012-02-20  Aldy Hernandez  
2012-02-20  Aldy Hernandez  
        PR middle-end/52141
        PR middle-end/52141
        * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
        * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
        in a transaction safe function.
        in a transaction safe function.
2012-02-20  Kai Tietz  
2012-02-20  Kai Tietz  
        PR target/52238
        PR target/52238
        * stor-layout.c (place_field): Handle desired_align for
        * stor-layout.c (place_field): Handle desired_align for
        ms-bitfields, too.
        ms-bitfields, too.
2012-02-20  Richard Guenther  
2012-02-20  Richard Guenther  
        PR tree-optimization/52298
        PR tree-optimization/52298
        * tree-vect-stmts.c (vectorizable_store): Properly use
        * tree-vect-stmts.c (vectorizable_store): Properly use
        STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
        STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
        outer loops.
        outer loops.
        (vectorizable_load): Likewise.
        (vectorizable_load): Likewise.
        * tree-vect-data-refs.c (vect_analyze_data_ref_access):
        * tree-vect-data-refs.c (vect_analyze_data_ref_access):
        Access DR_STEP after ensuring it is not NULL.
        Access DR_STEP after ensuring it is not NULL.
2012-02-20  Jakub Jelinek  
2012-02-20  Jakub Jelinek  
        PR tree-optimization/52286
        PR tree-optimization/52286
        * fold-const.c (fold_binary_loc): For (X & C1) | C2
        * fold-const.c (fold_binary_loc): For (X & C1) | C2
        optimization use double_int_to_tree instead of build_int_cst_wide,
        optimization use double_int_to_tree instead of build_int_cst_wide,
        rewrite to use double_int vars.
        rewrite to use double_int vars.
2012-02-20  Rainer Orth  
2012-02-20  Rainer Orth  
        PR target/50166
        PR target/50166
        * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
        * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
        Define _start.
        Define _start.
        Remove -e 0 from $gcc_cv_ld invocation.
        Remove -e 0 from $gcc_cv_ld invocation.
        Only use __GLIBC_PREREQ if defined.
        Only use __GLIBC_PREREQ if defined.
        Enable on Solaris since Solaris 8 patch.
        Enable on Solaris since Solaris 8 patch.
        (gcc_SUN_LD_VERSION): New macro.
        (gcc_SUN_LD_VERSION): New macro.
        * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
        * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
        gcc_SUN_LD_VERSION for version number format.
        gcc_SUN_LD_VERSION for version number format.
        * configure: Regenerate.
        * configure: Regenerate.
        * varasm.c (get_elf_initfini_array_priority_section): Set
        * varasm.c (get_elf_initfini_array_priority_section): Set
        SECTION_NOTYPE for non-default priority.
        SECTION_NOTYPE for non-default priority.
        Use get_section instead of get_unnamed_section to emit
        Use get_section instead of get_unnamed_section to emit
        .init_array/.fini_array with default priority.
        .init_array/.fini_array with default priority.
2012-02-19  Richard Sandiford  
2012-02-19  Richard Sandiford  
        * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
        * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
        (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
        (mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
        (mips_start_unique_function, mips_output_mips16_rdhwr)
        (mips_start_unique_function, mips_output_mips16_rdhwr)
        (mips_code_end): New functions.
        (mips_code_end): New functions.
        (TARGET_ASM_CODE_END): Define.
        (TARGET_ASM_CODE_END): Define.
2012-02-19  Richard Sandiford  
2012-02-19  Richard Sandiford  
        * config/mips/mips.c (mips16_build_call_stub): Add CFI information
        * config/mips/mips.c (mips16_build_call_stub): Add CFI information
        to stubs with non-sibling calls.
        to stubs with non-sibling calls.
2012-02-18  Sandra Loosemore  
2012-02-18  Sandra Loosemore  
        * doc/invoke.texi (-fira-* options): Copy-edit.
        * doc/invoke.texi (-fira-* options): Copy-edit.
        (ira-* parameters): Copy-edit.
        (ira-* parameters): Copy-edit.
2012-02-17  Sandra Loosemore  
2012-02-17  Sandra Loosemore  
        * doc/invoke.texi: Minor copy-edits to bring into conformance with
        * doc/invoke.texi: Minor copy-edits to bring into conformance with
        GCC coding conventions.
        GCC coding conventions.
2012-02-17  Sandra Loosemore  
2012-02-17  Sandra Loosemore  
        * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
        * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
        when used as adjectives.
        when used as adjectives.
2012-02-16  Sandra Loosemore  
2012-02-16  Sandra Loosemore  
        * doc/invoke.texi: Clean up "that"/"which" confusion.
        * doc/invoke.texi: Clean up "that"/"which" confusion.
2012-02-17  Steven Bosscher  
2012-02-17  Steven Bosscher  
        * system.h: Poison SMALL_REGISTER_CLASSES
        * system.h: Poison SMALL_REGISTER_CLASSES
        * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
        * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
        * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
        * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
2012-02-16  Jakub Jelinek  
2012-02-16  Jakub Jelinek  
        PR tree-optimization/52285
        PR tree-optimization/52285
        * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
        * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
        when deciding if a call is a tail call or tail recursion.
        when deciding if a call is a tail call or tail recursion.
2012-02-16  Kai Tietz  
2012-02-16  Kai Tietz  
        * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
        * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
        interger-constant displacement for UNSPEC_PCREL.
        interger-constant displacement for UNSPEC_PCREL.
2012-02-16  Jakub Jelinek  
2012-02-16  Jakub Jelinek  
        PR rtl-optimization/52208
        PR rtl-optimization/52208
        * ira-costs.c (scan_one_insn): Don't decrease mem_cost
        * ira-costs.c (scan_one_insn): Don't decrease mem_cost
        for MEMs with REG_EQUIV, if the MEM isn't general_operand.
        for MEMs with REG_EQUIV, if the MEM isn't general_operand.
        PR tree-optimization/52255
        PR tree-optimization/52255
        * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
        * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
        loop->header has virtual PHI, but exit_e->dest doesn't, add
        loop->header has virtual PHI, but exit_e->dest doesn't, add
        virtual PHI to exit_e->dest and adjust all uses after the loop.
        virtual PHI to exit_e->dest and adjust all uses after the loop.
        PR debug/52260
        PR debug/52260
        * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
        * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
        children with clone_tree_hash, not after it.
        children with clone_tree_hash, not after it.
2012-02-16  Iain Sandoe  
2012-02-16  Iain Sandoe  
        * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
        * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
        extended identifiers.
        extended identifiers.
2012-02-16  Jakub Jelinek  
2012-02-16  Jakub Jelinek  
        PR middle-end/51929
        PR middle-end/51929
        * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
        * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
        a same_body_alias, also test whether e->callee isn't a former
        a same_body_alias, also test whether e->callee isn't a former
        or current clone of the decl this is a same body alias of.
        or current clone of the decl this is a same body alias of.
        PR translation/52264
        PR translation/52264
        * cgraphunit.c (verify_cgraph_node): Fix a typo.
        * cgraphunit.c (verify_cgraph_node): Fix a typo.
2012-02-15  Sandra Loosemore  
2012-02-15  Sandra Loosemore  
        * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
        * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
2012-02-15  Michael Meissner  
2012-02-15  Michael Meissner  
        PR target/52199
        PR target/52199
        * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
        * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
        force_reg instead of copy_to_reg for better optimization.  Force
        force_reg instead of copy_to_reg for better optimization.  Force
        non-register or memory operands into a register.
        non-register or memory operands into a register.
2012-02-15  Andrew MacLeod  
2012-02-15  Andrew MacLeod  
        * extend.texi: Reserve upper bits of memory model for future use.
        * extend.texi: Reserve upper bits of memory model for future use.
2012-01-15  Georg-Johann Lay  
2012-01-15  Georg-Johann Lay  
            Anatoly Sokolov 
            Anatoly Sokolov 
            Eric Weddington 
            Eric Weddington 
        PR target/52261
        PR target/52261
        * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
        * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
        avrxmega4, avrxmega5, avrxmega6, avrxmega7.
        avrxmega4, avrxmega5, avrxmega6, avrxmega7.
        Rewrite initializers for .macro.
        Rewrite initializers for .macro.
        * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
        * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
        avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
        avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
        atxmega32d4, atxmega32x1.
        atxmega32d4, atxmega32x1.
        avrxmega4: atxmega64a3, atxmega64d3.
        avrxmega4: atxmega64a3, atxmega64d3.
        avrxmega5: atxmega64a1, atxmega64a1u.
        avrxmega5: atxmega64a1, atxmega64a1u.
        avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
        avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
        atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
        atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
        avrxmega7: atxmega128a1, atxmega128a1u.
        avrxmega7: atxmega128a1, atxmega128a1u.
        * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
        * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
        ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
        ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
        (struct base_arch_s): Rename reserved to xmega_p.
        (struct base_arch_s): Rename reserved to xmega_p.
        Rename reserved2 to have_rampd.
        Rename reserved2 to have_rampd.
        (AVR_XMEGA): New define.
        (AVR_XMEGA): New define.
        (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
        (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
        (AVR_HAVE_RAMPZ): Change definition to fit xmega.
        (AVR_HAVE_RAMPZ): Change definition to fit xmega.
        * config/avr/predicates.md (io_address_operand): Take into
        * config/avr/predicates.md (io_address_operand): Take into
        account SFR offset.
        account SFR offset.
        (low_io_address_operand): Ditto.
        (low_io_address_operand): Ditto.
        (high_io_address_operand): Ditto.
        (high_io_address_operand): Ditto.
        * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
        * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
        (enabled, movhi_sp_r): Use them.
        (enabled, movhi_sp_r): Use them.
        * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
        * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
        cpp_define_formatted to built-in define __AVR_ARCH__.
        cpp_define_formatted to built-in define __AVR_ARCH__.
        (__AVR_XMEGA__): New built-in define.
        (__AVR_XMEGA__): New built-in define.
        (__AVR_HAVE_RAMPD__): New built-in define.
        (__AVR_HAVE_RAMPD__): New built-in define.
        (__AVR_HAVE_RAMPX__): New built-in define.
        (__AVR_HAVE_RAMPX__): New built-in define.
        (__AVR_HAVE_RAMPY__): New built-in define.
        (__AVR_HAVE_RAMPY__): New built-in define.
        (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
        (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
        * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
        * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
        (avr_option_override): Initialize them.
        (avr_option_override): Initialize them.
        (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
        (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
        (avr_init_expanders): Initialize them. No more block several calls.
        (avr_init_expanders): Initialize them. No more block several calls.
        (emit_push_sfr): New static function.
        (emit_push_sfr): New static function.
        (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
        (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
        Handle AVR_XMEGA.
        Handle AVR_XMEGA.
        (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
        (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
        (avr_print_operand): Print addreeses as symbols for
        (avr_print_operand): Print addreeses as symbols for
        RAMPX, RAMPY, RAMPD, CCP.
        RAMPX, RAMPY, RAMPD, CCP.
        (output_movhi): Handle AVR_XMEGA when writing to SP.
        (output_movhi): Handle AVR_XMEGA when writing to SP.
        (avr_out_movhi_mr_r_xmega): New static function.
        (avr_out_movhi_mr_r_xmega): New static function.
        (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
        (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
        (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
        (avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
        __RAMPD__,  __CCP__ as needed.
        __RAMPD__,  __CCP__ as needed.
        * config/avr/multilib.h: Regenerate.
        * config/avr/multilib.h: Regenerate.
        * config/avr/t-multilib: Regenerate.
        * config/avr/t-multilib: Regenerate.
        * config/avr/avr-tables.opt: Regenerate.
        * config/avr/avr-tables.opt: Regenerate.
2012-02-15  Tobias Grosser 
2012-02-15  Tobias Grosser 
        PR tree-optimization/50561
        PR tree-optimization/50561
        * graphite-flattening.c (lst_project_loop): Do not
        * graphite-flattening.c (lst_project_loop): Do not
        remove old scattering dimensions after flattening.
        remove old scattering dimensions after flattening.
        (lst_do_flatten): Likewise.
        (lst_do_flatten): Likewise.
2012-02-15  Georg-Johann Lay  
2012-02-15  Georg-Johann Lay  
        * doc/extend.texi (AVR Built-in Functions): Remove doc for
        * doc/extend.texi (AVR Built-in Functions): Remove doc for
        __builtin_avr_map8, __builtin_avr_map16.
        __builtin_avr_map8, __builtin_avr_map16.
        Document __builtin_avr_insert_bits.
        Document __builtin_avr_insert_bits.
        * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
        * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
        (insert_bits): New insn.
        (insert_bits): New insn.
        (adjust_len.map_bits): Rename to insert_bits.
        (adjust_len.map_bits): Rename to insert_bits.
        (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
        (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
        * avr-protos.h (avr_out_map_bits): Remove.
        * avr-protos.h (avr_out_map_bits): Remove.
        (avr_out_insert_bits, avr_has_nibble_0xf): New.
        (avr_out_insert_bits, avr_has_nibble_0xf): New.
        * config/avr/constraints.md (Cxf,C0f): New.
        * config/avr/constraints.md (Cxf,C0f): New.
        * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
        * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
        defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
        defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
        New built-in define __BUILTIN_AVR_INSERT_BITS.
        New built-in define __BUILTIN_AVR_INSERT_BITS.
        * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
        * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
        (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
        (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
        (avr_move_bits): Rewrite.
        (avr_move_bits): Rewrite.
        (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
        (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
        functions.
        functions.
        (avr_map_op_t): New typedef.
        (avr_map_op_t): New typedef.
        (avr_map_op): New static variable.
        (avr_map_op): New static variable.
        (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
        (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
        (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
        (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
        (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
        (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
        (bdesc_3arg, avr_expand_triop_builtin): New.
        (bdesc_3arg, avr_expand_triop_builtin): New.
        (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
        (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
        (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
        (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
        (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
        (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
        (avr_map_equal_p, avr_map_sig_p): Remove.
        (avr_map_equal_p, avr_map_sig_p): Remove.
        (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
        (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
        (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
        (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
        (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
        (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
        (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
        (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
        (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
        (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
        (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
        (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
2012-02-14  Bernd Schmidt  
2012-02-14  Bernd Schmidt  
        * config/c6x/c6x.md (reserve_cycles): New attribute.
        * config/c6x/c6x.md (reserve_cycles): New attribute.
        * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
        * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
        don't reserve functional units after the branch occurs.
        don't reserve functional units after the branch occurs.
2012-02-14  Aldy Hernandez  
2012-02-14  Aldy Hernandez  
        PR middle-end/52142
        PR middle-end/52142
        * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
        * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
        functions into non-tm_pure functions.
        functions into non-tm_pure functions.
2012-02-14  Eric Botcazou  
2012-02-14  Eric Botcazou  
        PR lto/52178
        PR lto/52178
        * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
        * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
        (iterative_hash_canonical_type): Likewise.
        (iterative_hash_canonical_type): Likewise.
        * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
        * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
        the dead edges.
        the dead edges.
2012-02-14  Bernd Schmidt  
2012-02-14  Bernd Schmidt  
        * haifa-sched.c (prune_ready_list): Ensure that if there is a
        * haifa-sched.c (prune_ready_list): Ensure that if there is a
        sched-group insn, it either remains alone or the entire list is pruned.
        sched-group insn, it either remains alone or the entire list is pruned.
2012-02-14  Jonathan Wakely  
2012-02-14  Jonathan Wakely  
        * doc/install.texi (Prerequisites): Fix grammar.
        * doc/install.texi (Prerequisites): Fix grammar.
        (Configuration): Likewise.
        (Configuration): Likewise.
2012-02-14  Jonathan Wakely  
2012-02-14  Jonathan Wakely  
        * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
        * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
        MPC as part of GCC before describing configuring with --with-gmp etc.
        MPC as part of GCC before describing configuring with --with-gmp etc.
        (Installing GCC: Configuration): --with-gmp etc. aren't needed if
        (Installing GCC: Configuration): --with-gmp etc. aren't needed if
        sources are present.
        sources are present.
2012-02-14  Jakub Jelinek  
2012-02-14  Jakub Jelinek  
        PR debug/51950
        PR debug/51950
        * dwarf2out.c (clone_tree_hash): New function.
        * dwarf2out.c (clone_tree_hash): New function.
        (copy_decls_walk): Use it instead of clone_tree.
        (copy_decls_walk): Use it instead of clone_tree.
2012-02-14  Richard Guenther  
2012-02-14  Richard Guenther  
        PR tree-optimization/52244
        PR tree-optimization/52244
        PR tree-optimization/51528
        PR tree-optimization/51528
        * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
        * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
        replacements for integral types.
        replacements for integral types.
2012-02-14  Walter Lee  
2012-02-14  Walter Lee  
        * config.gcc: Handle tilegx and tilepro.
        * config.gcc: Handle tilegx and tilepro.
        * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
        * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
        tilegx and tilepro.
        tilegx and tilepro.
        Add HAVE_AS_TLS check for tilegx and tilepro.
        Add HAVE_AS_TLS check for tilegx and tilepro.
        * configure: Regenerate.
        * configure: Regenerate.
        * doc/contrib.texi: Add Mat Hostetter and self.
        * doc/contrib.texi: Add Mat Hostetter and self.
        * doc/extend.texi (TILE-Gx Built-in Functions): New node.
        * doc/extend.texi (TILE-Gx Built-in Functions): New node.
        Document instruction intrinsics and network accessing intrinsics.
        Document instruction intrinsics and network accessing intrinsics.
        (TILEPro Built-in Functions): New node.  Document instruction
        (TILEPro Built-in Functions): New node.  Document instruction
        intrinsics and network accessing intrinsics.
        intrinsics and network accessing intrinsics.
        * doc/install.texi (Specific, tilegx-*-linux*): Document it.
        * doc/install.texi (Specific, tilegx-*-linux*): Document it.
        (Specific, tilepro-*-linux*): Likewise.
        (Specific, tilepro-*-linux*): Likewise.
        * doc/invoke.texi (TILE-Gx Options): New section.
        * doc/invoke.texi (TILE-Gx Options): New section.
        (TILEPro Options): New section.
        (TILEPro Options): New section.
        * doc/md.texi (TILE-Gx): New section.
        * doc/md.texi (TILE-Gx): New section.
        (TILEPro): New section.
        (TILEPro): New section.
        * common/config/tilegx/tilegx-common.c: New file.
        * common/config/tilegx/tilegx-common.c: New file.
        * common/config/tilepro/tilepro-common.c: New file.
        * common/config/tilepro/tilepro-common.c: New file.
        * config/tilegx/constraints.md: New file.
        * config/tilegx/constraints.md: New file.
        * config/tilegx/linux.h: New file.
        * config/tilegx/linux.h: New file.
        * config/tilegx/mul-tables.c: New file.
        * config/tilegx/mul-tables.c: New file.
        * config/tilegx/predicates.md: New file.
        * config/tilegx/predicates.md: New file.
        * config/tilegx/sync.md: New file.
        * config/tilegx/sync.md: New file.
        * config/tilegx/t-tilegx: New file.
        * config/tilegx/t-tilegx: New file.
        * config/tilegx/tilegx-builtins.h: New file.
        * config/tilegx/tilegx-builtins.h: New file.
        * config/tilegx/tilegx-c.c: New file.
        * config/tilegx/tilegx-c.c: New file.
        * config/tilegx/tilegx-generic.md: New file.
        * config/tilegx/tilegx-generic.md: New file.
        * config/tilegx/tilegx-modes.def: New file.
        * config/tilegx/tilegx-modes.def: New file.
        * config/tilegx/tilegx-multiply.h: New file.
        * config/tilegx/tilegx-multiply.h: New file.
        * config/tilegx/tilegx-protos.h: New file.
        * config/tilegx/tilegx-protos.h: New file.
        * config/tilegx/tilegx.c: New file.
        * config/tilegx/tilegx.c: New file.
        * config/tilegx/tilegx.h: New file.
        * config/tilegx/tilegx.h: New file.
        * config/tilegx/tilegx.md: New file.
        * config/tilegx/tilegx.md: New file.
        * config/tilegx/tilegx.opt: New file.
        * config/tilegx/tilegx.opt: New file.
        * config/tilepro/constraints.md: New file.
        * config/tilepro/constraints.md: New file.
        * config/tilepro/gen-mul-tables.cc: New file.
        * config/tilepro/gen-mul-tables.cc: New file.
        * config/tilepro/linux.h: New file.
        * config/tilepro/linux.h: New file.
        * config/tilepro/mul-tables.c: New file.
        * config/tilepro/mul-tables.c: New file.
        * config/tilepro/predicates.md: New file.
        * config/tilepro/predicates.md: New file.
        * config/tilepro/t-tilepro: New file.
        * config/tilepro/t-tilepro: New file.
        * config/tilepro/tilepro-builtins.h: New file.
        * config/tilepro/tilepro-builtins.h: New file.
        * config/tilepro/tilepro-c.c: New file.
        * config/tilepro/tilepro-c.c: New file.
        * config/tilepro/tilepro-generic.md: New file.
        * config/tilepro/tilepro-generic.md: New file.
        * config/tilepro/tilepro-modes.def: New file.
        * config/tilepro/tilepro-modes.def: New file.
        * config/tilepro/tilepro-multiply.h: New file.
        * config/tilepro/tilepro-multiply.h: New file.
        * config/tilepro/tilepro-protos.h: New file.
        * config/tilepro/tilepro-protos.h: New file.
        * config/tilepro/tilepro.c: New file.
        * config/tilepro/tilepro.c: New file.
        * config/tilepro/tilepro.h: New file.
        * config/tilepro/tilepro.h: New file.
        * config/tilepro/tilepro.md: New file.
        * config/tilepro/tilepro.md: New file.
        * config/tilepro/tilepro.opt: New file.
        * config/tilepro/tilepro.opt: New file.
2012-02-14  Jakub Jelinek  
2012-02-14  Jakub Jelinek  
        PR tree-optimization/52210
        PR tree-optimization/52210
        * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
        * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
        vect_model_simple_cost with two entry vect_def_type array instead
        vect_model_simple_cost with two entry vect_def_type array instead
        of an address of dt.
        of an address of dt.
2012-02-14  Richard Guenther  
2012-02-14  Richard Guenther  
        PR lto/52178
        PR lto/52178
        * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
        * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
        Do not stream DECL_QUALIFIER.
        Do not stream DECL_QUALIFIER.
        * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
        * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
        * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
        * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
        (find_decls_types_r): Do not walk DECL_QUALIFIER.
        (find_decls_types_r): Do not walk DECL_QUALIFIER.
2012-02-14  Jakub Jelinek  
2012-02-14  Jakub Jelinek  
        PR c/52181
        PR c/52181
        * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
        * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
        newdecl.
        newdecl.
2012-02-13  Jakub Jelinek  
2012-02-13  Jakub Jelinek  
        PR bootstrap/52172
        PR bootstrap/52172
        * cselib.h (cselib_subst_to_values_from_insn): New prototype.
        * cselib.h (cselib_subst_to_values_from_insn): New prototype.
        * cselib.c (cselib_subst_to_values_from_insn): New function.
        * cselib.c (cselib_subst_to_values_from_insn): New function.
        * sched-deps.c (add_insn_mem_dependence,
        * sched-deps.c (add_insn_mem_dependence,
        sched_analyze_1, sched_analyze_2): Use it.
        sched_analyze_1, sched_analyze_2): Use it.
2012-02-13  Jan Hubicka  
2012-02-13  Jan Hubicka  
        PR middle-end/52214
        PR middle-end/52214
        * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
        * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
2012-02-13  Eric Botcazou  
2012-02-13  Eric Botcazou  
        * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
        * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
        (GTM_SELF_SPECS): Define if not already defined.
        (GTM_SELF_SPECS): Define if not already defined.
        (driver_self_specs): Add GTM_SELF_SPECS.
        (driver_self_specs): Add GTM_SELF_SPECS.
        * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
        * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
        (GTM_SELF_SPECS): Define.
        (GTM_SELF_SPECS): Define.
        * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
        * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
        * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
        * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
2012-02-13  Jakub Jelinek  
2012-02-13  Jakub Jelinek  
        * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
        * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
        away if seen.
        away if seen.
        * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
        * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
        PR middle-end/52230
        PR middle-end/52230
        * omp-low.c (expand_omp_for): If a static schedule without chunk size
        * omp-low.c (expand_omp_for): If a static schedule without chunk size
        has NULL region->cont, force fd.chunk_size to be integer_zero_node.
        has NULL region->cont, force fd.chunk_size to be integer_zero_node.
2012-02-13  Andrew MacLeod  
2012-02-13  Andrew MacLeod  
        PR c/52190
        PR c/52190
        * doc/extend.texi : Fix another __atomic_compare_exchange typo.
        * doc/extend.texi : Fix another __atomic_compare_exchange typo.
2012-02-13  Richard Guenther  
2012-02-13  Richard Guenther  
        PR translation/52211
        PR translation/52211
        * passes.c (enable_disable_pass): Fix typo.
        * passes.c (enable_disable_pass): Fix typo.
2012-02-13  Jakub Jelinek  
2012-02-13  Jakub Jelinek  
        PR middle-end/52209
        PR middle-end/52209
        * expr.c (expand_expr_real_2) : Only expand using
        * expr.c (expand_expr_real_2) : Only expand using
        XOR for reduce_bit_field if type is unsigned.
        XOR for reduce_bit_field if type is unsigned.
2012-02-12  Eric Botcazou  
2012-02-12  Eric Botcazou  
        * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
        * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
        disallow changes from SFmode to mode with different size in FP regs.
        disallow changes from SFmode to mode with different size in FP regs.
2012-02-12  Robert Millan  
2012-02-12  Robert Millan  
            Gerald Pfeifer 
            Gerald Pfeifer 
        * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
        * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
        Tweak comment.
        Tweak comment.
2012-02-11  Richard Sandiford  
2012-02-11  Richard Sandiford  
        PR rtl-optimization/52175
        PR rtl-optimization/52175
        * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
        * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
        to frame-related instructions.
        to frame-related instructions.
2012-02-10  Jason Merrill  
2012-02-10  Jason Merrill  
        PR c++/51910
        PR c++/51910
        * tlink.c (demangled_hash_entry): Change mangled to a VEC.
        * tlink.c (demangled_hash_entry): Change mangled to a VEC.
        (demangle_new_symbols): Fill it.
        (demangle_new_symbols): Fill it.
        (scan_linker_output): Walk it.
        (scan_linker_output): Walk it.
        (start_tweaking): Split out from scan_linker_output.
        (start_tweaking): Split out from scan_linker_output.
        (maybe_tweak): Update sym->chosen.
        (maybe_tweak): Update sym->chosen.
        * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
        * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
2012-02-11  Jakub Jelinek  
2012-02-11  Jakub Jelinek  
        PR debug/52132
        PR debug/52132
        * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
        * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
2012-02-11  Uros Bizjak  
2012-02-11  Uros Bizjak  
        * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
        * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
        having the same mode as previous compare.
        having the same mode as previous compare.
2012-02-10  Eric Botcazou  
2012-02-10  Eric Botcazou  
        * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
        * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
        * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
        * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
        (nonlocal_goto_internal): Likewise.
        (nonlocal_goto_internal): Likewise.
        (nonlocal_goto): Emit a use and an indirect jump directly.
        (nonlocal_goto): Emit a use and an indirect jump directly.
2012-02-10  Andrew MacLeod  
2012-02-10  Andrew MacLeod  
        PR c/52190
        PR c/52190
        * doc/extend.texi : Update comments for __atomic_compare_exchange and
        * doc/extend.texi : Update comments for __atomic_compare_exchange and
        __atomic_{is,always}_lock_free.
        __atomic_{is,always}_lock_free.
2012-02-10  Uros Bizjak  
2012-02-10  Uros Bizjak  
        PR target/52146
        PR target/52146
        * config/i386/i386.c (ix86_legitimate_address_p): Disallow
        * config/i386/i386.c (ix86_legitimate_address_p): Disallow
        negative constant address for x32.
        negative constant address for x32.
2012-02-10  Richard Henderson  
2012-02-10  Richard Henderson  
        * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
        * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
        * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
        * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
        for GIMPLE_TRANSACTION.  Tidy if's into a switch.
        for GIMPLE_TRANSACTION.  Tidy if's into a switch.
2012-02-10  Bill Schmidt  
2012-02-10  Bill Schmidt  
            Ira Rosen  
            Ira Rosen  
        PR tree-optimization/50031
        PR tree-optimization/50031
        * targhooks.c (default_builtin_vectorization_cost): Handle
        * targhooks.c (default_builtin_vectorization_cost): Handle
        vec_promote_demote.
        vec_promote_demote.
        * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
        * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
        * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
        * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
        all types of reduction and pattern statements.
        all types of reduction and pattern statements.
        (vect_estimate_min_profitable_iters): Likewise.
        (vect_estimate_min_profitable_iters): Likewise.
        * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
        * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
        (vect_get_load_cost): Use vec_perm for permutations; add dump logic
        (vect_get_load_cost): Use vec_perm for permutations; add dump logic
        for explicit realigns.
        for explicit realigns.
        (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
        (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
        * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
        * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
        vec_promote_demote.
        vec_promote_demote.
        * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
        * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
        * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
        * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
        vec_perm for VSX and handle vec_promote_demote.
        vec_perm for VSX and handle vec_promote_demote.
2012-02-10  Jakub Jelinek  
2012-02-10  Jakub Jelinek  
        PR middle-end/52177
        PR middle-end/52177
        * builtins.c (fold_builtin_atomic_always_lock_free,
        * builtins.c (fold_builtin_atomic_always_lock_free,
        expand_builtin_atomic_always_lock_free,
        expand_builtin_atomic_always_lock_free,
        fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
        fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
        Return and/or test boolean_true_node/boolean_false_node instead of
        Return and/or test boolean_true_node/boolean_false_node instead of
        integer_one_node/integer_zero_node.
        integer_one_node/integer_zero_node.
2012-02-10  Jan Hubicka  
2012-02-10  Jan Hubicka  
        PR middle-end/48600
        PR middle-end/48600
        * predict.c (predict_paths_for_bb): Prevent looping.
        * predict.c (predict_paths_for_bb): Prevent looping.
        (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
        (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
2012-02-10  Roman Zhuykov  
2012-02-10  Roman Zhuykov  
        * config/arm/arm.c (output_move_double): In one case properly
        * config/arm/arm.c (output_move_double): In one case properly
        count number of instructions that will be emitted.
        count number of instructions that will be emitted.
2012-02-10  Richard Guenther  
2012-02-10  Richard Guenther  
        PR translation/52193
        PR translation/52193
        * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
        * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
2012-02-09  Peter Bergner  
2012-02-09  Peter Bergner  
        PR middle-end/52140
        PR middle-end/52140
        * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
        * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
2012-02-09  Jakub Jelinek  
2012-02-09  Jakub Jelinek  
        PR debug/52165
        PR debug/52165
        * var-tracking.c (emit_note_insn_var_location): If
        * var-tracking.c (emit_note_insn_var_location): If
        EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
        EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
        emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
        emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
        non-NOTE_DURING_CALL_P insn.
        non-NOTE_DURING_CALL_P insn.
2012-02-09  Bin Cheng  
2012-02-09  Bin Cheng  
        PR middle-end/51867
        PR middle-end/51867
        * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
        * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
2012-02-08  Magnus Granberg  
2012-02-08  Magnus Granberg  
        PR driver/48524
        PR driver/48524
        * gcc.c (switch_matches) Support switches with separated form,
        * gcc.c (switch_matches) Support switches with separated form,
        -D and -U.
        -D and -U.
2012-02-08  Georg-Johann Lay  
2012-02-08  Georg-Johann Lay  
        * config/avr/avr.md (SREG_ADDR): Remove constant definition.
        * config/avr/avr.md (SREG_ADDR): Remove constant definition.
        (SP_ADDR): Ditto.
        (SP_ADDR): Ditto.
        (RAMPZ_ADDR): Ditto.
        (RAMPZ_ADDR): Ditto.
        * config/avr/avr.c (avr_addr_t): New typedef.
        * config/avr/avr.c (avr_addr_t): New typedef.
        (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
        (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
        (avr_init_expanders): Initialize it.
        (avr_init_expanders): Initialize it.
        (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
        (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
        SREG_ADDR.
        SREG_ADDR.
        (expand_epilogue): Ditto.
        (expand_epilogue): Ditto.
        (avr_print_operand): Ditto.
        (avr_print_operand): Ditto.
        (avr_file_start): Ditto.
        (avr_file_start): Ditto.
        (avr_emit_movmemhi): Ditto.
        (avr_emit_movmemhi): Ditto.
2012-02-08  Richard Guenther  
2012-02-08  Richard Guenther  
        PR tree-optimization/46886
        PR tree-optimization/46886
        * tree-flow.h (do_while_loop_p): Declare.
        * tree-flow.h (do_while_loop_p): Declare.
        * tree-ssa-loop-ch.c (do_while_loop_p): Export.
        * tree-ssa-loop-ch.c (do_while_loop_p): Export.
        * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
        * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
2012-02-08  Andrew MacLeod  
2012-02-08  Andrew MacLeod  
        * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
        * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
        always succeed for integers larger than a native word.
        always succeed for integers larger than a native word.
2012-02-08  Richard Guenther  
2012-02-08  Richard Guenther  
        PR rtl-optimization/52170
        PR rtl-optimization/52170
        * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
        * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
        properly handle integer vector modes.
        properly handle integer vector modes.
2012-02-08  Jakub Jelinek  
2012-02-08  Jakub Jelinek  
        PR gcov-profile/52150
        PR gcov-profile/52150
        * coverage.c: Include target.h.
        * coverage.c: Include target.h.
        (build_var): Call targetm.strip_name_encoding on the assembler name.
        (build_var): Call targetm.strip_name_encoding on the assembler name.
        Change one _ into . or $ if the target allows it.
        Change one _ into . or $ if the target allows it.
        * Makefile.in (coverage.o): Depend on $(TARGET_H).
        * Makefile.in (coverage.o): Depend on $(TARGET_H).
        PR rtl-optimization/52139
        PR rtl-optimization/52139
        * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
        * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
        is a BARRIER after emit_insn_after_noloc, move BB_END
        is a BARRIER after emit_insn_after_noloc, move BB_END
        to the last non-BARRIER insn before it.
        to the last non-BARRIER insn before it.
2012-02-07  Richard Sandiford  
2012-02-07  Richard Sandiford  
        PR middle-end/24306
        PR middle-end/24306
        * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
        * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
        (mips_gimplify_va_arg_expr): Call it instead of
        (mips_gimplify_va_arg_expr): Call it instead of
        std_gimplify_va_arg_expr.
        std_gimplify_va_arg_expr.
2012-02-07  Michael Meissner  
2012-02-07  Michael Meissner  
        * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
        * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
        message for -mno-pointers-to-nested-function.
        message for -mno-pointers-to-nested-function.
2012-02-07  Eric Botcazou  
2012-02-07  Eric Botcazou  
        PR middle-end/51994
        PR middle-end/51994
        * expr.c (get_inner_reference): If there is an offset, add a negative
        * expr.c (get_inner_reference): If there is an offset, add a negative
        bit position to it (if any).
        bit position to it (if any).
2012-02-07  Jakub Jelinek  
2012-02-07  Jakub Jelinek  
        PR rtl-optimization/52060
        PR rtl-optimization/52060
        * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
        * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
        copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
        copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
        before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
        before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
        and/or i0src_copy2 when needed.
        and/or i0src_copy2 when needed.
2012-02-07  Jakub Jelinek  
2012-02-07  Jakub Jelinek  
        * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
        * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
        or LTOPLUGINSONAME if have_c.
        or LTOPLUGINSONAME if have_c.
        * config/freebsd-spec.h: Add comment about what macros can be defined
        * config/freebsd-spec.h: Add comment about what macros can be defined
        in this header.
        in this header.
        (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
        (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
        * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
        * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
        here instead.
        here instead.
2012-02-07  Richard Guenther  
2012-02-07  Richard Guenther  
        * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
        * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
        newline in -alias dumps.
        newline in -alias dumps.
2012-02-07  Kai Tietz  
2012-02-07  Kai Tietz  
            Dave Korn  
            Dave Korn  
        PR target/40068
        PR target/40068
        * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
        * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
        Take care that typinfo gets dllexport-attribute.
        Take care that typinfo gets dllexport-attribute.
2012-02-07  Jakub Jelinek  
2012-02-07  Jakub Jelinek  
        PR middle-end/52074
        PR middle-end/52074
        * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
        * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
        if modifier < EXPAND_SUM call force_operand on the result.
        if modifier < EXPAND_SUM call force_operand on the result.
2012-02-07  Joern Rennecke  
2012-02-07  Joern Rennecke  
        * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
        * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
        adding __forwarder_dst__ prefix if a forwarder_section attribute is
        adding __forwarder_dst__ prefix if a forwarder_section attribute is
        present.
        present.
        (epiphany_function_type): Replace types for specific interrupts with
        (epiphany_function_type): Replace types for specific interrupts with
        EPIPHANY_FUNCTION_INTERRUPT.
        EPIPHANY_FUNCTION_INTERRUPT.
        (EPIPHANY_INTERRUPT_P): Update.
        (EPIPHANY_INTERRUPT_P): Update.
        * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
        * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
        New static function.
        New static function.
        (epiphany_attribute_table) : min_len is 0, max_len is 9.
        (epiphany_attribute_table) : min_len is 0, max_len is 9.
        : Affects type identity.
        : Affects type identity.
        (epiphany_handle_interrupt_attribute): Handle variable number of
        (epiphany_handle_interrupt_attribute): Handle variable number of
        arguments.
        arguments.
        (epiphany_compute_function_type): Update for new
        (epiphany_compute_function_type): Update for new
        epiphany_function_type definition.
        epiphany_function_type definition.
        (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
        (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
        handlers with a longcall forwarder.
        handlers with a longcall forwarder.
        (epiphany_start_function): Handle multiple interrupt arguments and/or
        (epiphany_start_function): Handle multiple interrupt arguments and/or
        forwarder_section attribute.
        forwarder_section attribute.
        * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
        * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
        libgloss.
        libgloss.
2012-02-07  Alan Modra  
2012-02-07  Alan Modra  
        PR target/52107
        PR target/52107
        * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
        * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
        subregs of TFmode.
        subregs of TFmode.
2012-02-06  Bill Schmidt  
2012-02-06  Bill Schmidt  
        PR tree-optimization/50969
        PR tree-optimization/50969
        * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
        * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
        use vec_perm rather than vector_stmt.
        use vec_perm rather than vector_stmt.
        (vect_model_load_cost): Likewise.
        (vect_model_load_cost): Likewise.
        * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
        * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
        vec_perm to be the same as other vector statements.
        vec_perm to be the same as other vector statements.
        * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
        * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
        cost of vec_perm for TARGET_VSX.
        cost of vec_perm for TARGET_VSX.
2012-02-06  Richard Guenther  
2012-02-06  Richard Guenther  
        PR tree-optimization/52115
        PR tree-optimization/52115
        * tree-sra.c (access_has_replacements_p): New function.
        * tree-sra.c (access_has_replacements_p): New function.
        (sra_modify_assign): Use it to decide whether a use is uninitialized.
        (sra_modify_assign): Use it to decide whether a use is uninitialized.
2012-02-06  Patrick Marlier  
2012-02-06  Patrick Marlier  
        PR middle-end/52047
        PR middle-end/52047
        * trans-mem.c (expand_call_tm): Add an assertion.
        * trans-mem.c (expand_call_tm): Add an assertion.
        * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
        * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
        functions.
        functions.
2012-02-06  Richard Guenther  
2012-02-06  Richard Guenther  
        PR tree-optimization/50955
        PR tree-optimization/50955
        * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
        * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
        raise cost of expressions that replace an address with an
        raise cost of expressions that replace an address with an
        expression based on a different pointer.
        expression based on a different pointer.
2012-02-06  Jakub Jelinek  
2012-02-06  Jakub Jelinek  
        PR target/52129
        PR target/52129
        * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
        * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
        CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
        CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
2012-02-06  Jonathan Wakely  
2012-02-06  Jonathan Wakely  
        PR c++/48680
        PR c++/48680
        * doc/invoke.texi (C++ Dialect Options): Use @option markup for
        * doc/invoke.texi (C++ Dialect Options): Use @option markup for
        -Weffc++ and specify guidelines come from second edition.
        -Weffc++ and specify guidelines come from second edition.
2012-02-05  Richard Sandiford  
2012-02-05  Richard Sandiford  
        * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
        * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
        (sibcall_value_multiple_internal, call_split, call_internal_direct)
        (sibcall_value_multiple_internal, call_split, call_internal_direct)
        (call_direct_split, call_value_split, call_value_internal_direct)
        (call_direct_split, call_value_split, call_value_internal_direct)
        (call_value_direct_split, call_value_multiple_split): Use jal and
        (call_value_direct_split, call_value_multiple_split): Use jal and
        jal_macro attributes.
        jal_macro attributes.
2012-02-05  Richard Sandiford  
2012-02-05  Richard Sandiford  
        * reload1.c (reload_regs_reach_end_p): Replace with...
        * reload1.c (reload_regs_reach_end_p): Replace with...
        (reload_reg_rtx_reaches_end_p): ...this function.
        (reload_reg_rtx_reaches_end_p): ...this function.
        (new_spill_reg_store): Update commentary.
        (new_spill_reg_store): Update commentary.
        (emit_input_reload_insns): Don't clear new_spill_reg_store here.
        (emit_input_reload_insns): Don't clear new_spill_reg_store here.
        (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
        (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
        before setting new_spill_reg_store.
        before setting new_spill_reg_store.
        (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
        (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
        Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
        Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
        Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
        Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
        for non-spill reload registers.
        for non-spill reload registers.
2012-02-05  Ira Rosen  
2012-02-05  Ira Rosen  
        PR tree-optimization/52091
        PR tree-optimization/52091
        * tree-vectorizer.h (vect_is_simple_use): Add an argument.
        * tree-vectorizer.h (vect_is_simple_use): Add an argument.
        (vect_is_simple_use_1): Likewise.
        (vect_is_simple_use_1): Likewise.
        * tree-vect-loop.c (vectorizable_reduction): Update calls
        * tree-vect-loop.c (vectorizable_reduction): Update calls
        to vect_is_simple_use_1 and vect_is_simple_use.
        to vect_is_simple_use_1 and vect_is_simple_use.
        (vectorizable_live_operation): Likewise.
        (vectorizable_live_operation): Likewise.
        * tree-vect-patterns.c (widened_name_p,
        * tree-vect-patterns.c (widened_name_p,
        vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
        vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
        * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
        * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
        vectorizable_call, vectorizable_conversion, vectorizable_assignment,
        vectorizable_call, vectorizable_conversion, vectorizable_assignment,
        vectorizable_shift,vectorizable_operation, vectorizable_store,
        vectorizable_shift,vectorizable_operation, vectorizable_store,
        vectorizable_load): Likewise.
        vectorizable_load): Likewise.
        (vect_is_simple_cond): Add an argument, pass it to
        (vect_is_simple_cond): Add an argument, pass it to
        vect_is_simple_use_1.
        vect_is_simple_use_1.
        (vectorizable_condition): Update calls to vect_is_simple_cond,
        (vectorizable_condition): Update calls to vect_is_simple_cond,
        vect_is_simple_use.
        vect_is_simple_use.
        (vect_is_simple_use): Add an argument, the statement in which
        (vect_is_simple_use): Add an argument, the statement in which
        OPERAND is used.  Check that if OPERAND's def stmt is a double
        OPERAND is used.  Check that if OPERAND's def stmt is a double
        reduction phi node, the use is a phi node too.
        reduction phi node, the use is a phi node too.
        (vect_is_simple_use_1): Add an argument, pass it to
        (vect_is_simple_use_1): Add an argument, pass it to
        vect_is_simple_use.
        vect_is_simple_use.
        * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
        * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
        to vect_is_simple_use.
        to vect_is_simple_use.
2012-02-04  Jakub Jelinek  
2012-02-04  Jakub Jelinek  
        PR rtl-optimization/52095
        PR rtl-optimization/52095
        * modulo-sched.c (dump_insn_locator): New function.
        * modulo-sched.c (dump_insn_locator): New function.
        (loop_canon_p, sms_schedule): Use it.
        (loop_canon_p, sms_schedule): Use it.
        PR rtl-optimization/52113
        PR rtl-optimization/52113
        * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
        * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
        even for decomposable shift/zext insns.
        even for decomposable shift/zext insns.
2012-02-03  Jakub Jelinek  
2012-02-03  Jakub Jelinek  
            Zdenek Dvorak  
            Zdenek Dvorak  
        PR rtl-optimization/52092
        PR rtl-optimization/52092
        * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
        * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
        on get_iv_value result.
        on get_iv_value result.
2012-02-02  Andrew Pinski  
2012-02-02  Andrew Pinski  
        PR middle-end/47982
        PR middle-end/47982
        PR middle-end/43967
        PR middle-end/43967
        * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
        * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
2012-02-02  Jakub Jelinek  
2012-02-02  Jakub Jelinek  
        PR middle-end/48071
        PR middle-end/48071
        * diagnostic.c (diagnostic_finish): Remove trailing newlines.
        * diagnostic.c (diagnostic_finish): Remove trailing newlines.
2012-02-02  Vladimir Makarov  
2012-02-02  Vladimir Makarov  
        PR rtl-optimization/49800
        PR rtl-optimization/49800
        * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
        * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
        (sched_finish): Call regstat_free_n_sets_and_refs.
        (sched_finish): Call regstat_free_n_sets_and_refs.
2012-02-02  Jia Liu  
2012-02-02  Jia Liu  
        * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
        * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
        than operand 2.
        than operand 2.
2012-02-02  Jan Hubicka  
2012-02-02  Jan Hubicka  
            Tom de Vries  
            Tom de Vries  
        PR middle-end/51998
        PR middle-end/51998
        * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
        * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
        * varpool.c (varpool_analyze_pending_decls): Likewise.
        * varpool.c (varpool_analyze_pending_decls): Likewise.
2012-02-02  Sumanth G 
2012-02-02  Sumanth G 
            Jayant R Sonar 
            Jayant R Sonar 
        * config.gcc: Add cr16-* support.
        * config.gcc: Add cr16-* support.
        * doc/extend.texi: Document cr16 extensions.
        * doc/extend.texi: Document cr16 extensions.
        * doc/install.texi: Document cr16 install.
        * doc/install.texi: Document cr16 install.
        * doc/invoke.texi: Document cr16 options.
        * doc/invoke.texi: Document cr16 options.
        * doc/md.texi: Document cr16 constraints.
        * doc/md.texi: Document cr16 constraints.
        * common/config/cr16/cr16-common.c: New file.
        * common/config/cr16/cr16-common.c: New file.
        * config/cr16/cr16.c: New file.
        * config/cr16/cr16.c: New file.
        * config/cr16/cr16.h: New file.
        * config/cr16/cr16.h: New file.
        * config/cr16/cr16.md: New file.
        * config/cr16/cr16.md: New file.
        * config/cr16/cr16.opt: New file.
        * config/cr16/cr16.opt: New file.
        * config/cr16/cr16-protos.h: New file.
        * config/cr16/cr16-protos.h: New file.
        * config/cr16/predicates.md: New file.
        * config/cr16/predicates.md: New file.
        * config/cr16/constraints.md: New file.
        * config/cr16/constraints.md: New file.
        * config/cr16/t-cr16: New file.
        * config/cr16/t-cr16: New file.
2012-02-02  Jakub Jelinek  
2012-02-02  Jakub Jelinek  
        PR target/52086
        PR target/52086
        * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
        * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
        that operands[2] is either immediate, or q_regs_operand.
        that operands[2] is either immediate, or q_regs_operand.
        PR tree-optimization/52073
        PR tree-optimization/52073
        * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
        * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
        a pattern stmt for pattern uses, ignore uses outside of the loop.
        a pattern stmt for pattern uses, ignore uses outside of the loop.
2012-02-01  Georg-Johann Lay  
2012-02-01  Georg-Johann Lay  
        * config/avr/avr.c: Resolve all AS1 and AS2 macros.
        * config/avr/avr.c: Resolve all AS1 and AS2 macros.
        * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
        * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
        (OUT_AS1, OUT_AS2): Remove.
        (OUT_AS1, OUT_AS2): Remove.
2012-02-01  Georg-Johann Lay  
2012-02-01  Georg-Johann Lay  
        PR rtl-optimization/51374
        PR rtl-optimization/51374
        * combine.c (can_combine_p): Don't allow volatile_refs_p insns
        * combine.c (can_combine_p): Don't allow volatile_refs_p insns
        to cross other volatile_refs_p insns.
        to cross other volatile_refs_p insns.
2012-02-01  Richard Guenther  
2012-02-01  Richard Guenther  
        * doc/invoke.texi (fno-inline): Clarify documentation.
        * doc/invoke.texi (fno-inline): Clarify documentation.
        (finline-small-functions): Likewise.
        (finline-small-functions): Likewise.
        (finline-functions): Likewise.
        (finline-functions): Likewise.
        * common.opt (finline): Adjust comment and documentation.
        * common.opt (finline): Adjust comment and documentation.
        (finline-small-functions): Clarify documentation.
        (finline-small-functions): Clarify documentation.
        (finline-functions): Likewise.
        (finline-functions): Likewise.
        (finline-functions-called-once): Likewise.
        (finline-functions-called-once): Likewise.
2012-02-01  Tristan Gingold  
2012-02-01  Tristan Gingold  
        * c-typeck.c (composite_type): Keep mode for pointers.
        * c-typeck.c (composite_type): Keep mode for pointers.
2012-01-31  Richard Sandiford  
2012-01-31  Richard Sandiford  
        * function.h (regno_reg_rtx): Adjust comment.
        * function.h (regno_reg_rtx): Adjust comment.
        * reginfo.c (init_reg_modes_target): Only use the previous mode
        * reginfo.c (init_reg_modes_target): Only use the previous mode
        if it fits within one register.  Remove MIPS comment.
        if it fits within one register.  Remove MIPS comment.
2012-01-31  Jakub Jelinek  
2012-01-31  Jakub Jelinek  
        PR bootstrap/52058
        PR bootstrap/52058
        * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
        * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
2012-01-31  Andreas Krebbel  
2012-01-31  Andreas Krebbel  
        * config/s390/s390.md ("*ashr3_and"): Add missing z196 flag
        * config/s390/s390.md ("*ashr3_and"): Add missing z196 flag
        to srak instruction.
        to srak instruction.
2012-01-31  Matthew Gretton-Dann  
2012-01-31  Matthew Gretton-Dann  
        * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
        * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
2012-01-31  Jakub Jelinek  
2012-01-31  Jakub Jelinek  
        PR bootstrap/52041
        PR bootstrap/52041
        PR bootstrap/52039
        PR bootstrap/52039
        PR target/51974
        PR target/51974
        * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
        * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
2012-01-31  Richard Guenther  
2012-01-31  Richard Guenther  
        PR tree-optimization/51528
        PR tree-optimization/51528
        * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
        * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
        assigns.
        assigns.
2012-01-31  Jakub Jelinek  
2012-01-31  Jakub Jelinek  
        PR bootstrap/52041
        PR bootstrap/52041
        PR bootstrap/52039
        PR bootstrap/52039
        PR target/51974
        PR target/51974
        * ree.c (add_removable_extension): Change def_map argument
        * ree.c (add_removable_extension): Change def_map argument
        to unsigned *, store in def_map 1 + offset into *insn_list vector
        to unsigned *, store in def_map 1 + offset into *insn_list vector
        instead of pointers into the vector.
        instead of pointers into the vector.
        (find_removable_extensions): Adjust caller.
        (find_removable_extensions): Adjust caller.
2012-01-30  Georg-Johann Lay  
2012-01-30  Georg-Johann Lay  
        * config/avr/avr.md: Resolve all AS1 and AS2 macros.
        * config/avr/avr.md: Resolve all AS1 and AS2 macros.
        Transform all "* quoted-c-code" to { c-code }.
        Transform all "* quoted-c-code" to { c-code }.
        Remove redundant test for "optimize" in combine patterns.
        Remove redundant test for "optimize" in combine patterns.
        Move (include "avr-dimode.md") to end of file.
        Move (include "avr-dimode.md") to end of file.
2012-01-30  Bin Cheng  
2012-01-30  Bin Cheng  
        PR target/51835
        PR target/51835
        * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
        * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
        for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
        for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
2012-01-30  Richard Guenther  
2012-01-30  Richard Guenther  
        PR tree-optimization/52028
        PR tree-optimization/52028
        * tree-loop-distribution.c (ldist_gen): Properly update
        * tree-loop-distribution.c (ldist_gen): Properly update
        virtual SSA form.
        virtual SSA form.
2012-01-30  Jakub Jelinek  
2012-01-30  Jakub Jelinek  
        PR debug/52027
        PR debug/52027
        * dwarf2out.c (dwarf2out_switch_text_section): Don't call
        * dwarf2out.c (dwarf2out_switch_text_section): Don't call
        set_cur_line_info_table if not emitting debug info.
        set_cur_line_info_table if not emitting debug info.
        PR tree-optimization/52046
        PR tree-optimization/52046
        * tree-vect-patterns.c (check_bool_pattern): Give up if
        * tree-vect-patterns.c (check_bool_pattern): Give up if
        a comparison could throw.
        a comparison could throw.
        PR debug/52048
        PR debug/52048
        * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
        * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
2012-01-30  Richard Guenther  
2012-01-30  Richard Guenther  
        PR tree-optimization/52045
        PR tree-optimization/52045
        * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
        * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
        SSA form if cfgcleanup did anything.
        SSA form if cfgcleanup did anything.
2012-01-30  Richard Guenther  
2012-01-30  Richard Guenther  
        PR tree-optimization/52045
        PR tree-optimization/52045
        * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
        * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
        before computing final todo.
        before computing final todo.
2012-01-30  Richard Guenther  
2012-01-30  Richard Guenther  
        PR tree-optimization/51528
        PR tree-optimization/51528
        * tree-sra.c (sra_modify_assign): Re-factor in preparation
        * tree-sra.c (sra_modify_assign): Re-factor in preparation
        for PR51528 fix.
        for PR51528 fix.
2012-01-30  Paolo Bonzini  
2012-01-30  Paolo Bonzini  
        * df-problems.c (df_kill_notes): Check that the use refers
        * df-problems.c (df_kill_notes): Check that the use refers
        to the note under examination.
        to the note under examination.
2012-01-30  Eric Botcazou  
2012-01-30  Eric Botcazou  
        PR target/51920
        PR target/51920
        * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
        * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
        parameter and use short-lived pseudos.
        parameter and use short-lived pseudos.
        (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
        (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
        (sparc_expand_vector_init): Const-ify local variables and adjust
        (sparc_expand_vector_init): Const-ify local variables and adjust
        calls to above functions.
        calls to above functions.
2012-01-30  Georg-Johann Lay  
2012-01-30  Georg-Johann Lay  
        * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
        * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
2012-01-29  Sandra Loosemore  
2012-01-29  Sandra Loosemore  
        * doc/invoke.texi: Make usage of "compile time" and
        * doc/invoke.texi: Make usage of "compile time" and
        "run time"/"runtime" consistent throughout the file.
        "run time"/"runtime" consistent throughout the file.
2012-01-29  Uros Bizjak  
2012-01-29  Uros Bizjak  
        * config/alpha/alpha.c (alpha_option_override): Default to
        * config/alpha/alpha.c (alpha_option_override): Default to
        full IEEE compliance mode for Go language.
        full IEEE compliance mode for Go language.
2011-01-29  Tijl Coosemans  
2011-01-29  Tijl Coosemans  
        * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
        * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
        (LINK_SSP_SPEC): Define.
        (LINK_SSP_SPEC): Define.
2012-01-28  John David Anglin  
2012-01-28  John David Anglin  
        PR target/51871
        PR target/51871
        * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
        * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
        stubs.
        stubs.
2012-01-28  Sandra Loosemore  
2012-01-28  Sandra Loosemore  
        * doc/invoke.texi: Correct hyphenation of "floating point",
        * doc/invoke.texi: Correct hyphenation of "floating point",
        "double precision", and related terminology throughout the file.
        "double precision", and related terminology throughout the file.
2012-01-28  Jakub Jelinek  
2012-01-28  Jakub Jelinek  
        PR target/52006
        PR target/52006
        * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
        * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
        arm_general_register_operand predicate for operand 2 instead of
        arm_general_register_operand predicate for operand 2 instead of
        register_operand.
        register_operand.
2012-01-27  Ian Lance Taylor  
2012-01-27  Ian Lance Taylor  
        PR go/47656
        PR go/47656
        * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
        * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
        * builtins.c (expand_builtin_init_trampoline): Add onstack
        * builtins.c (expand_builtin_init_trampoline): Add onstack
        parameter.  Change caller.
        parameter.  Change caller.
        (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
        (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
        * tree.c (build_common_builtin_nodes): Declare
        * tree.c (build_common_builtin_nodes): Declare
        __builtin_init_heap_trampoline.
        __builtin_init_heap_trampoline.
2012-01-27  Georg-Johann Lay  
2012-01-27  Georg-Johann Lay  
        * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
        * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
        tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
        tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
        * config/avr/avr.c: Ditto.
        * config/avr/avr.c: Ditto.
        (avr_regnames): Remove because unused.
        (avr_regnames): Remove because unused.
        * config/avr/avr.md (*cpse.ne): New peephole.
        * config/avr/avr.md (*cpse.ne): New peephole.
        (*cpse.eq): New peephole from former cpse peepholes.
        (*cpse.eq): New peephole from former cpse peepholes.
2012-01-27  Michael Eager  
2012-01-27  Michael Eager  
        * config/microblaze.c (microblaze_emit_compare): Correct
        * config/microblaze.c (microblaze_emit_compare): Correct
        test after pcmp instruction.
        test after pcmp instruction.
2012-01-27  Richard Guenther  
2012-01-27  Richard Guenther  
        PR tree-optimization/52020
        PR tree-optimization/52020
        * tree-sra.c (sra_modify_assign): Do not transform clobbers.
        * tree-sra.c (sra_modify_assign): Do not transform clobbers.
2012-01-27  Richard Guenther  
2012-01-27  Richard Guenther  
        * ipa-pure-const.c (check_stmt): Clobbers do not make a
        * ipa-pure-const.c (check_stmt): Clobbers do not make a
        function non-const/pure.
        function non-const/pure.
2012-01-27  Richard Guenther  
2012-01-27  Richard Guenther  
        PR tree-optimization/50444
        PR tree-optimization/50444
        * tree-sra.c (build_ref_for_offset): Properly adjust the
        * tree-sra.c (build_ref_for_offset): Properly adjust the
        MEM_REF type for unaligned accesses.
        MEM_REF type for unaligned accesses.
2012-01-27  Richard Guenther  
2012-01-27  Richard Guenther  
        PR tree-optimization/50444
        PR tree-optimization/50444
        * expr.c (mem_ref_refers_to_non_mem_p): New function.
        * expr.c (mem_ref_refers_to_non_mem_p): New function.
        (expand_assignment): Use it.  Properly handle misaligned
        (expand_assignment): Use it.  Properly handle misaligned
        bases when expanding stores to component references.
        bases when expanding stores to component references.
        (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
        (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
        refactor that case.
        refactor that case.
2012-01-27  Andrey Belevantsev  
2012-01-27  Andrey Belevantsev  
        PR middle-end/51389
        PR middle-end/51389
        * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
        * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
        * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
        * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
        * tree-data-ref.c (find_data_references_in_loop): Make static.
        * tree-data-ref.c (find_data_references_in_loop): Make static.
        (compute_all_dependences): Change return type to bool.  Bail out
        (compute_all_dependences): Change return type to bool.  Bail out
        for too many datarefs in a loop.  Move the hunk resetting the data
        for too many datarefs in a loop.  Move the hunk resetting the data
        dependences vector from ...
        dependences vector from ...
        (compute_data_dependences_for_loop): ... here.  Account for
        (compute_data_dependences_for_loop): ... here.  Account for
        compute_all_dependences returning false.
        compute_all_dependences returning false.
        (compute_data_dependences_for_bb): Likewise.
        (compute_data_dependences_for_bb): Likewise.
        * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
        * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
        * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
        * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
2012-01-27  Richard Guenther  
2012-01-27  Richard Guenther  
        PR middle-end/51959
        PR middle-end/51959
        * expr.c (store_field): Use the alias-set of the scratch memory
        * expr.c (store_field): Use the alias-set of the scratch memory
        for storing to it.
        for storing to it.
2012-01-27  Tom de Vries  
2012-01-27  Tom de Vries  
        PR tree-optimization/51990
        PR tree-optimization/51990
        * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
        * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
        WITH_SIZE_EXPR.
        WITH_SIZE_EXPR.
        * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
        * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
2012-01-27  Jakub Jelinek  
2012-01-27  Jakub Jelinek  
        PR debug/52001
        PR debug/52001
        * var-tracking.c (reverse_op): Don't add any reverse operation
        * var-tracking.c (reverse_op): Don't add any reverse operation
        if V already has any constant locations.
        if V already has any constant locations.
2012-01-27  Sandra Loosemore  
2012-01-27  Sandra Loosemore  
        * doc/invoke.texi: Correct usage of "command line" (noun)
        * doc/invoke.texi: Correct usage of "command line" (noun)
        vs "command-line" (adjective) throughout.
        vs "command-line" (adjective) throughout.
2012-01-27  Sandra Loosemore  
2012-01-27  Sandra Loosemore  
        * doc/invoke.texi (Language Independent Options): Move
        * doc/invoke.texi (Language Independent Options): Move
        -Wcoverage-mismatch blurb from here....
        -Wcoverage-mismatch blurb from here....
        (Warning Options): ...to here.
        (Warning Options): ...to here.
2012-01-27  Peter Bergner  
2012-01-27  Peter Bergner  
        * config/rs6000/rs6000.c (rs6000_option_override_internal):
        * config/rs6000/rs6000.c (rs6000_option_override_internal):
        Set rs6000_always_hint to false for 476.
        Set rs6000_always_hint to false for 476.
2012-01-27  Matthias Klose  
2012-01-27  Matthias Klose  
        * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
        * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
          system root.
          system root.
        * incpath.c (add_standard_paths): Likewise.
        * incpath.c (add_standard_paths): Likewise.
2012-01-27  Richard Henderson  
2012-01-27  Richard Henderson  
        * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
        * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
        * config/m68k/sync.md (atomic_test_and_set): Rename from
        * config/m68k/sync.md (atomic_test_and_set): Rename from
        sync_test_and_setqi and adjust the operands.
        sync_test_and_setqi and adjust the operands.
        (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
        (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
        and unconditionally enable.
        and unconditionally enable.
2012-01-27  Richard Henderson  
2012-01-27  Richard Henderson  
        * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
        * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
        * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
        * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
        (ldstub): Rename from ldstubqi.
        (ldstub): Rename from ldstubqi.
        (ldstub): Remove.
        (ldstub): Remove.
2012-01-27  Richard Henderson  
2012-01-27  Richard Henderson  
        * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
        * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
        * c-cppbuiltin.c (cpp_atomic_builtins): Define
        * c-cppbuiltin.c (cpp_atomic_builtins): Define
        __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
        __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
        * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
        * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
        * doc/tm.texi: Rebuild.
        * doc/tm.texi: Rebuild.
2012-01-27  Richard Henderson  
2012-01-27  Richard Henderson  
        * optabs.c (gen_atomic_test_and_set): Remove default.
        * optabs.c (gen_atomic_test_and_set): Remove default.
        (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
        (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
2012-01-26  Jakub Jelinek  
2012-01-26  Jakub Jelinek  
        PR rtl-optimization/51978
        PR rtl-optimization/51978
        * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
        * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
        (combine_reaching_defs): Likewise.
        (combine_reaching_defs): Likewise.
        (struct re_info): Remove.
        (struct re_info): Remove.
        (add_removable_extension): Remove x and data arguments,
        (add_removable_extension): Remove x and data arguments,
        add insn, insn_list and def_map.  Use the arguments directly
        add insn, insn_list and def_map.  Use the arguments directly
        instead of using struct re_info.
        instead of using struct re_info.
        (find_removable_extensions): Don't call add_removable_extension
        (find_removable_extensions): Don't call add_removable_extension
        through note_stores, instead just call it with single_set
        through note_stores, instead just call it with single_set
        result if non-NULL.
        result if non-NULL.
        (find_and_remove_re): Pass curr_cand->expr instead of
        (find_and_remove_re): Pass curr_cand->expr instead of
        PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
        PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
2012-01-26  Michael Matz  
2012-01-26  Michael Matz  
        PR tree-optimization/46590
        PR tree-optimization/46590
        * cfgexpand.c: Revert last change (r183305).
        * cfgexpand.c: Revert last change (r183305).
        * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
        * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
        regs.
        regs.
        * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
        * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
        checking for emptiness.
        checking for emptiness.
2012-01-26  Jakub Jelinek  
2012-01-26  Jakub Jelinek  
        PR middle-end/51895
        PR middle-end/51895
        * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
        * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
        non-addressable non-BLKmode base correctly.
        non-addressable non-BLKmode base correctly.
2012-01-26  Michael Matz  
2012-01-26  Michael Matz  
        PR tree-optimization/48794
        PR tree-optimization/48794
        * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
        * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
        regions referenced from RESX/EH_DISPATCH.
        regions referenced from RESX/EH_DISPATCH.
2012-01-26  Andreas Krebbel  
2012-01-26  Andreas Krebbel  
        * config/s390/s390.h: Make BRANCH_COST an option.
        * config/s390/s390.h: Make BRANCH_COST an option.
        * config/s390/s390.opt: New option -mbranch-cost.
        * config/s390/s390.opt: New option -mbranch-cost.
2012-01-26  Richard Henderson  
2012-01-26  Richard Henderson  
        Revert 2012-01-24 change:
        Revert 2012-01-24 change:
        * trans-mem.c (requires_barrier): Do not instrument thread local
        * trans-mem.c (requires_barrier): Do not instrument thread local
        variables and emit save/restore for them.
        variables and emit save/restore for them.
2012-01-25  Jakub Jelinek  
2012-01-25  Jakub Jelinek  
        PR middle-end/51986
        PR middle-end/51986
        * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
        * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
        for pat == 0.
        for pat == 0.
2012-01-25  Richard Sandiford  
2012-01-25  Richard Sandiford  
        * config/mips/mips.c (mips_small_data_pattern_1): Don't process
        * config/mips/mips.c (mips_small_data_pattern_1): Don't process
        ASM_OPERANDS.
        ASM_OPERANDS.
2012-01-25  Georg-Johann Lay  
2012-01-25  Georg-Johann Lay  
        PR target/49868
        PR target/49868
        Rename __pgm to __flash.
        Rename __pgm to __flash.
        Rename __pgm1 to __flash1.
        Rename __pgm1 to __flash1.
        Rename __pgm2 to __flash2.
        Rename __pgm2 to __flash2.
        Rename __pgm3 to __flash3.
        Rename __pgm3 to __flash3.
        Rename __pgm4 to __flash4.
        Rename __pgm4 to __flash4.
        Rename __pgm5 to __flash5.
        Rename __pgm5 to __flash5.
        Rename __pgmx to __memx.
        Rename __pgmx to __memx.
        * doc/extend.texi (AVR Named Address Spaces)
        * doc/extend.texi (AVR Named Address Spaces)
        Rename address space names as indicated above.
        Rename address space names as indicated above.
        * config/avr/avr.c (avr_addrspace): Ditto.
        * config/avr/avr.c (avr_addrspace): Ditto.
        * config/avr/avr-protos.h
        * config/avr/avr-protos.h
        (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
        (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
        (avr_mem_pgm_p): Rename to avr_mem_flash_p.
        (avr_mem_pgm_p): Rename to avr_mem_flash_p.
        * config/avr/predicates.md: Ditto.
        * config/avr/predicates.md: Ditto.
        * config/avr/avr.c Ditto, and
        * config/avr/avr.c Ditto, and
        (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
        (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
        (avr_decl_pgm_p): Rename to avr_decl_flash_p.
        (avr_decl_pgm_p): Rename to avr_decl_flash_p.
        * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
        * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
        (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
        (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
        (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
        (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
        (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
        (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
        (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
        (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
        (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
        (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
        (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
        (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
        * config/avr/avr.c: Ditto.
        * config/avr/avr.c: Ditto.
        * config/avr/avr.md: Ditto.
        * config/avr/avr.md: Ditto.
2012-01-25  Jason Merrill  
2012-01-25  Jason Merrill  
        PR c++/51992
        PR c++/51992
        * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
        * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
2012-01-25  Jakub Jelinek  
2012-01-25  Jakub Jelinek  
        PR tree-optimization/51987
        PR tree-optimization/51987
        * tree-data-ref.c (get_references_in_stmt): Handle references in
        * tree-data-ref.c (get_references_in_stmt): Handle references in
        non-volatile GIMPLE_ASM.
        non-volatile GIMPLE_ASM.
2012-01-25  Richard Guenther  
2012-01-25  Richard Guenther  
        * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
        * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
        bases are dereferenced.
        bases are dereferenced.
2012-01-25  Andrey Belevantsev  
2012-01-25  Andrey Belevantsev  
        PR rtl-optimization/48374
        PR rtl-optimization/48374
        * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
        * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
2012-01-25  Andrey Belevantsev  
2012-01-25  Andrey Belevantsev  
        * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
        * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
        compute_data_dependences_for_loop returns false.
        compute_data_dependences_for_loop returns false.
        * tree-parloops.c (loop_parallel_p): Likewise.
        * tree-parloops.c (loop_parallel_p): Likewise.
2012-01-25  Richard Guenther  
2012-01-25  Richard Guenther  
        * tree.h (get_pointer_alignment_1): Declare.
        * tree.h (get_pointer_alignment_1): Declare.
        * builtins.c (get_pointer_alignment_1): New function.
        * builtins.c (get_pointer_alignment_1): New function.
        (get_pointer_alignment): Use it.
        (get_pointer_alignment): Use it.
2012-01-25  Ramana Radhakrishnan  
2012-01-25  Ramana Radhakrishnan  
        PR rtl-optimization/48308
        PR rtl-optimization/48308
        * combine.c (enum undo_kind): Add UNDO_LINKS.
        * combine.c (enum undo_kind): Add UNDO_LINKS.
        (struct undo): Add member l to other_contents and where.
        (struct undo): Add member l to other_contents and where.
        (do_SUBST_LINK): New.
        (do_SUBST_LINK): New.
        (SUBST_LINK): New.
        (SUBST_LINK): New.
        (try_combine): Handle LOG_LINKS for the dummy i1 case.
        (try_combine): Handle LOG_LINKS for the dummy i1 case.
        (undo_all): Handle UNDO_LINKS.
        (undo_all): Handle UNDO_LINKS.
2012-01-25  Richard Henderson  
2012-01-25  Richard Henderson  
        * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
        * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
        mem inputs.
        mem inputs.
2012-01-24  Richard Sandiford  
2012-01-24  Richard Sandiford  
        * optabs.c (gen_atomic_test_and_set): Use each argument.
        * optabs.c (gen_atomic_test_and_set): Use each argument.
2012-01-24  Richard Sandiford  
2012-01-24  Richard Sandiford  
        * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
        * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
        (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_)
        (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_)
        (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
        (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
        (bc1any2f, mips_rsqrt1_, mips_rsqrt2_, mips_recip1_)
        (bc1any2f, mips_rsqrt1_, mips_rsqrt2_, mips_recip1_)
        (mips_recip2_): Require TARGET_MIPS3D rather than
        (mips_recip2_): Require TARGET_MIPS3D rather than
        TARGET_PAIRED_SINGLE_FLOAT.
        TARGET_PAIRED_SINGLE_FLOAT.
2012-01-24  Richard Sandiford  
2012-01-24  Richard Sandiford  
        * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
        * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
        (in_struct, return_val): Remove MEM documentation.
        (in_struct, return_val): Remove MEM documentation.
        * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
        * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
        (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
        (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
        (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
        (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
        and MEM_SCALAR.
        and MEM_SCALAR.
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
        * cfgexpand.c (add_alias_set_conflicts): Likewise.
        * cfgexpand.c (add_alias_set_conflicts): Likewise.
        * expr.c (store_field): Likewise.
        * expr.c (store_field): Likewise.
        * function.c (assign_stack_temp_for_type): Likewise.
        * function.c (assign_stack_temp_for_type): Likewise.
        * ifcvt.c (noce_try_cmove_arith): Likewise.
        * ifcvt.c (noce_try_cmove_arith): Likewise.
        * reload1.c (reload): Likewise.
        * reload1.c (reload): Likewise.
        * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
        * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
        (alpha_set_memflags): Likewise.
        (alpha_set_memflags): Likewise.
        * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
        * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
2012-01-24  Richard Sandiford  
2012-01-24  Richard Sandiford  
        * rtl.h (true_dependence, canon_true_dependence): Remove varies
        * rtl.h (true_dependence, canon_true_dependence): Remove varies
        parameter.
        parameter.
        * alias.c (fixed_scalar_and_varying_struct_p): Delete.
        * alias.c (fixed_scalar_and_varying_struct_p): Delete.
        (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
        (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
        (true_dependence_1, true_dependence, canon_true_dependence): Remove
        (true_dependence_1, true_dependence, canon_true_dependence): Remove
        varies parameter.
        varies parameter.
        * cselib.c (cselib_rtx_varies_p): Delete.
        * cselib.c (cselib_rtx_varies_p): Delete.
        (cselib_invalidate_mem): Update call to canon_true_dependence.
        (cselib_invalidate_mem): Update call to canon_true_dependence.
        * dse.c (record_store, check_mem_read_rtx): Likewise.
        * dse.c (record_store, check_mem_read_rtx): Likewise.
        (scan_reads_nospill): Likewise.
        (scan_reads_nospill): Likewise.
        * cse.c (check_dependence): Likewise.
        * cse.c (check_dependence): Likewise.
        (cse_rtx_varies_p): Delete.
        (cse_rtx_varies_p): Delete.
        * expr.c (safe_from_p): Update call to true_dependence.
        * expr.c (safe_from_p): Update call to true_dependence.
        * ira.c (validate_equiv_mem_from_store): Likewise.
        * ira.c (validate_equiv_mem_from_store): Likewise.
        (memref_referenced_p): Likewise.
        (memref_referenced_p): Likewise.
        * postreload-gcse.c (find_mem_conflicts): Likewise.
        * postreload-gcse.c (find_mem_conflicts): Likewise.
        * sched-deps.c (sched_analyze_2): Likewise.
        * sched-deps.c (sched_analyze_2): Likewise.
        * store-motion.c (load_kills_store): Likewise.
        * store-motion.c (load_kills_store): Likewise.
        * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
        * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
        * gcse.c (mems_conflict_for_gcse_p): Likewise.
        * gcse.c (mems_conflict_for_gcse_p): Likewise.
        (compute_transp): Update call to canon_true_dependence.
        (compute_transp): Update call to canon_true_dependence.
2012-01-25  Richard Henderson  
2012-01-25  Richard Henderson  
        * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
        * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
        (maybe_emit_atomic_test_and_set): New.
        (maybe_emit_atomic_test_and_set): New.
        (expand_sync_lock_test_and_set): Use it.
        (expand_sync_lock_test_and_set): Use it.
        (expand_atomic_test_and_set): Likewise.
        (expand_atomic_test_and_set): Likewise.
        * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
        * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
        the implementation; clarify implementation defined details.
        the implementation; clarify implementation defined details.
        * doc/md.texi (atomic_test_and_set): Document.
        * doc/md.texi (atomic_test_and_set): Document.
2012-01-25  Richard Henderson  
2012-01-25  Richard Henderson  
        * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
        * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
2012-01-25  Richard Henderson  
2012-01-25  Richard Henderson  
        PR target/51968
        PR target/51968
        * config/arm/arm.c (neon_split_vcombine): Emit deleted note
        * config/arm/arm.c (neon_split_vcombine): Emit deleted note
        to effect no-op split.
        to effect no-op split.
2012-01-24  Aldy Hernandez  
2012-01-24  Aldy Hernandez  
        PR lto/51698
        PR lto/51698
        * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
        * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
        (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
        (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
        (BT_FN_VOID_PTR_INT_SIZE): New.
        (BT_FN_VOID_PTR_INT_SIZE): New.
        (BT_FN_UINT_UINT_VAR): Remove.
        (BT_FN_UINT_UINT_VAR): Remove.
        (BT_FN_UINT32_UINT32_VAR): New.
        (BT_FN_UINT32_UINT32_VAR): New.
        (BT_FN_DOUBLE_VPTR): Remove.
        (BT_FN_DOUBLE_VPTR): Remove.
        (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
        (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
        * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
        * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
        (_ITM_changeTransactionMode): Same.
        (_ITM_changeTransactionMode): Same.
        (_ITM_memmoveRtWt): Change return type to void.
        (_ITM_memmoveRtWt): Change return type to void.
        (_ITM_memcpyRtWt): Same.
        (_ITM_memcpyRtWt): Same.
        (_ITM_memsetW): Same.
        (_ITM_memsetW): Same.
        (_ITM_RaRD): Change types to double.
        (_ITM_RaRD): Change types to double.
        (_ITM_RD): Same.
        (_ITM_RD): Same.
        (_ITM_RaWD): Same.
        (_ITM_RaWD): Same.
        (_ITM_RfWD): Same.
        (_ITM_RfWD): Same.
        * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
        * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
2012-01-24  Aldy Hernandez  
2012-01-24  Aldy Hernandez  
            Patrick Marlier  
            Patrick Marlier  
        * trans-mem.c (requires_barrier): Do not instrument thread local
        * trans-mem.c (requires_barrier): Do not instrument thread local
        variables and emit save/restore for them.
        variables and emit save/restore for them.
2012-01-24  Jason Merrill  
2012-01-24  Jason Merrill  
        PR c++/51812
        PR c++/51812
        * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
        * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
        output static aliases.
        output static aliases.
2012-01-24  Jakub Jelinek  
2012-01-24  Jakub Jelinek  
        PR driver/47249
        PR driver/47249
        * common.opt (-pie, -shared, pie, shared): Change from Common to
        * common.opt (-pie, -shared, pie, shared): Change from Common to
        Driver.
        Driver.
        * gcc.c (display_help): Display help for -pie and -shared.
        * gcc.c (display_help): Display help for -pie and -shared.
2012-01-24  Georg-Johann Lay  
2012-01-24  Georg-Johann Lay  
        PR target/49868
        PR target/49868
        * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
        * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
        Remove note on size/offset limitation.
        Remove note on size/offset limitation.
        (AVR Variable Attributes): Add example how to read data located
        (AVR Variable Attributes): Add example how to read data located
        with progmem.  Refer to named address spaces.
        with progmem.  Refer to named address spaces.
        * doc/invoke.texi (AVR Options): Fix typo.
        * doc/invoke.texi (AVR Options): Fix typo.
2012-01-24  Richard Guenther  
2012-01-24  Richard Guenther  
        Forward-port to trunk
        Forward-port to trunk
        2010-09-21  Jakub Jelinek  
        2010-09-21  Jakub Jelinek  
        PR middle-end/45678
        PR middle-end/45678
        * expr.c (expand_expr_real_1) : If
        * expr.c (expand_expr_real_1) : If
        op0 isn't sufficiently aligned and there is movmisalignM
        op0 isn't sufficiently aligned and there is movmisalignM
        insn for mode, use it to load op0 into a temporary register.
        insn for mode, use it to load op0 into a temporary register.
2012-01-24  Jakub Jelinek  
2012-01-24  Jakub Jelinek  
        PR target/51957
        PR target/51957
        * target.def (const_not_ok_for_debug_p): New hook.
        * target.def (const_not_ok_for_debug_p): New hook.
        * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
        * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
        documentation.
        documentation.
        * doc/tm.texi: Regenerated.
        * doc/tm.texi: Regenerated.
        * dwarf2out.c (const_ok_for_output_1): If
        * dwarf2out.c (const_ok_for_output_1): If
        targetm.const_not_ok_for_debug_p returns true, fail.
        targetm.const_not_ok_for_debug_p returns true, fail.
        * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
        * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
        function.
        function.
        (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
        (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
2012-01-23  Kai Tietz  
2012-01-23  Kai Tietz  
        PR target/51900
        PR target/51900
        * config/i386/predicates.md (symbolic_operand): Allow
        * config/i386/predicates.md (symbolic_operand): Allow
        UNSPEC_PCREL as PIC expression for lea.
        UNSPEC_PCREL as PIC expression for lea.
        * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
        * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
        * config/i386/i386.c (ix86_delegitimize_address): Handle
        * config/i386/i386.c (ix86_delegitimize_address): Handle
        UNSPEC_PCREL for none-MEM, too.
        UNSPEC_PCREL for none-MEM, too.
2012-01-23  Aldy Hernandez  
2012-01-23  Aldy Hernandez  
        * trans-mem.c (ipa_tm_create_version): Set externally_visible.
        * trans-mem.c (ipa_tm_create_version): Set externally_visible.
        (ipa_tm_create_version_alias): Same.
        (ipa_tm_create_version_alias): Same.
2012-01-23  Uros Bizjak  
2012-01-23  Uros Bizjak  
        PR libitm/51830
        PR libitm/51830
        * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
        * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
        * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
        * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
2012-01-23  Aldy Hernandez  
2012-01-23  Aldy Hernandez  
            Patrick Marlier  
            Patrick Marlier  
            Iain Sandoe  
            Iain Sandoe  
        PR lto/51916
        PR lto/51916
        * lto-wrapper.c (run_gcc): Pass the LTO section name to
        * lto-wrapper.c (run_gcc): Pass the LTO section name to
        simple_object_start_read.
        simple_object_start_read.
2012-01-23  Richard Guenther  
2012-01-23  Richard Guenther  
        PR tree-optimization/51895
        PR tree-optimization/51895
        * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
        * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
        parameter decomposition into BLKmode components.
        parameter decomposition into BLKmode components.
2012-01-23  Eric Botcazou  
2012-01-23  Eric Botcazou  
        * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
        * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
        fake variables for restrict-qualified pointers whose pointed-to type
        fake variables for restrict-qualified pointers whose pointed-to type
        contains a placeholder.
        contains a placeholder.
2012-01-23  Richard Guenther  
2012-01-23  Richard Guenther  
        PR tree-optimization/51949
        PR tree-optimization/51949
        * ipa-split.c (execute_split_functions): Do not split malloc functions.
        * ipa-split.c (execute_split_functions): Do not split malloc functions.
2012-01-23  Jakub Jelinek  
2012-01-23  Jakub Jelinek  
        PR rtl-optimization/51933
        PR rtl-optimization/51933
        * ree.c (transform_ifelse): Return true right away if dstreg is
        * ree.c (transform_ifelse): Return true right away if dstreg is
        already wider or equal to cand->mode.
        already wider or equal to cand->mode.
        (enum ext_modified_kind, struct ext_modified, ext_state): New types.
        (enum ext_modified_kind, struct ext_modified, ext_state): New types.
        (make_defs_and_copies_lists): Remove defs_list and copies_list
        (make_defs_and_copies_lists): Remove defs_list and copies_list
        arguments, add state argument, just truncate state->work_list
        arguments, add state argument, just truncate state->work_list
        instead of always allocating and freeing the vector.  Assert that
        instead of always allocating and freeing the vector.  Assert that
        get_defs succeeds instead of returning 2.  Changed return type to bool.
        get_defs succeeds instead of returning 2.  Changed return type to bool.
        (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
        (merge_def_and_ext): Add state argument.  If SET_DEST doesn't
        have ext_src_mode, see if it has been modified already with the
        have ext_src_mode, see if it has been modified already with the
        right kind of extension and has been extended before from the
        right kind of extension and has been extended before from the
        ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
        ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
        just return true.  Remember the original mode in state->modified array.
        just return true.  Remember the original mode in state->modified array.
        (combine_reaching_defs): Add state argument.  Don't allocate and
        (combine_reaching_defs): Add state argument.  Don't allocate and
        free here def_list, copied_list and vec vectors, instead just
        free here def_list, copied_list and vec vectors, instead just
        VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
        VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
        (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
        (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
        Add state variable, clear vectors in it, initialize state.modified
        Add state variable, clear vectors in it, initialize state.modified
        if needed.  Free all the vectors at the end and state.modified too.
        if needed.  Free all the vectors at the end and state.modified too.
        Don't skip a candidate if the extension expression has been modified.
        Don't skip a candidate if the extension expression has been modified.
2012-01-22  Douglas B Rupp  
2012-01-22  Douglas B Rupp  
        PR target/47096
        PR target/47096
        * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
        * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
         configurations. Change triplet to i[34567]86-*-interix[3-9]*.
         configurations. Change triplet to i[34567]86-*-interix[3-9]*.
        (extra_options) interix.opt -> i386/interix.opt"
        (extra_options) interix.opt -> i386/interix.opt"
        (extra_objs):Add winnt-stubs.o
        (extra_objs):Add winnt-stubs.o
        * configure.ac: Add interix to target_os .comm on PE check.
        * configure.ac: Add interix to target_os .comm on PE check.
        * configure: Regenerate.
        * configure: Regenerate.
        * config/interix3.h: Delete and move bits to..
        * config/interix3.h: Delete and move bits to..
        * config/interix.h: Delete and move bits to..
        * config/interix.h: Delete and move bits to..
        * config/i386/i386-interix3.h: Delete and move bits to..
        * config/i386/i386-interix3.h: Delete and move bits to..
        * config/i386/i386-interix.h: ..here.
        * config/i386/i386-interix.h: ..here.
        (TARGET_CPU_DEFAULT): Remove redefinition.
        (TARGET_CPU_DEFAULT): Remove redefinition.
        (TARGET_ASM_CONSTRUCTOR): Undefine.
        (TARGET_ASM_CONSTRUCTOR): Undefine.
        (SUBTARGET_SWITCHES): Define for ms-bitfields.
        (SUBTARGET_SWITCHES): Define for ms-bitfields.
        (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
        (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
        (PTRDIFF_TYPE): Define.
        (PTRDIFF_TYPE): Define.
        (LONG_DOUBLE_TYPE_SIZE): Define.
        (LONG_DOUBLE_TYPE_SIZE): Define.
        (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
        (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
        (SUBTARGET_OVERRIDE_OPTIONS): Remove.
        (SUBTARGET_OVERRIDE_OPTIONS): Remove.
        (TARGET_SECTION_TYPE_FLAGS): Define.
        (TARGET_SECTION_TYPE_FLAGS): Define.
        (ASM_DECLARE_FUNCTION_NAME): Define.
        (ASM_DECLARE_FUNCTION_NAME): Define.
        (ASM_OUTPUT_EXTERNAL): Define.
        (ASM_OUTPUT_EXTERNAL): Define.
        (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
        (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
        (ASM_OUTPUT_ALIGNED_BSS): Define.
        (ASM_OUTPUT_ALIGNED_BSS): Define.
        (PCC_BITFIELD_TYPE_MATTERS): Define.
        (PCC_BITFIELD_TYPE_MATTERS): Define.
        (USE_CONST_SECTION): Define.
        (USE_CONST_SECTION): Define.
        (SUBTARGET_ENCODE_SECTION_INFO): Remove.
        (SUBTARGET_ENCODE_SECTION_INFO): Remove.
        (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
        (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
        (SUPPORTS_ONE_ONLY): Remove.
        (SUPPORTS_ONE_ONLY): Remove.
        (I386_PE_STRIP_ENCODING): Define.
        (I386_PE_STRIP_ENCODING): Define.
        * config/interix.opt: Delete and move bits to..
        * config/interix.opt: Delete and move bits to..
        * config/i386/interix.opt: ..here. New.
        * config/i386/interix.opt: ..here. New.
        (mpe-aligned-commons): Add.
        (mpe-aligned-commons): Add.
        * config/i386/t-interix: Add copyright header.
        * config/i386/t-interix: Add copyright header.
        (winnt-stubs.o): Add rule.
        (winnt-stubs.o): Add rule.
2012-01-22  Jason Merrill  
2012-01-22  Jason Merrill  
        PR c++/51832
        PR c++/51832
        * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
        * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
        for extra name aliases.
        for extra name aliases.
2012-01-22  Eric Botcazou  
2012-01-22  Eric Botcazou  
        PR rtl-optimization/51924
        PR rtl-optimization/51924
        * ree.c (combine_set_extension): Improve debugging message.
        * ree.c (combine_set_extension): Improve debugging message.
        (combine_reaching_defs): Likewise.
        (combine_reaching_defs): Likewise.
        (get_defs): Rename confusingly named variable.
        (get_defs): Rename confusingly named variable.
        (find_and_remove_re): Skip a candidate if the extension expression has
        (find_and_remove_re): Skip a candidate if the extension expression has
        been modified.
        been modified.
2012-01-21  Robert Millan  
2012-01-21  Robert Millan  
            Gerald Pfeifer  
            Gerald Pfeifer  
        * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
        * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
        (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
        (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
2012-01-20  Jakub Jelinek  
2012-01-20  Jakub Jelinek  
        PR tree-optimization/51914
        PR tree-optimization/51914
        * tree-vect-stmts.c (vectorizable_conversion): For
        * tree-vect-stmts.c (vectorizable_conversion): For
        cvt_type && modifier == WIDEN, put temporary with cvt_type
        cvt_type && modifier == WIDEN, put temporary with cvt_type
        at the beginning of vec_dsts and set vec_dest to temporary
        at the beginning of vec_dsts and set vec_dest to temporary
        with vectype_out.
        with vectype_out.
2012-01-20  Eric Botcazou  
2012-01-20  Eric Botcazou  
        * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
        * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
2011-01-20  Tijl Coosemans  
2011-01-20  Tijl Coosemans  
        * config/i386/i386.c: Fix checks for !TARGET_MACHO.
        * config/i386/i386.c: Fix checks for !TARGET_MACHO.
        * config/rs6000/rs6000.c: Likewise.
        * config/rs6000/rs6000.c: Likewise.
2012-01-20  Jakub Jelinek  
2012-01-20  Jakub Jelinek  
        PR target/51915
        PR target/51915
        * config/arm/arm.c (arm_count_output_move_double_insns): Call
        * config/arm/arm.c (arm_count_output_move_double_insns): Call
        output_move_double on a copy of operands array.
        output_move_double on a copy of operands array.
2012-01-20  Cary Coutant  
2012-01-20  Cary Coutant  
            Dodji Seketeli  
            Dodji Seketeli  
        PR debug/45682
        PR debug/45682
        * dwarf2out.c (copy_declaration_context): Return ref to parent
        * dwarf2out.c (copy_declaration_context): Return ref to parent
        of declaration DIE, if necessary.
        of declaration DIE, if necessary.
        (remove_child_or_replace_with_skeleton): Add new parameter; update
        (remove_child_or_replace_with_skeleton): Add new parameter; update
        caller.  Place skeleton DIE under parent DIE of original declaration.
        caller.  Place skeleton DIE under parent DIE of original declaration.
        Move call to copy_declaration_context to here ...
        Move call to copy_declaration_context to here ...
        (break_out_comdat_types): ... from here.
        (break_out_comdat_types): ... from here.
2012-01-20  Andreas Krebbel  
2012-01-20  Andreas Krebbel  
        PR rtl-optimization/51856
        PR rtl-optimization/51856
        * reload.c (find_reloads_subreg_address): Set the address_reloaded
        * reload.c (find_reloads_subreg_address): Set the address_reloaded
        flag to reloaded.
        flag to reloaded.
2012-01-20  Ramana Radhakrishnan  
2012-01-20  Ramana Radhakrishnan  
        PR target/51819
        PR target/51819
        * config/arm/arm.c (arm_print_operand): Correct output of alignment
        * config/arm/arm.c (arm_print_operand): Correct output of alignment
        hints for neon loads and stores.
        hints for neon loads and stores.
2012-01-20  Georg-Johann Lay  
2012-01-20  Georg-Johann Lay  
        PR target/49868
        PR target/49868
        PR target/50887
        PR target/50887
        * doc/extend.texi (Named Address Spaces): Split into subsections.
        * doc/extend.texi (Named Address Spaces): Split into subsections.
        (AVR Named Address Spaces): New subsection.
        (AVR Named Address Spaces): New subsection.
        (M32C Named Address Spaces): New subsection.
        (M32C Named Address Spaces): New subsection.
        (RL78 Named Address Spaces): New subsection.
        (RL78 Named Address Spaces): New subsection.
        (SPU Named Address Spaces): New subsection.
        (SPU Named Address Spaces): New subsection.
        (Variable Attributes): New anchor "AVR Variable Attributes".
        (Variable Attributes): New anchor "AVR Variable Attributes".
        (AVR Variable Attributes): Rewrite and avoid wording
        (AVR Variable Attributes): Rewrite and avoid wording
        "address space" in this context.
        "address space" in this context.
        * doc/invoke.texi (AVR Options): Rewrite and add documentation
        * doc/invoke.texi (AVR Options): Rewrite and add documentation
        for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
        for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
        (AVR Built-in Macros): New subsubsection therein.
        (AVR Built-in Macros): New subsubsection therein.
        * doc/md.texi (AVR constraints): Remove "C04", "R".
        * doc/md.texi (AVR constraints): Remove "C04", "R".
2012-01-20  Richard Guenther  
2012-01-20  Richard Guenther  
        PR tree-optimization/51903
        PR tree-optimization/51903
        * tree-ssa-pre.c (eliminate): Properly purging of EH edges
        * tree-ssa-pre.c (eliminate): Properly purging of EH edges
        when removing stmts.
        when removing stmts.
2012-01-20  Ramana Radhakrishnan  
2012-01-20  Ramana Radhakrishnan  
        PR target/50313
        PR target/50313
        * config/arm/arm.c (arm_load_pic_register): Use
        * config/arm/arm.c (arm_load_pic_register): Use
        gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
        gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
        , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
        , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
        (arm_pic_static_addr): Likewise.
        (arm_pic_static_addr): Likewise.
        (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
        (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
        (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
        (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
        * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
        * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
        (pic_load_addr_unified): New.
        (pic_load_addr_unified): New.
2012-01-20  Andrey Belevantsev  
2012-01-20  Andrey Belevantsev  
        PR target/51106
        PR target/51106
        * function.c (instantiate_virtual_regs_in_insn): Use
        * function.c (instantiate_virtual_regs_in_insn): Use
        delete_insn_and_edges when removing a wrong asm insn.
        delete_insn_and_edges when removing a wrong asm insn.
2012-01-19  Vladimir Makarov  
2012-01-19  Vladimir Makarov  
        PR rtl-optimization/40761
        PR rtl-optimization/40761
        * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
        * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
        Add new member loop_num.
        Add new member loop_num.
        (IRA_LOOP_NODE_BY_INDEX): Modify the check.
        (IRA_LOOP_NODE_BY_INDEX): Modify the check.
        (ira_build): Remove the parameter.
        (ira_build): Remove the parameter.
        * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
        * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
        (ira.c): Do not build CFG loops for one region allocation.  Remove
        (ira.c): Do not build CFG loops for one region allocation.  Remove
        argument from ira_build call.
        argument from ira_build call.
        * ira-build.c (init_loop_tree_node): New function.
        * ira-build.c (init_loop_tree_node): New function.
        (create_loop_tree_nodes): Use it.  Separate the case when CFG
        (create_loop_tree_nodes): Use it.  Separate the case when CFG
        loops are not built.
        loops are not built.
        (more_one_region_p): Check current_loops.
        (more_one_region_p): Check current_loops.
        (finish_loop_tree_nodes): Separate the case when CFG loops are not
        (finish_loop_tree_nodes): Separate the case when CFG loops are not
        built.
        built.
        (add_loop_to_tree): Process loop equal to NULL too.
        (add_loop_to_tree): Process loop equal to NULL too.
        (form_loop_tree): Separate the case when CFG loops are not built.
        (form_loop_tree): Separate the case when CFG loops are not built.
        Use explicitly number for the root.
        Use explicitly number for the root.
        (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
        (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
        an assertion.
        an assertion.
        (ira_print_expanded_allocno, loop_compare_func): Use loop_num
        (ira_print_expanded_allocno, loop_compare_func): Use loop_num
        instead of loop->num.
        instead of loop->num.
        (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
        (mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
        (mark_all_loops_for_removal): Ditto.
        (mark_all_loops_for_removal): Ditto.
        (remove_unnecessary_regions): Separate the case when CFG loops
        (remove_unnecessary_regions): Separate the case when CFG loops
        are not built.
        are not built.
        (ira_build): Remove the parameter.  Use explicit number of regions
        (ira_build): Remove the parameter.  Use explicit number of regions
        when CFG loops are not built.
        when CFG loops are not built.
        * ira-color.c (print_loop_title): Separate the case for the root node.
        * ira-color.c (print_loop_title): Separate the case for the root node.
        Use loop_num instead of loop->num.
        Use loop_num instead of loop->num.
        (move_spill_restore): Use loop_num instead of loop->num.
        (move_spill_restore): Use loop_num instead of loop->num.
        * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
        * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
        (change_loop): Ditto.
        (change_loop): Ditto.
        (change_loop): Use loop_num instead of loop->num.
        (change_loop): Use loop_num instead of loop->num.
        * ira-lives.c (process_bb_node_lives): Ditto.
        * ira-lives.c (process_bb_node_lives): Ditto.
        * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
        * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
        * ira-conflicts.c (print_allocno_conflicts): Ditto.
        * ira-conflicts.c (print_allocno_conflicts): Ditto.
2012-01-19  Jakub Jelinek  
2012-01-19  Jakub Jelinek  
        PR libmudflap/40778
        PR libmudflap/40778
        * tree-mudflap.c (mf_artificial): New function.
        * tree-mudflap.c (mf_artificial): New function.
        (execute_mudflap_function_ops, execute_mudflap_function_decls,
        (execute_mudflap_function_ops, execute_mudflap_function_decls,
        mx_register_decls, mudflap_enqueue_decl): Use it.
        mx_register_decls, mudflap_enqueue_decl): Use it.
        PR target/51876
        PR target/51876
        * config/arm/neon.md (*neon_vswp): Fix up operand
        * config/arm/neon.md (*neon_vswp): Fix up operand
        numbers in the insn pattern.
        numbers in the insn pattern.
2012-01-19  Michael Matz  
2012-01-19  Michael Matz  
        PR tree-optimization/46590
        PR tree-optimization/46590
        * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
        * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
        use it in remembering which conflicts we already created.
        use it in remembering which conflicts we already created.
        (add_scope_conflicts): Adjust call to above, (de)allocate helper
        (add_scope_conflicts): Adjust call to above, (de)allocate helper
        bitmap.
        bitmap.
2012-01-19  Aldy Hernandez  
2012-01-19  Aldy Hernandez  
        PR lto/51280
        PR lto/51280
        * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
        * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
        (merge_and_complain): Same.
        (merge_and_complain): Same.
2012-01-19  Jakub Jelinek  
2012-01-19  Jakub Jelinek  
        PR bootstrap/50237
        PR bootstrap/50237
        * config/initfini-array.h: Guard content of the header
        * config/initfini-array.h: Guard content of the header
        with #ifdef HAVE_INITFINI_ARRAY.
        with #ifdef HAVE_INITFINI_ARRAY.
        * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
        * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
        Add initfini-array.h to tm_file here.
        Add initfini-array.h to tm_file here.
        * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
        * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
        * config.gcc: Don't add initfini-array.h to tm_file here.
        * config.gcc: Don't add initfini-array.h to tm_file here.
        * configure: Regenerated.
        * configure: Regenerated.
2012-01-19  Andrey Belevantsev  
2012-01-19  Andrey Belevantsev  
        PR rtl-optimization/51505
        PR rtl-optimization/51505
        * df-problems.c (df_kill_notes): New parameter live. Update comment.
        * df-problems.c (df_kill_notes): New parameter live. Update comment.
        Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
        Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
        (df_note_bb_compute): Update the call to df_kill_notes.
        (df_note_bb_compute): Update the call to df_kill_notes.
2012-01-18  Aldy Hernandez  
2012-01-18  Aldy Hernandez  
        * trans-mem.c (requires_barrier): Remove call to is_global_var.
        * trans-mem.c (requires_barrier): Remove call to is_global_var.
2012-01-18  Richard Guenther  
2012-01-18  Richard Guenther  
        * tree-ssa.c (useless_type_conversion_p): Remove special-casing
        * tree-ssa.c (useless_type_conversion_p): Remove special-casing
        of conversions to void *.
        of conversions to void *.
2012-01-17  Andreas Krebbel  
2012-01-17  Andreas Krebbel  
            Richard Sandiford  
            Richard Sandiford  
        PR middle-end/50325
        PR middle-end/50325
        PR middle-end/51192
        PR middle-end/51192
        * optabs.h (simplify_expand_binop): Declare.
        * optabs.h (simplify_expand_binop): Declare.
        * optabs.c (simplify_expand_binop): Make global.
        * optabs.c (simplify_expand_binop): Make global.
        * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
        * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
        endian targets if the source cannot be exactly covered by word
        endian targets if the source cannot be exactly covered by word
        mode chunks.
        mode chunks.
2012-01-17  Jakub Jelinek  
2012-01-17  Jakub Jelinek  
        PR bootstrap/51872
        PR bootstrap/51872
        * hard-reg-set.h (struct hard_reg_set_container): New type.
        * hard-reg-set.h (struct hard_reg_set_container): New type.
        * target.h (struct hard_reg_set_container): Forward declare.
        * target.h (struct hard_reg_set_container): Forward declare.
        * target.def (set_up_by_prologue): New target hook.
        * target.def (set_up_by_prologue): New target hook.
        * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
        * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
        * doc/tm.texi: Regenerated.
        * doc/tm.texi: Regenerated.
        * function.c (thread_prologue_and_epilogue_insns): Change
        * function.c (thread_prologue_and_epilogue_insns): Change
        set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
        set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
        Call targetm.set_up_by_prologue on it.
        Call targetm.set_up_by_prologue on it.
        * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
        * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
        (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
        (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
2012-01-17  Nick Clifton  
2012-01-17  Nick Clifton  
        * config/rx/rx.c (rx_can_use_simple_return): New function.
        * config/rx/rx.c (rx_can_use_simple_return): New function.
        * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
        * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
        * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
        * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
2012-01-17  Richard Guenther  
2012-01-17  Richard Guenther  
        PR middle-end/51782
        PR middle-end/51782
        * expr.c (expand_assignment): Take address-space information
        * expr.c (expand_assignment): Take address-space information
        from the address operand of MEM_REF and TARGET_MEM_REF.
        from the address operand of MEM_REF and TARGET_MEM_REF.
        (expand_expr_real_1): Likewise.
        (expand_expr_real_1): Likewise.
2012-01-17  Andreas Krebbel  
2012-01-17  Andreas Krebbel  
        * ira.c (do_reload): Make sure ira_dump_file is re-set if no
        * ira.c (do_reload): Make sure ira_dump_file is re-set if no
        reload dump is requested.
        reload dump is requested.
2012-01-17  Aldy Hernandez  
2012-01-17  Aldy Hernandez  
        PR other/51165
        PR other/51165
        * trans-mem.c (requires_barrier): Call may_be_aliased.
        * trans-mem.c (requires_barrier): Call may_be_aliased.
2012-01-17  Jakub Jelinek  
2012-01-17  Jakub Jelinek  
        PR tree-optimization/51877
        PR tree-optimization/51877
        * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
        * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
        call arguments and fndecls compare equal, instead return false if they
        call arguments and fndecls compare equal, instead return false if they
        don't.  Return true only if lhs1 and lhs2 are either both NULL, or
        don't.  Return true only if lhs1 and lhs2 are either both NULL, or
        both SSA_NAMEs that are valueized the same, or they satisfy
        both SSA_NAMEs that are valueized the same, or they satisfy
        operand_equal_p.
        operand_equal_p.
2012-01-17  Rainer Orth  
2012-01-17  Rainer Orth  
        * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
        * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
        Solaris 11+.
        Solaris 11+.
        * configure: Regenerate.
        * configure: Regenerate.
2012-01-16  Jan Hubicka  
2012-01-16  Jan Hubicka  
        PR c/12245
        PR c/12245
        PR c++/14179
        PR c++/14179
        * convert.c (convert_to_integer): Use fold_convert for
        * convert.c (convert_to_integer): Use fold_convert for
        converting an INTEGER_CST to integer type.
        converting an INTEGER_CST to integer type.
2012-01-16  Jason Merrill  
2012-01-16  Jason Merrill  
        PR c++/14179
        PR c++/14179
        * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
        * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
2012-01-16  Jakub Jelinek  
2012-01-16  Jakub Jelinek  
        PR bootstrap/51860
        PR bootstrap/51860
        * config/s390/s390.c (s390_chunkify_start): Don't skip
        * config/s390/s390.c (s390_chunkify_start): Don't skip
        call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
        call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
        NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
        NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
        If insn is followed by NOTE_INSN_VAR_LOCATION or
        If insn is followed by NOTE_INSN_VAR_LOCATION or
        NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
        NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
        Don't use location of note insns.
        Don't use location of note insns.
        PR tree-optimization/51865
        PR tree-optimization/51865
        * tree-inline.c (tree_function_versioning): Call remap_decl
        * tree-inline.c (tree_function_versioning): Call remap_decl
        on DECL_RESULT whenever it has VOID_TYPE_P type.
        on DECL_RESULT whenever it has VOID_TYPE_P type.
2012-01-15  Richard Sandiford  
2012-01-15  Richard Sandiford  
        * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
        * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
        for calls to locally-binding MIPS16 functions if only the return
        for calls to locally-binding MIPS16 functions if only the return
        type uses float regs.
        type uses float regs.
2012-01-15  Chung-Lin Tang  
2012-01-15  Chung-Lin Tang  
            Richard Sandiford  
            Richard Sandiford  
        * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
        * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
        (SYMBOL_32_HIGH): Likewise.
        (SYMBOL_32_HIGH): Likewise.
        (mips_output_tls_reloc_directive): Declare.
        (mips_output_tls_reloc_directive): Declare.
        * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
        * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
        (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
        (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
        * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
        * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
        (mips_lo_relocs, mips_hi_relocs): Make extern.
        (mips_lo_relocs, mips_hi_relocs): Make extern.
        (mips16_stub_function): Move up file.
        (mips16_stub_function): Move up file.
        (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
        (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
        (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
        (mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
        (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
        (mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
        (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
        (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
        SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
        SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
        (mips_get_tp): Add MIPS16 support.
        (mips_get_tp): Add MIPS16 support.
        (mips_legitimize_tls_address): Remove MIPS16 sorry().
        (mips_legitimize_tls_address): Remove MIPS16 sorry().
        Generalize DTPREL and TPREL handling.
        Generalize DTPREL and TPREL handling.
        (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
        (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
        Add MIPS16 TLS support.
        Add MIPS16 TLS support.
        (mips_output_tls_reloc_directive): New function.
        (mips_output_tls_reloc_directive): New function.
        (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
        (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
        * config/mips/predicates.md (symbolic_operand_with_high)
        * config/mips/predicates.md (symbolic_operand_with_high)
        (tls_reloc_operand): New predicates.
        (tls_reloc_operand): New predicates.
        (force_to_mem_operand): Use mips_use_pcrel_pool_p.
        (force_to_mem_operand): Use mips_use_pcrel_pool_p.
        * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
        * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
        (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
        (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
        (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
        (*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
        (consttable_tls_reloc, tls_get_tp_mips16_): New patterns.
        (consttable_tls_reloc, tls_get_tp_mips16_): New patterns.
        (*tls_get_tp_mips16_call_): Likewise.
        (*tls_get_tp_mips16_call_): Likewise.
2012-01-15  Uros Bizjak  
2012-01-15  Uros Bizjak  
        PR rtl-optimization/51821
        PR rtl-optimization/51821
        * recog.c (peep2_find_free_register): Determine clobbered registers
        * recog.c (peep2_find_free_register): Determine clobbered registers
        from insn pattern.
        from insn pattern.
2012-01-14  Denis Chertykov  
2012-01-14  Denis Chertykov  
        PR target/50925
        PR target/50925
        * config/avr/avr-protos.h: Revert change of 2012-01-09.
        * config/avr/avr-protos.h: Revert change of 2012-01-09.
        * config/avr/avr.c: Likewise.
        * config/avr/avr.c: Likewise.
        * config/avr/avr.h: Likewise.
        * config/avr/avr.h: Likewise.
2012-01-13  Ian Lance Taylor  
2012-01-13  Ian Lance Taylor  
        PR c++/50012
        PR c++/50012
        * tree.h (TYPE_QUALS): Add cast to int.
        * tree.h (TYPE_QUALS): Add cast to int.
        (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
        (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
2012-01-13  Ian Lance Taylor  
2012-01-13  Ian Lance Taylor  
        * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
        * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
        comparing param_index to VEC_length result.
        comparing param_index to VEC_length result.
2012-01-13  Steven Bosscher  
2012-01-13  Steven Bosscher  
        * c-decl.c: Do not include tree-mudflap.h
        * c-decl.c: Do not include tree-mudflap.h
        * tree-optimize.c: Likewise.
        * tree-optimize.c: Likewise.
        * Makefile.in: Update dependencies.
        * Makefile.in: Update dependencies.
2012-01-13  Richard Guenther  
2012-01-13  Richard Guenther  
        PR middle-end/8081
        PR middle-end/8081
        * gimplify.c (gimplify_modify_expr_rhs): For calls with a
        * gimplify.c (gimplify_modify_expr_rhs): For calls with a
        variable-sized result always use RSO.
        variable-sized result always use RSO.
2012-01-12  DJ Delorie  
2012-01-12  DJ Delorie  
        * cfgexpand.c (convert_debug_memory_address): Allow any valid
        * cfgexpand.c (convert_debug_memory_address): Allow any valid
        pointer type, not just the default pointer type.
        pointer type, not just the default pointer type.
2012-01-09  Richard Henderson  
2012-01-09  Richard Henderson  
            Denis Chertykov  
            Denis Chertykov  
        PR target/50925
        PR target/50925
        * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
        * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
        * config/avr/avr.c (avr_can_eliminate): Simplify.
        * config/avr/avr.c (avr_can_eliminate): Simplify.
        (avr_initial_elimination_offset): Likewise.
        (avr_initial_elimination_offset): Likewise.
        (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
        (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
        (expand_epilogue): Likewise.
        (expand_epilogue): Likewise.
        (avr_legitimize_address): Gut.
        (avr_legitimize_address): Gut.
        (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
        (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
        (avr_hard_regno_nregs): New.
        (avr_hard_regno_nregs): New.
        (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
        (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
        (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
        (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
        * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
        * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
        add soft frame pointer.
        add soft frame pointer.
        (CALL_USED_REGISTERS): Likewise.
        (CALL_USED_REGISTERS): Likewise.
        (REG_CLASS_CONTENTS): Likewise.
        (REG_CLASS_CONTENTS): Likewise.
        (REGISTER_NAMES): Likewise.
        (REGISTER_NAMES): Likewise.
        (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
        (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
        (HARD_FRAME_POINTER_REGNUM): New.
        (HARD_FRAME_POINTER_REGNUM): New.
        (FRAME_POINTER_REGNUM): Use soft frame pointer.
        (FRAME_POINTER_REGNUM): Use soft frame pointer.
        (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
        (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
        remove the HARD_FRAME_POINTER self-elimination.
        remove the HARD_FRAME_POINTER self-elimination.
2012-01-12  Georg-Johann Lay  
2012-01-12  Georg-Johann Lay  
        PR target/51756
        PR target/51756
        * config/avr/avr.c (avr_encode_section_info): Test for absence of
        * config/avr/avr.c (avr_encode_section_info): Test for absence of
        DECL_EXTERNAL when checking for initializers of progmem variables.
        DECL_EXTERNAL when checking for initializers of progmem variables.
2012-01-12  Ira Rosen  
2012-01-12  Ira Rosen  
        PR tree-optimization/51799
        PR tree-optimization/51799
        * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
        * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
        that the last operation is a type demotion.
        that the last operation is a type demotion.
2012-01-12  Uros Bizjak  
2012-01-12  Uros Bizjak  
        * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
        * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
        (x86_shift_adj_1): Remove operand constraint from operand 3.
        (x86_shift_adj_1): Remove operand constraint from operand 3.
2012-01-11  Jakub Jelinek  
2012-01-11  Jakub Jelinek  
        PR bootstrap/51796
        PR bootstrap/51796
        * combine.c (distribute_notes): If i3 is a noreturn call,
        * combine.c (distribute_notes): If i3 is a noreturn call,
        allow old_size to be equal to args_size and make sure the
        allow old_size to be equal to args_size and make sure the
        noreturn call gets REG_ARGS_SIZE note.
        noreturn call gets REG_ARGS_SIZE note.
        * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
        * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
        on noreturn calls even when the delta is 0.
        on noreturn calls even when the delta is 0.
2012-01-11  Nathan Sidwell  
2012-01-11  Nathan Sidwell  
        * gcov.c (STRING_SIZE): Remove.
        * gcov.c (STRING_SIZE): Remove.
        (generate_results): Erase annotations for source files with no
        (generate_results): Erase annotations for source files with no
        coverage information.
        coverage information.
        (read_line): New.
        (read_line): New.
        (output_lines): Use it.
        (output_lines): Use it.
2012-01-11  Eric Botcazou  
2012-01-11  Eric Botcazou  
        * gimple.h (gimplify_body): Remove first argument.
        * gimple.h (gimplify_body): Remove first argument.
        * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
        * gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
        pointer set here, instead just pass DATA to walk_tree.
        pointer set here, instead just pass DATA to walk_tree.
        (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
        (unshare_body): Remove BODY_P argument and adjust.  Create the pointer
        set here and invoke copy_if_shared on the size trees of DECL_RESULT.
        set here and invoke copy_if_shared on the size trees of DECL_RESULT.
        (unvisit_body): Likewise, but with unmark_visited.
        (unvisit_body): Likewise, but with unmark_visited.
        (gimplify_body): Remove BODY_P argument and adjust.
        (gimplify_body): Remove BODY_P argument and adjust.
        (gimplify_function_tree): Adjust call to gimplify_body.
        (gimplify_function_tree): Adjust call to gimplify_body.
        * omp-low.c (finalize_task_copyfn): Likewise.
        * omp-low.c (finalize_task_copyfn): Likewise.
2012-01-11  Eric Botcazou  
2012-01-11  Eric Botcazou  
        * tree.h (build_function_decl_skip_args): Add boolean parameter.
        * tree.h (build_function_decl_skip_args): Add boolean parameter.
        (build_function_type_skip_args): Delete.
        (build_function_type_skip_args): Delete.
        * tree.c (build_function_type_skip_args): Make static and add
        * tree.c (build_function_type_skip_args): Make static and add
        SKIP_RETURN parameter.  Fix thinko in the handling of variants.
        SKIP_RETURN parameter.  Fix thinko in the handling of variants.
        (build_function_decl_skip_args): Add SKIP_RETURN parameter and
        (build_function_decl_skip_args): Add SKIP_RETURN parameter and
        pass it to build_function_type_skip_args.
        pass it to build_function_type_skip_args.
        * cgraph.h (cgraph_function_versioning): Add boolean parameter.
        * cgraph.h (cgraph_function_versioning): Add boolean parameter.
        (tree_function_versioning): Likewise.
        (tree_function_versioning): Likewise.
        * cgraph.c (cgraph_create_virtual_clone): Adjust call to
        * cgraph.c (cgraph_create_virtual_clone): Adjust call to
        build_function_decl_skip_args.
        build_function_decl_skip_args.
        * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
        * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
        and pass it to build_function_decl_skip_args/tree_function_versioning.
        and pass it to build_function_decl_skip_args/tree_function_versioning.
        (cgraph_materialize_clone): Adjust call to tree_function_versioning.
        (cgraph_materialize_clone): Adjust call to tree_function_versioning.
        * ipa-inline-transform.c (save_inline_function_body): Likewise.
        * ipa-inline-transform.c (save_inline_function_body): Likewise.
        * trans-mem.c (ipa_tm_create_version): Likewise.
        * trans-mem.c (ipa_tm_create_version): Likewise.
        * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
        * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
        * tree-inline.c (declare_return_variable): Remove always-true test.
        * tree-inline.c (declare_return_variable): Remove always-true test.
        (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
        (tree_function_versioning): Add SKIP_RETURN parameter.  If the function
        returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
        returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
        * ipa-split.c (split_function): Skip the return value for the split
        * ipa-split.c (split_function): Skip the return value for the split
        part if it doesn't return.
        part if it doesn't return.
2012-01-11  Bill Schmidt  
2012-01-11  Bill Schmidt  
        PR tree-optimization/49642
        PR tree-optimization/49642
        * ipa-split.c (forbidden_dominators): New variable.
        * ipa-split.c (forbidden_dominators): New variable.
        (check_forbidden_calls): New function.
        (check_forbidden_calls): New function.
        (dominated_by_forbidden): Likewise.
        (dominated_by_forbidden): Likewise.
        (consider_split): Check for forbidden dominators.
        (consider_split): Check for forbidden dominators.
        (execute_split_functions): Initialize and free forbidden
        (execute_split_functions): Initialize and free forbidden
        dominators info; call check_forbidden_calls.
        dominators info; call check_forbidden_calls.
2012-01-11  Matthew Gretton-Dann  
2012-01-11  Matthew Gretton-Dann  
        * config/arm/arm.md (mov_notscc): Use MVN for false condition.
        * config/arm/arm.md (mov_notscc): Use MVN for false condition.
2012-01-11  Nick Clifton  
2012-01-11  Nick Clifton  
        * config/rx/rx.md (return): Define pattern.
        * config/rx/rx.md (return): Define pattern.
2012-01-11  Richard Guenther  
2012-01-11  Richard Guenther  
        * doc/extend.texi (malloc attribute): Adjust according to
        * doc/extend.texi (malloc attribute): Adjust according to
        implementation.
        implementation.
2012-01-10  Aldy Hernandez  
2012-01-10  Aldy Hernandez  
            Patrick Marlier  
            Patrick Marlier  
        PR middle-end/51516
        PR middle-end/51516
        * trans-mem.c (get_cg_data): Traverse aliases if requested.
        * trans-mem.c (get_cg_data): Traverse aliases if requested.
        (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
        (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
        (ipa_tm_note_irrevocable): Same.
        (ipa_tm_note_irrevocable): Same.
        (ipa_tm_scan_irr_block): Same.
        (ipa_tm_scan_irr_block): Same.
        (ipa_tm_decrement_clone_counts): Same.
        (ipa_tm_decrement_clone_counts): Same.
        (ipa_tm_scan_irr_function): Same.
        (ipa_tm_scan_irr_function): Same.
        (ipa_tm_create_version_alias): Same.
        (ipa_tm_create_version_alias): Same.
        (ipa_tm_create_version): Same.
        (ipa_tm_create_version): Same.
        (ipa_tm_transform_calls_redirect): Same.
        (ipa_tm_transform_calls_redirect): Same.
        (ipa_tm_transform_calls): Same.
        (ipa_tm_transform_calls): Same.
        (ipa_tm_transform_transaction): Same.
        (ipa_tm_transform_transaction): Same.
        (ipa_tm_execute): Same.
        (ipa_tm_execute): Same.
2012-01-10  Richard Guenther  
2012-01-10  Richard Guenther  
        PR middle-end/51806
        PR middle-end/51806
        * opts.c (common_handle_option): Handle -Werror.
        * opts.c (common_handle_option): Handle -Werror.
2012-01-10  Andreas Schwab  
2012-01-10  Andreas Schwab  
        * config/m68k/sync.md ("atomic_compare_and_swap_1"): Fix
        * config/m68k/sync.md ("atomic_compare_and_swap_1"): Fix
        operand number.
        operand number.
2012-01-10  Jason Merrill  
2012-01-10  Jason Merrill  
        * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
        * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
        information.
        information.
2012-01-10  Rainer Orth  
2012-01-10  Rainer Orth  
        * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
        * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
        supports R_386_TLS_GD_PLT reloc.
        supports R_386_TLS_GD_PLT reloc.
        (gcc_cv_as_ix86_tlsldmplt): Check if linker
        (gcc_cv_as_ix86_tlsldmplt): Check if linker
        supports R_386_TLS_LDM_PLT reloc.
        supports R_386_TLS_LDM_PLT reloc.
        * configure: Regenerate.
        * configure: Regenerate.
        * config.in: Regenerate.
        * config.in: Regenerate.
2012-01-10  Georg-Johann Lay  
2012-01-10  Georg-Johann Lay  
        PR target/49868
        PR target/49868
        Extend __pgmx semantics to linearize memory.
        Extend __pgmx semantics to linearize memory.
        * config/avr/avr.md (mov): Use avr_xload_libgcc_p to
        * config/avr/avr.md (mov): Use avr_xload_libgcc_p to
        determine if code comes inline or from libgcc.
        determine if code comes inline or from libgcc.
        (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
        (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
        (movmem_qi, movmem_qi): Set constraint #2 to "n".
        (movmem_qi, movmem_qi): Set constraint #2 to "n".
        (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
        (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
        (movmemx_qi, movmemx_hi): New insns.
        (movmemx_qi, movmemx_hi): New insns.
        (xload__libgcc): Rewrite to new insn condition.
        (xload__libgcc): Rewrite to new insn condition.
        (xload_): Remove insns.
        (xload_): Remove insns.
        * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
        * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
        cases that don't satisfy avr_xload_libgcc_p().
        cases that don't satisfy avr_xload_libgcc_p().
        (avr_addr_space_convert): Allow converting in any direction.
        (avr_addr_space_convert): Allow converting in any direction.
        (avr_addr_space_subset_p): Return always true.
        (avr_addr_space_subset_p): Return always true.
        (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
        (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
        (avr_emit_movmemhi): Ditto.
        (avr_emit_movmemhi): Ditto.
        (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
        (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
        (avr_out_movmem): Ditto.
        (avr_out_movmem): Ditto.
        (AVR_SYMBOL_FLAG_PROGMEM): New macro.
        (AVR_SYMBOL_FLAG_PROGMEM): New macro.
        (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
        (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
        (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
        (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
        (avr_encode_section_info): Encode 'progmem' in symbol flags.
        (avr_encode_section_info): Encode 'progmem' in symbol flags.
        (output_reload_in_const): Don't zero-extend any 24-bit symbols.
        (output_reload_in_const): Don't zero-extend any 24-bit symbols.
2012-01-10  Richard Guenther  
2012-01-10  Richard Guenther  
        PR tree-optimization/50913
        PR tree-optimization/50913
        * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
        * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
        Require data-refs to be representable by Graphite with respect
        Require data-refs to be representable by Graphite with respect
        to any loop nest.
        to any loop nest.
2012-01-10  Uros Bizjak  
2012-01-10  Uros Bizjak  
        * config/i386/constraints.md ("L"): Return true for 0xffffffff.
        * config/i386/constraints.md ("L"): Return true for 0xffffffff.
        * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
        * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
2012-01-10  Tom de Vries  
2012-01-10  Tom de Vries  
        PR rtl-optimization/51271
        PR rtl-optimization/51271
        * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
        * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
        handling annulled branch.
        handling annulled branch.
2012-01-10  Richard Henderson  
2012-01-10  Richard Henderson  
        * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
        * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
        TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
        TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
        struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
        struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
        arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
        arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
        arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
        arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
        arm_expand_vec_perm_const): New.
        arm_expand_vec_perm_const): New.
        * config/arm/arm-protos.h: Update.
        * config/arm/arm-protos.h: Update.
        * config/arm/neon.md (UNSPEC_VCONCAT): New.
        * config/arm/neon.md (UNSPEC_VCONCAT): New.
        (*neon_vswp): New.
        (*neon_vswp): New.
        (neon_vcombine): Use neon_split_vcombine.
        (neon_vcombine): Use neon_split_vcombine.
        (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
        (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
        * config/arm/vec-common.md (vec_perm_const): New.
        * config/arm/vec-common.md (vec_perm_const): New.
        (vec_perm): New.
        (vec_perm): New.
2012-01-10  Richard Henderson  
2012-01-10  Richard Henderson  
        * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
        * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
        use it if reload_completed.
        use it if reload_completed.
        (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
        (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
        arm_output_asm_insn, arm_process_output_memory_barrier,
        arm_output_asm_insn, arm_process_output_memory_barrier,
        arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
        arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
        arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
        arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
        arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
        arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
        arm_process_output_sync_insn, arm_output_sync_insn,
        arm_process_output_sync_insn, arm_output_sync_insn,
        arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
        arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
        (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
        (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
        (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
        (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
        (emit_unlikely_jump): New.
        (emit_unlikely_jump): New.
        (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
        (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
        (arm_split_atomic_op): New.
        (arm_split_atomic_op): New.
        * config/arm/arm-protos.h: Update.
        * config/arm/arm-protos.h: Update.
        * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
        * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
        (struct arm_sync_generator): Remove.
        (struct arm_sync_generator): Remove.
        * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
        * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
        VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
        VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
        (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
        (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
        (VUNSPEC_LL, VUNSPEC_SC): New.
        (VUNSPEC_LL, VUNSPEC_SC): New.
        (sync_result, sync_memory, sync_required_value, sync_new_value,
        (sync_result, sync_memory, sync_required_value, sync_new_value,
        sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
        sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
        (attr length): Don't use arm_sync_loop_insns.
        (attr length): Don't use arm_sync_loop_insns.
        (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
        (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
        (movsfcc, movdfcc): Likewise.
        (movsfcc, movdfcc): Likewise.
        * config/arm/constraints.md (Ua): New.
        * config/arm/constraints.md (Ua): New.
        * config/arm/prediates.md (mem_noofs_operand): New.
        * config/arm/prediates.md (mem_noofs_operand): New.
        (sync_compare_and_swap, sync_lock_test_and_set): Remove.
        (sync_compare_and_swap, sync_lock_test_and_set): Remove.
        (sync_clobber, sync_t2_reqd): Remove.
        (sync_clobber, sync_t2_reqd): Remove.
        (sync_, sync_nand): Remove.
        (sync_, sync_nand): Remove.
        (sync_new_, sync_new_nand): Remove.
        (sync_new_, sync_new_nand): Remove.
        (sync_old_, sync_old_nand): Remove.
        (sync_old_, sync_old_nand): Remove.
        (arm_sync_compare_and_swap): Remove.
        (arm_sync_compare_and_swap): Remove.
        (arm_sync_compare_and_swap): Remove.
        (arm_sync_compare_and_swap): Remove.
        (arm_sync_lock_test_and_set): Remove.
        (arm_sync_lock_test_and_set): Remove.
        (arm_sync_lock_test_and_set): Remove.
        (arm_sync_lock_test_and_set): Remove.
        (arm_sync_new_): Remove.
        (arm_sync_new_): Remove.
        (arm_sync_new_): Remove.
        (arm_sync_new_): Remove.
        (arm_sync_new_nand): Remove.
        (arm_sync_new_nand): Remove.
        (arm_sync_new_nand): Remove.
        (arm_sync_new_nand): Remove.
        (arm_sync_old_): Remove.
        (arm_sync_old_): Remove.
        (arm_sync_old_): Remove.
        (arm_sync_old_): Remove.
        (arm_sync_old_nand): Remove.
        (arm_sync_old_nand): Remove.
        (arm_sync_old_nand): Remove.
        (arm_sync_old_nand): Remove.
        (*memory_barrier): Merge arm_output_memory_barrier.
        (*memory_barrier): Merge arm_output_memory_barrier.
        (atomic_compare_and_swap): New.
        (atomic_compare_and_swap): New.
        (atomic_compare_and_swap_1): New.
        (atomic_compare_and_swap_1): New.
        (atomic_compare_and_swap_1): New.
        (atomic_compare_and_swap_1): New.
        (atomic_exchange): New.
        (atomic_exchange): New.
        (cas_cmp_operand, cas_cmp_str): New.
        (cas_cmp_operand, cas_cmp_str): New.
        (atomic_op_operand, atomic_op_str): New.
        (atomic_op_operand, atomic_op_str): New.
        (atomic_, atomic_nand): New.
        (atomic_, atomic_nand): New.
        (atomic_fetch_, atomic_fetch_nand): New.
        (atomic_fetch_, atomic_fetch_nand): New.
        (atomic__fetch, atomic_nand_fetch): New.
        (atomic__fetch, atomic_nand_fetch): New.
        (arm_load_exclusive): New.
        (arm_load_exclusive): New.
        (arm_load_exclusivesi, arm_load_exclusivedi): New.
        (arm_load_exclusivesi, arm_load_exclusivedi): New.
        (arm_store_exclusive): New.
        (arm_store_exclusive): New.
2012-01-09  Michael Meissner  
2012-01-09  Michael Meissner  
        * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
        * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
        reload patterns if -mvsx-scalar-memory.
        reload patterns if -mvsx-scalar-memory.
        * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
        * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
        generated, even -mno-vsx-scalar-double was used.
        generated, even -mno-vsx-scalar-double was used.
        (vsx_xscvdpsp_scalar): Likewise.
        (vsx_xscvdpsp_scalar): Likewise.
        (vsx_xscvspdp_scalar2): Likewise.
        (vsx_xscvspdp_scalar2): Likewise.
2012-01-09  Tom de Vries  
2012-01-09  Tom de Vries  
            Andrew Pinski  
            Andrew Pinski  
        PR debug/51471
        PR debug/51471
        * reorg.c (fill_slots_from_thread): Don't speculate
        * reorg.c (fill_slots_from_thread): Don't speculate
        frame-related insns.
        frame-related insns.
2012-01-09  Richard Sandiford  
2012-01-09  Richard Sandiford  
        * sched-int.h (bb_note): Move to...
        * sched-int.h (bb_note): Move to...
        * basic-block.h: ...here.
        * basic-block.h: ...here.
        * haifa-sched.c (bb_note): Move to...
        * haifa-sched.c (bb_note): Move to...
        * cfgrtl.c: ...here.
        * cfgrtl.c: ...here.
        * function.c (next_block_for_reg): New function.
        * function.c (next_block_for_reg): New function.
        (move_insn_for_shrink_wrap): Likewise.
        (move_insn_for_shrink_wrap): Likewise.
        (prepare_shrink_wrap): Rewrite to use the above.
        (prepare_shrink_wrap): Rewrite to use the above.
2012-01-09  Aldy Hernandez  
2012-01-09  Aldy Hernandez  
        * gimple.c (is_gimple_non_addressable): Remove.
        * gimple.c (is_gimple_non_addressable): Remove.
        * gimple.h: Remove is_gimple_non_addressable.
        * gimple.h: Remove is_gimple_non_addressable.
        * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
        * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
        is_gimple_non_addressable.
        is_gimple_non_addressable.
        * trans-mem.c (expand_assign_tm): Same.
        * trans-mem.c (expand_assign_tm): Same.
2012-01-09  Richard Guenther  
2012-01-09  Richard Guenther  
        PR tree-optimization/51775
        PR tree-optimization/51775
        * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
        * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
        * tree-ssa-pre.c (eliminate): Properly fixup EH info.
        * tree-ssa-pre.c (eliminate): Properly fixup EH info.
2012-01-09  Matthew Gretton-Dann  
2012-01-09  Matthew Gretton-Dann  
        * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
        * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
        tuning parameters.
        tuning parameters.
        * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
        * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
2012-01-09  Richard Guenther  
2012-01-09  Richard Guenther  
        * tree-streamer-out.c (write_ts_optimization): Fix spelling.
        * tree-streamer-out.c (write_ts_optimization): Fix spelling.
2012-01-08  Jan Hubicka  
2012-01-08  Jan Hubicka  
        PR tree-optimize/51680
        PR tree-optimize/51680
        * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
        * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
        on when known_vals needs to be computed; cleanup.
        on when known_vals needs to be computed; cleanup.
2012-01-08  Jan Hubicka  
2012-01-08  Jan Hubicka  
        PR tree-optimize/51694
        PR tree-optimize/51694
        * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
        * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
2012-01-08  Jonathan Wakely  
2012-01-08  Jonathan Wakely  
        * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
        * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
        for -std=c++98 and -std=c++11 too.
        for -std=c++98 and -std=c++11 too.
2012-01-08  Chung-Lin Tang  
2012-01-08  Chung-Lin Tang  
        * cfgloop.c (cancel_loop): Add free() of bbs array.
        * cfgloop.c (cancel_loop): Add free() of bbs array.
2012-01-07  Jan Hubicka  
2012-01-07  Jan Hubicka  
        PR tree-optimization/51600
        PR tree-optimization/51600
        * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
        * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
        that benefits small functions.
        that benefits small functions.
2012-01-07  Jan Hubicka  
2012-01-07  Jan Hubicka  
        * ipa-inline.c (want_inline_small_function_p): Fix formating.
        * ipa-inline.c (want_inline_small_function_p): Fix formating.
2012-01-07  Jan Hubicka  
2012-01-07  Jan Hubicka  
        PR tree-optimization/51680
        PR tree-optimization/51680
        * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
        * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
        whose inlining reduce unit size.
        whose inlining reduce unit size.
2012-01-07  Alexandre Oliva  
2012-01-07  Alexandre Oliva  
        PR bootstrap/51725
        PR bootstrap/51725
        * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
        * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
        Add canonical node to containing_mem chain after the non-canonical
        Add canonical node to containing_mem chain after the non-canonical
        one, even if there weren't any locs to propagate.
        one, even if there weren't any locs to propagate.
        (remove_useless_values): Keep only canonical values.
        (remove_useless_values): Keep only canonical values.
        (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
        (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
        (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
        (cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
        canonicalize mem_chain elements that are not discarded.
        canonicalize mem_chain elements that are not discarded.
2012-01-06  Jakub Jelinek  
2012-01-06  Jakub Jelinek  
        PR target/47333
        PR target/47333
        * cgraphunit.c (cgraph_optimize): Call output_weakrefs
        * cgraphunit.c (cgraph_optimize): Call output_weakrefs
        before emitting functions.
        before emitting functions.
        PR gcov-profile/50127
        PR gcov-profile/50127
        * bb-reorder.c (partition_hot_cold_basic_blocks): Call
        * bb-reorder.c (partition_hot_cold_basic_blocks): Call
        clear_aux_for_blocks.
        clear_aux_for_blocks.
2012-01-06  Alexandre Oliva  
2012-01-06  Alexandre Oliva  
        PR debug/51746
        PR debug/51746
        * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
        * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
2012-01-06  Arnaud Charlet  
2012-01-06  Arnaud Charlet  
        * c-decl.c (ext_block): Moved up.
        * c-decl.c (ext_block): Moved up.
        (collect_all_refs, for_each_global_decl): Take ext_block into account.
        (collect_all_refs, for_each_global_decl): Take ext_block into account.
2012-01-06  Han Shen  
2012-01-06  Han Shen  
        Translate built-in include paths for sysroot.
        Translate built-in include paths for sysroot.
        * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
        * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
        (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
        (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
        * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
        * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
        GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
        GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
        * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
        * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
        control whether sysroot should be prepended to gxx include dir.
        control whether sysroot should be prepended to gxx include dir.
        * configure: Regenerate.
        * configure: Regenerate.
2012-01-06  Torvald Riegel  
2012-01-06  Torvald Riegel  
        PR rtl-optimization/51771
        PR rtl-optimization/51771
        * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
        * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
        * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
        * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
2012-01-05  Eric Botcazou  
2012-01-05  Eric Botcazou  
        PR tree-optimization/51315
        PR tree-optimization/51315
        * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
        * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
        (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
        (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
2012-01-05  Uros Bizjak  
2012-01-05  Uros Bizjak  
        PR target/51681
        PR target/51681
        * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
        * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
        for shrp pattern.  Correctly handle and fixup shift variable.
        for shrp pattern.  Correctly handle and fixup shift variable.
        Return false when shift > nelt for BYTES_BIG_ENDIAN target.
        Return false when shift > nelt for BYTES_BIG_ENDIAN target.
2012-01-05  Jakub Jelinek  
2012-01-05  Jakub Jelinek  
        PR debug/51762
        PR debug/51762
        * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
        * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
        note when !ACCUMULATE_OUTGOING_ARGS.
        note when !ACCUMULATE_OUTGOING_ARGS.
2012-01-05  Eric Botcazou  
2012-01-05  Eric Botcazou  
        * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
        * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
        condition.
        condition.
        (extract_range_from_unary_expr_1): Avoid useless computations.
        (extract_range_from_unary_expr_1): Avoid useless computations.
2012-01-05  Jakub Jelinek  
2012-01-05  Jakub Jelinek  
        PR rtl-optimization/51767
        PR rtl-optimization/51767
        * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
        * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
        of jump_block and add an extra edge for degenerated asm gotos.
        of jump_block and add an extra edge for degenerated asm gotos.
        PR middle-end/51768
        PR middle-end/51768
        * stmt.c (check_unique_operand_names): Don't ICE during error
        * stmt.c (check_unique_operand_names): Don't ICE during error
        reporting if i is from labels chain.
        reporting if i is from labels chain.
        PR middle-end/44777
        PR middle-end/44777
        * profile.c (branch_prob): Split bbs that have exit edge
        * profile.c (branch_prob): Split bbs that have exit edge
        and need a fake entry edge too.
        and need a fake entry edge too.
2012-01-05  Jan Hubicka  
2012-01-05  Jan Hubicka  
        PR middle-end/49710
        PR middle-end/49710
        * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
        * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
        unlooping loops.
        unlooping loops.
2012-01-05  Richard Guenther  
2012-01-05  Richard Guenther  
        PR lto/50490
        PR lto/50490
        * tree-streamer-out.c (write_ts_optimization): New function.
        * tree-streamer-out.c (write_ts_optimization): New function.
        (streamer_write_tree_body): Call it.
        (streamer_write_tree_body): Call it.
        * tree-streamer-in.c (lto_input_ts_optimization): New function.
        * tree-streamer-in.c (lto_input_ts_optimization): New function.
        (streamer_read_tree_body): Call it.
        (streamer_read_tree_body): Call it.
        * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
        * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
2012-01-05  Jakub Jelinek  
2012-01-05  Jakub Jelinek  
        PR middle-end/51761
        PR middle-end/51761
        * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
        * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
        * gimplify.c (gimplify_cleanup_point_expr): Save and set
        * gimplify.c (gimplify_cleanup_point_expr): Save and set
        in_cleanup_point_expr before gimplify_stmt call and restore it
        in_cleanup_point_expr before gimplify_stmt call and restore it
        afterwards.
        afterwards.
        (gimplify_target_expr): Don't add {CLOBBER} cleanup if
        (gimplify_target_expr): Don't add {CLOBBER} cleanup if
        in_cleanup_point_expr is false.
        in_cleanup_point_expr is false.
2012-01-05  Richard Guenther  
2012-01-05  Richard Guenther  
        PR middle-end/51764
        PR middle-end/51764
        * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
        * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
        to c.opt.
        to c.opt.
        * toplev.c (process_options): Reject combining mudflap and LTO.
        * toplev.c (process_options): Reject combining mudflap and LTO.
        * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
        * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
2012-01-05  Richard Guenther  
2012-01-05  Richard Guenther  
        PR tree-optimization/51760
        PR tree-optimization/51760
        * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
        * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
        not VARYING.
        not VARYING.
        (bit_value_unop): Handle UNDEFINED operands.
        (bit_value_unop): Handle UNDEFINED operands.
        (bit_value_binop): Likewise.
        (bit_value_binop): Likewise.
2012-01-05  Georg-Johann Lay  
2012-01-05  Georg-Johann Lay  
        * config/avr/avr.c (avr_replace_prefix): Remove.
        * config/avr/avr.c (avr_replace_prefix): Remove.
        (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
        (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
        (avr_asm_function_rodata_section): Ditto.
        (avr_asm_function_rodata_section): Ditto.
        (avr_asm_select_section): Ditto.
        (avr_asm_select_section): Ditto.
2012-01-05  Marcus Shawcroft  
2012-01-05  Marcus Shawcroft  
        * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
        * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
        insertion.
        insertion.
2012-01-05  Jakub Jelinek  
2012-01-05  Jakub Jelinek  
        PR bootstrap/51648
        PR bootstrap/51648
        * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
        * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
        calls that have any non-fake successor edges.
        calls that have any non-fake successor edges.
        PR debug/51746
        PR debug/51746
        * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
        * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
2012-01-04  Eric Botcazou  
2012-01-04  Eric Botcazou  
        PR tree-optimization/51624
        PR tree-optimization/51624
        * tree-sra.c (build_ref_for_model): When replicating a chain of
        * tree-sra.c (build_ref_for_model): When replicating a chain of
        COMPONENT_REFs, stop as soon as the offset would become negative.
        COMPONENT_REFs, stop as soon as the offset would become negative.
2012-01-04  Jakub Jelinek  
2012-01-04  Jakub Jelinek  
        PR debug/51695
        PR debug/51695
        * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
        * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
        in .debug_loc on the floor.
        in .debug_loc on the floor.
2012-01-04  Andrew Pinski  
2012-01-04  Andrew Pinski  
        * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
        * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
2012-01-04  Andrew Pinski  
2012-01-04  Andrew Pinski  
            Adam Nemet  
            Adam Nemet  
        * config/mips/mips.md (size): Add SI and DI.
        * config/mips/mips.md (size): Add SI and DI.
        (SIZE): New mode attribute.
        (SIZE): New mode attribute.
        (U): New code attribute.
        (U): New code attribute.
        * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
        * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
        (mips_lbux_): Delete.
        (mips_lbux_): Delete.
        (mips_lx_ext_): New pattern.
        (mips_lx_ext_): New pattern.
        (mips_lhx): Use gen_mips_lhx_extsi.
        (mips_lhx): Use gen_mips_lhx_extsi.
        (mips_lhx_): Delete.
        (mips_lhx_): Delete.
        (mips_lwx): Delete.
        (mips_lwx): Delete.
        (mips_lx): New expand.
        (mips_lx): New expand.
        (mips_lwx_): Delete.
        (mips_lwx_): Delete.
        (mips_lx_): New pattern.
        (mips_lx_): New pattern.
        (*mips_lwx__ext): Likewise.
        (*mips_lwx__ext): Likewise.
        * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
        * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
        * config/mips/mips.c (mips_lx_address_p): New function.
        * config/mips/mips.c (mips_lx_address_p): New function.
        (mips_rtx_costs ): Call mips_lx_address_p.
        (mips_rtx_costs ): Call mips_lx_address_p.
        (dsp64): New availability predicate.
        (dsp64): New availability predicate.
        (mips_builtins): Add an entry for __builtin_mips_ldx.
        (mips_builtins): Add an entry for __builtin_mips_ldx.
        * config/mips/mips.h (ISA_HAS_LBX): New define.
        * config/mips/mips.h (ISA_HAS_LBX): New define.
        (ISA_HAS_LBUX): Likewise.
        (ISA_HAS_LBUX): Likewise.
        (ISA_HAS_LHX): Likewise.
        (ISA_HAS_LHX): Likewise.
        (ISA_HAS_LHUX): Likewise.
        (ISA_HAS_LHUX): Likewise.
        (ISA_HAS_LWX): Likewise.
        (ISA_HAS_LWX): Likewise.
        (ISA_HAS_LWUX): Likewise.
        (ISA_HAS_LWUX): Likewise.
        (ISA_HAS_LDX): Likewise.
        (ISA_HAS_LDX): Likewise.
        * doc/extend.texi (__builtin_mips_ldx): Document.
        * doc/extend.texi (__builtin_mips_ldx): Document.
2012-01-04  Tristan Gingold  
2012-01-04  Tristan Gingold  
        * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
        * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
        when long pointers are used.
        when long pointers are used.
        * config.build (*-*-*vms*): Handle all OpenVMS targets.
        * config.build (*-*-*vms*): Handle all OpenVMS targets.
        (alpha64-dec-*vms*, alpha*-dec-*vms*)
        (alpha64-dec-*vms*, alpha*-dec-*vms*)
        (ia64-hp-*vms*): Remove.
        (ia64-hp-*vms*): Remove.
        * config/vms/xm-vms64.h: Delete.
        * config/vms/xm-vms64.h: Delete.
2012-01-04  Aldy Hernandez  
2012-01-04  Aldy Hernandez  
        PR middle-end/51472
        PR middle-end/51472
        * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
        * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
2012-01-04  Aldy Hernandez  
2012-01-04  Aldy Hernandez  
        * opts.c (finish_options): Remove duplicate sorry.
        * opts.c (finish_options): Remove duplicate sorry.
2012-01-04  Aldy Hernandez  
2012-01-04  Aldy Hernandez  
        PR middle-end/51696
        PR middle-end/51696
        * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
        * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
        correctly.
        correctly.
2012-01-04  Richard Guenther  
2012-01-04  Richard Guenther  
        PR middle-end/51750
        PR middle-end/51750
        * tree.c (size_low_cst): New function.
        * tree.c (size_low_cst): New function.
        * tree.h (size_low_cst): Declare.
        * tree.h (size_low_cst): Declare.
        * fold-const.c (fold_comparison): Use it to extract the low
        * fold-const.c (fold_comparison): Use it to extract the low
        part of the POINTER_PLUS_EXPR offset.
        part of the POINTER_PLUS_EXPR offset.
2012-01-04  Georg-Johann Lay  
2012-01-04  Georg-Johann Lay  
        Fix clearing ZERO_REG
        Fix clearing ZERO_REG
        * config/avr/avr.md (cc): Add alternative "ldi".
        * config/avr/avr.md (cc): Add alternative "ldi".
        (movqi_insn): Use it in cc attribute.
        (movqi_insn): Use it in cc attribute.
        * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
        * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
        (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
        (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
        (output_reload_insisf): Use ZERO_REG to pre-clear register.
        (output_reload_insisf): Use ZERO_REG to pre-clear register.
2012-01-04  Andreas Krebbel  
2012-01-04  Andreas Krebbel  
        * configure: Regenerate.
        * configure: Regenerate.
2012-01-04  Richard Guenther  
2012-01-04  Richard Guenther  
        PR tree-optimization/49651
        PR tree-optimization/49651
        * tree-ssa-structalias.c (type_can_have_subvars): New function.
        * tree-ssa-structalias.c (type_can_have_subvars): New function.
        (var_can_have_subvars): Use it.
        (var_can_have_subvars): Use it.
        (get_constraint_for_1): Only consider subfields if there can be any.
        (get_constraint_for_1): Only consider subfields if there can be any.
2012-01-03  Jakub Jelinek  
2012-01-03  Jakub Jelinek  
        PR bootstrap/51725
        PR bootstrap/51725
        * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
        * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
        to its new canonical_cselib_val and the cselib_val was in
        to its new canonical_cselib_val and the cselib_val was in
        first_containing_mem chain, but the canonical_cselib_val was not,
        first_containing_mem chain, but the canonical_cselib_val was not,
        add the latter into the chain.
        add the latter into the chain.
        (cselib_invalidate_mem): Compare canonical_cselib_val of
        (cselib_invalidate_mem): Compare canonical_cselib_val of
        addr_list chain elt with v.
        addr_list chain elt with v.
        PR pch/51722
        PR pch/51722
        * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
        * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
        dwarf2out_undef): Allocate e.info using ggc_strdup instead
        dwarf2out_undef): Allocate e.info using ggc_strdup instead
        of xstrdup.
        of xstrdup.
        (output_macinfo_op): Don't ggc_strdup fd->filename.
        (output_macinfo_op): Don't ggc_strdup fd->filename.
        (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
        (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
        then ggc_strdup it.  Don't free inc->info or cur->info.
        then ggc_strdup it.  Don't free inc->info or cur->info.
        (output_macinfo): Don't free ref->info or file->info.
        (output_macinfo): Don't free ref->info or file->info.
2012-01-03  Ira Rosen  
2012-01-03  Ira Rosen  
        PR tree-optimization/51269
        PR tree-optimization/51269
        * tree-vect-loop-manip.c (set_prologue_iterations): Make
        * tree-vect-loop-manip.c (set_prologue_iterations): Make
        first_niters a pointer.
        first_niters a pointer.
        (slpeel_tree_peel_loop_to_edge): Likewise.
        (slpeel_tree_peel_loop_to_edge): Likewise.
        (vect_do_peeling_for_loop_bound): Update call to
        (vect_do_peeling_for_loop_bound): Update call to
        slpeel_tree_peel_loop_to_edge.
        slpeel_tree_peel_loop_to_edge.
        (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
        (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
        here.  Remove it from the parameters list.
        here.  Remove it from the parameters list.
        (vect_do_peeling_for_alignment): Update calls and compute
        (vect_do_peeling_for_alignment): Update calls and compute
        wide_prolog_niters.
        wide_prolog_niters.
2012-01-03  Richard Guenther  
2012-01-03  Richard Guenther  
        PR tree-optimization/51070
        PR tree-optimization/51070
        * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
        * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
        Properly handle calls.
        Properly handle calls.
2012-01-03  Richard Guenther  
2012-01-03  Richard Guenther  
        PR tree-optimization/51692
        PR tree-optimization/51692
        * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
        * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
        the LHS of allocation stmts.
        the LHS of allocation stmts.
2012-01-03  Olivier Hainque  
2012-01-03  Olivier Hainque  
        * system.h: Prior to #define, #undef fopen and freopen unconditionally.
        * system.h: Prior to #define, #undef fopen and freopen unconditionally.
2012-01-03  Olivier Hainque  
2012-01-03  Olivier Hainque  
        * collect2.c (main): In AIX specific computations for vector
        * collect2.c (main): In AIX specific computations for vector
        insertions, use CONST_CAST2 to cast from char ** to const char **.
        insertions, use CONST_CAST2 to cast from char ** to const char **.
2012-01-03  Richard Guenther  
2012-01-03  Richard Guenther  
        PR debug/51650
        PR debug/51650
        * dwarf2out.c (dwarf2out_finish): Always create a DIE for
        * dwarf2out.c (dwarf2out_finish): Always create a DIE for
        the context of a limbo DIE when it does not already exist.
        the context of a limbo DIE when it does not already exist.
2012-01-03  Jakub Jelinek  
2012-01-03  Jakub Jelinek  
        PR tree-optimization/51719
        PR tree-optimization/51719
        * value-prof.c (gimple_ic): When indirect call isn't noreturn,
        * value-prof.c (gimple_ic): When indirect call isn't noreturn,
        but direct call is, clear direct call's lhs and don't add fallthrough
        but direct call is, clear direct call's lhs and don't add fallthrough
        edge from dcall_bb to join_bb and PHIs.
        edge from dcall_bb to join_bb and PHIs.
2012-01-03  Andreas Krebbel  
2012-01-03  Andreas Krebbel  
        * config/s390/s390.md ("*cmp_ccs"): Fix comment mentioning
        * config/s390/s390.md ("*cmp_ccs"): Fix comment mentioning
        the instructions emitted by the pattern.
        the instructions emitted by the pattern.
        ("*TDC_insn_"): Add comment.
        ("*TDC_insn_"): Add comment.
2012-01-03  Richard Guenther  
2012-01-03  Richard Guenther  
        PR middle-end/51730
        PR middle-end/51730
        * fold-const.c (fold_comparison): Properly canonicalize
        * fold-const.c (fold_comparison): Properly canonicalize
        tree offset and HOST_WIDE_INT bit position.
        tree offset and HOST_WIDE_INT bit position.
2012-01-02  Uros Bizjak  
2012-01-02  Uros Bizjak  
        * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
        * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
        operands for extzv pattern.
        operands for extzv pattern.
2012-01-02  Jakub Jelinek  
2012-01-02  Jakub Jelinek  
        PR bootstrap/51725
        PR bootstrap/51725
        * cselib.c (add_mem_for_addr): Call canonical_cselib_val
        * cselib.c (add_mem_for_addr): Call canonical_cselib_val
        on mem_elt first.
        on mem_elt first.
2012-01-02  Sandra Loosemore  
2012-01-02  Sandra Loosemore  
        * doc/invoke.texi (-flto and related options): Copy-edit.
        * doc/invoke.texi (-flto and related options): Copy-edit.
2012-01-02  Richard Sandiford  
2012-01-02  Richard Sandiford  
        * config/mips/mips.md (loadgp_newabi_): Add missing earlyclobber.
        * config/mips/mips.md (loadgp_newabi_): Add missing earlyclobber.
2012-01-02  Jakub Jelinek  
2012-01-02  Jakub Jelinek  
        * config/i386/sse.md (*avx2_gatherdi_3, *avx2_gatherdi_4):
        * config/i386/sse.md (*avx2_gatherdi_3, *avx2_gatherdi_4):
        New patterns.
        New patterns.
2012-01-02  Richard Sandiford  
2012-01-02  Richard Sandiford  
        * expr.h (move_by_pieces_ninsns): Declare.
        * expr.h (move_by_pieces_ninsns): Declare.
        * expr.c (move_by_pieces_ninsns): Make external.
        * expr.c (move_by_pieces_ninsns): Make external.
        * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
        * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
        (mips_store_by_pieces_p): Likewise.
        (mips_store_by_pieces_p): Likewise.
        * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
        * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
        (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
        (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
        * config/mips/mips.c (mips_move_by_pieces_p): New function.
        * config/mips/mips.c (mips_move_by_pieces_p): New function.
        (mips_store_by_pieces_p): Likewise.
        (mips_store_by_pieces_p): Likewise.
2012-01-02  Jakub Jelinek  
2012-01-02  Jakub Jelinek  
        * passes.c (register_one_dump_file): Free full_name.
        * passes.c (register_one_dump_file): Free full_name.
        * reload1.c (reload): Don't allocate reg_max_ref_width here.
        * reload1.c (reload): Don't allocate reg_max_ref_width here.
        (calculate_elim_costs_all_insns): Free offsets_at and
        (calculate_elim_costs_all_insns): Free offsets_at and
        offsets_known_at at the end and clear the pointers.
        offsets_known_at at the end and clear the pointers.
2012-01-02  Georg-Johann Lay  
2012-01-02  Georg-Johann Lay  
        * config/avr/avr.opt (-mbranch-cost): Fix double definition of
        * config/avr/avr.opt (-mbranch-cost): Fix double definition of
        this option introduced in r180739.
        this option introduced in r180739.
2012-01-02  Georg-Johann Lay  
2012-01-02  Georg-Johann Lay  
        PR target/51345
        PR target/51345
        * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
        * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
        (tmake_file target=avr): Add avr/t-multilib.
        (tmake_file target=avr): Add avr/t-multilib.
        * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
        * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
        to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
        to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
        * config/avr/genmultilib.awk: New file.
        * config/avr/genmultilib.awk: New file.
        * config/avr/t-multilib: New auto-generated file.
        * config/avr/t-multilib: New auto-generated file.
        * config/avr/multilib.h: New auto-generated file.
        * config/avr/multilib.h: New auto-generated file.
        * config/avr/t-avr (AVR_MCUS): New variable.
        * config/avr/t-avr (AVR_MCUS): New variable.
        (genopt.sh): Use it.
        (genopt.sh): Use it.
        (s-mlib): Depend on t-multilib.
        (s-mlib): Depend on t-multilib.
        (t-multilib, multilib.h): New dependencies.
        (t-multilib, multilib.h): New dependencies.
        (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
        (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
        (MULTILIB_OPTIONS): Remove.
        (MULTILIB_OPTIONS): Remove.
        (MULTILIB_MATCHES): Remove.
        (MULTILIB_MATCHES): Remove.
        (MULTILIB_DIRNAMES): Remove.
        (MULTILIB_DIRNAMES): Remove.
        (MULTILIB_EXCEPTIONS): Remove:
        (MULTILIB_EXCEPTIONS): Remove:
        * config/avr/genopt.sh: Don't use hard coded file name;
        * config/avr/genopt.sh: Don't use hard coded file name;
        pass AVR_MCUS from t-avr instead.
        pass AVR_MCUS from t-avr instead.
2012-01-02  Georg-Johann Lay  
2012-01-02  Georg-Johann Lay  
        * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
        * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
2012-01-02  Georg-Johann Lay  
2012-01-02  Georg-Johann Lay  
        Implement light-weight DImode support.
        Implement light-weight DImode support.
        * config/avr/avr-dimode.md: New file.
        * config/avr/avr-dimode.md: New file.
        * config/avr/avr.md: Include it.
        * config/avr/avr.md: Include it.
        (adjust_len): Add plus64, compare64.
        (adjust_len): Add plus64, compare64.
        (HIDI): Remove code iterator.
        (HIDI): Remove code iterator.
        (code_stdname): New code attribute.
        (code_stdname): New code attribute.
        (rotx, rotsmode): Remove DI.
        (rotx, rotsmode): Remove DI.
        (rotl3, *rotw, *rotb): Use HISI instead of HIDI
        (rotl3, *rotw, *rotb): Use HISI instead of HIDI
        as code iterator.
        as code iterator.
        * config/avr/avr-protos.h (avr_have_dimode): New.
        * config/avr/avr-protos.h (avr_have_dimode): New.
        (avr_out_plus64, avr_out_compare64): New.
        (avr_out_plus64, avr_out_compare64): New.
        * config/avr/avr.c (avr_out_compare): Handle DImode.
        * config/avr/avr.c (avr_out_compare): Handle DImode.
        (avr_have_dimode): New variable definition and initialization.
        (avr_have_dimode): New variable definition and initialization.
        (avr_out_compare64, avr_out_plus64): New functions.
        (avr_out_compare64, avr_out_plus64): New functions.
        (avr_out_plus_1): Use simplify_unary_operation to negate xval.
        (avr_out_plus_1): Use simplify_unary_operation to negate xval.
        (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
        (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
        (avr_compare_pattern): Skip DImode comparisons.
        (avr_compare_pattern): Skip DImode comparisons.
2012-01-02  Revital Eres  
2012-01-02  Revital Eres  
        * ddg.c (def_has_ccmode_p): New function.
        * ddg.c (def_has_ccmode_p): New function.
        (add_cross_iteration_register_deps,
        (add_cross_iteration_register_deps,
        create_ddg_dep_from_intra_loop_link): Call it.
        create_ddg_dep_from_intra_loop_link): Call it.
2012-01-02  Richard Guenther  
2012-01-02  Richard Guenther  
        PR other/51679
        PR other/51679
        * invoke.texi (fassociative-math): Remove spurious paranthesis.
        * invoke.texi (fassociative-math): Remove spurious paranthesis.
2012-01-01  Jakub Jelinek  
2012-01-01  Jakub Jelinek  
        * gcc.c (process_command): Update copyright notice dates.
        * gcc.c (process_command): Update copyright notice dates.
        * gcov.c (print_version): Likewise.
        * gcov.c (print_version): Likewise.
        * gcov-dump.c (print_version): Likewise.
        * gcov-dump.c (print_version): Likewise.
        * mips-tfile.c (main): Likewise.
        * mips-tfile.c (main): Likewise.
        * mips-tdump.c (main): Likewise.
        * mips-tdump.c (main): Likewise.
2012-01-01  Ira Rosen  
2012-01-01  Ira Rosen  
        PR tree-optimization/51704
        PR tree-optimization/51704
        * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
        * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
        a use is inside the basic block or loop before accessing its vect info.
        a use is inside the basic block or loop before accessing its vect info.
2012-01-01  Jan Hubicka  
2012-01-01  Jan Hubicka  
        PR rtl-optimization/51069
        PR rtl-optimization/51069
        * cfgloopmanip.c (remove_path): Removing path making irreducible
        * cfgloopmanip.c (remove_path): Removing path making irreducible
        region unconditional makes BB part of the region.
        region unconditional makes BB part of the region.
2012-01-01  Jakub Jelinek  
2012-01-01  Jakub Jelinek  
        PR tree-optimization/51683
        PR tree-optimization/51683
        * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
        * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
        calls with side-effects.
        calls with side-effects.
        * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
        * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.


Copyright (C) 2012 Free Software Foundation, Inc.
Copyright (C) 2012 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
notice and this notice are preserved.
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.