OSDN Git Service

2011-12-02 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 272133e..3865341 100644 (file)
@@ -1,3 +1,277 @@
+2011-12-02  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/47259
+       * ipa.c (varpool_externally_visible_p): Register variables
+       are always externally visible.
+
+2011-12-02  Sameera Deshpande  <sameera.deshpande@arm.com>
+
+       * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if
+         non-NULL.
+
+2011-12-02  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/50622
+       * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
+       if both lacc and racc are grp_partial_lhs.
+
+2011-12-01  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/50814.
+       * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as
+       TARGET_SH3.
+       (shl_sext_kind): Likewise.
+       * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
+       * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a):
+       Remove.
+       (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
+       (ashlsi3): Likewise.
+       (ashrsi3_d): Likewise.
+       (lshrsi3_d): Likewise.
+       (lshrsi3): Likewise.
+
+2011-12-01   Diego Novillo  <dnovillo@google.com>
+
+       PR bootstrap/51346
+       * ipa-inline.c (can_inline_edge_p): If the edge E has a
+       statement, use the statement's inline indicator instead
+       of E's.
+       Remove consistency check.
+
+2011-12-01   Diego Novillo  <dnovillo@google.com>
+
+       PR bootstrap/51346
+       Revert
+
+       2011-11-29   Diego Novillo  <dnovillo@google.com>
+
+               * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
+               Update field call_stmt_cannot_inline_p from call
+               graph edge, if needed.
+               * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
+
+2011-12-01  Nathan Sidwell  <nathan@acm.org>
+
+       PR gcov-profile/51113
+       * coverage.c (build_var): Keep coverage variables static.
+
+2011-12-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51356
+       * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if
+       vectype doesn't have VECTOR_MODE_P.
+
+       PR debug/50317
+       * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing
+       as unnecessary a store to a variable with gimple reg type.
+       * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit
+       on local unreferenced variables.
+       * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs
+       for !target_for_debug_bind variables.
+
+2011-12-01  Patrick Marlier  <patrick.marlier@gmail.com>
+
+       PR middle-end/51273
+       * cgraph.h (cgraph_call_node_duplication_hooks): Declare.
+       * cgraph.c (cgraph_call_node_duplication_hooks): Make global. 
+       * cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
+
+2011-12-01  Andrew Pinski  <apinski@cavium.com>
+
+       PR lto/51198
+       * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's
+       DECL_INITIAL also.
+
+2011-12-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51246
+       * tree-predcom.c (replace_ref_with): Handle also clobber on the
+       rhs.
+
+       PR rtl-optimization/51014
+       * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
+       both from bb and orig_bb.
+
+2011-12-01  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       PR tree-optimization/50802
+       * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
+       considering what happens to ranges during sign changes and/or
+       intermediate narrowing conversions.
+
+2011-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR middle-end/50283
+       * config/pa/pa.md (in_branch_delay): Disallow frame related insns.
+       (in_nullified_branch_delay): Likewise.
+       (in_call_delay): Likewise.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+       * predict.c (expr_expected_value_1): Assume compare-and-swap builtin
+       boolean return is true.
+
+2011-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/51044
+       * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
+       rather than just insn body.
+
+       PR target/50725
+       * function.c (thread_prologue_and_epilogue_insns): If
+       stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
+       regset.
+
+       PR middle-end/51089
+       * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
+       avoid creating duplicate edges here.
+       (cleanup_empty_eh_unsplit): And remove it in the caller.
+
+2011-11-30  Andrew Pinski  <apinski@cavium.com>
+
+       PR c/51321
+       * c-parser.c (c_parser_postfix_expression): Check groktypename results
+       before looking at the main variant.
+
+2011-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/48721
+       * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
+       reg_pending_barrier to TRUE_BARRIER.
+
+       PR rtl-optimization/48721
+       * sched-ebb.c (begin_move_insn): Insert empty unreachable
+       block after BARRIER if insn is followed by it.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
+       * config/sparc/sparc.opt (mmemory-model=): New option.
+       * doc/invoke.texi (Sparc Options): Document it.
+       * config/sparc/sparc.c (sparc_option_override): Provide default
+       for sparc_memory_model.
+       (sparc_emit_membar_for_model): Omit barrier combinations that are
+       implied by the memory model.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/sync.md (I124MODE): New mode iterator.
+       (memory_barrier): Remove.
+       (atomic_exchangesi): New.
+       (swapsi): Rename from *swapsi.
+       (atomic_test_and_set<I124MODE>): New.
+       (ldstubqi): Rename from *ldstubqi, merge with expander.
+       (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
+       (sync_lock_test_and_setsi): Remove.
+       (sync_lock_test_and_set<I12MODE>): Remove.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/constraints.md ("w"): New.
+       * config/sparc/predicates.md (mem_noofs_operand): New.
+       * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
+       Generate the boolean result of the atomic_compare_exchange.
+       (sparc_expand_compare_and_swap): New.
+       * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
+       (atomic_compare_and_swap<I48MODE>_1): Rename from
+       *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
+       (*atomic_compare_and_swapdi_v8plus): Rename from
+       *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
+       (sync_compare_and_swap<I12MODE>): Remove.
+       (sync_compare_and_swap<I48MODE>): Remove.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/predicates.md (register_or_v9_zero_operand): New.
+       * config/sparc/sparc.md (UNSPEC_ATOMIC): New.
+       * config/sparc/sync.md (atomic_load<I>): New.
+       (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.
+
+2011-11-30  Richard Henderson  <rth@redhat.com>
+
+       * config/sparc/predicates.md (zero_or_v7_operand): New.
+       * config/sparc/sparc.c (sparc_emit_membar_for_model): New.
+       * config/sparc/sparc-protos.h: Update.
+       * config/sparc/sync.md (mem_thread_fence): New.
+       (memory_barrier): Use sparc_emit_membar_for_model.
+       (membar, *membar_empty, *membar_storestore, *membar_storeload): New.
+       (*membar_v8): Accept and ignore the membar mask.
+       (*membar): Accept and print the membar mask.
+
+2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
+       * config/arm/arm.md (mul64): New attribute.
+       (generic_sched): Cortex-A15 is not scheduled generically.
+       (cortex-a15.md): Include.
+       * config/arm/cortex-a15.md: New machine description.
+       * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.
+
+2011-11-30  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
+
+2011-11-30  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
+       * doc/tm.texi: Regenerate.
+       * flags.h (flag_next_runtime): Remove references.
+       * toplev.c: Likewise.
+       * defaults.h (NEXT_OBJC_RUNTIME): Provide default.
+       * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
+       * config/darwin.c (darwin_override_options): Provide default
+       Objective-C abi settings and target conflict checks.
+       * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
+       code. Adjust indenting.
+
+2011-11-29  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
+       (REG_CLASS_CONTENTS): Add NON_SP_REGS.
+       (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
+       * config/sh/constraints.md (u): New constraint.
+
+2011-11-29  Oleg Endo  <oleg.endo@t-online.de>
+
+       PR target/51337
+       * config/sh/sh.c (sh_secondary_reload): Add case when FPUL
+       register is being loaded from a pseudo in memory.
+
+2011-11-29  DJ Delorie  <dj@redhat.com>
+
+       * config.gcc (rl78-*-elf): New case.
+       * doc/extend.texi: Add RL78 documentation.
+       * doc/invoke.texi: Likewise.
+       * doc/md.texi: Likewise.
+       * doc/contrib.texi: Add RL78.
+       * doc/install.texi: Add rl78-*-elf.
+       * config/rl78: New directory for the Renesas RL78.
+
+2011-11-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/51247
+       * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
+       types instead of adding 1 subtract -1 and instead of subtracting 1
+       add -1 to avoid overflows.
+
+2011-11-29  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR target/50123
+       * optabs.c (maybe_optimize_fetch_op): New.  Look for more optimal
+       instructions for a FECTH_OP or OP_FECTH sequence.
+       (expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
+
+2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
+       (movdi_via_fpu): Remove.
+       (loaddi_via_fpu): New insn pattern.
+       (storedi_via_fpu): Ditto.
+       (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
+       (atomic_storedi_fpu): Ditto.
+       * reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
+       (subst_stack_regs_pat): Handle UNSPEC_STA.
+
 2011-11-29  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not