re PR rtl-optimization/54739 (FAIL: gcc.dg/lower-subreg-1.c scan-rtl-dump subreg1...
[gcc.git] / gcc / ChangeLog
index 9941f62612d5c225222e30c61ee23463bb434539..6178f335b689743b04dfd479e914db157db68907 100644 (file)
@@ -1,3 +1,886 @@
+2012-10-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR rtl-optimization/54739
+       * config/pa/pa.md: Remove DImode and, not and, ior and xor patterns
+       for 32-bit targets.  Adjust expanders.
+
+       * config/pa/pa.md: Adjust unamed HImode add insn pattern.
+
+2012-10-05  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/sh.c (builtin_description): Add is_enabled member.
+       (shmedia_builtin_p): New function.
+       (bdesc): Use shmedia_builtin_p for existing built-ins.
+       (sh_media_init_builtins, sh_init_builtins): Merge into single function
+       sh_init_builtins.  Add is_enabled checking.  Move variable declarations
+       to where they are actually used.
+       (sh_media_builtin_decl, sh_builtin_decl): Merge into single function
+       sh_builtin_decl.  Add is_enabled checking.
+       (sh_expand_builtin): Move variable declarations to where they are
+       actually used.
+
+2012-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-inline.c (expand_call_inline): Move VAR_DECLs with
+       PARM_DECL origins from remapped DECL_INITIAL's BLOCK_VARS
+       into id->block's BLOCK_VARS.
+
+       PR debug/54519
+       * ipa-split.c (split_function): Add debug args and
+       debug source and normal stmts for args_to_skip which are
+       gimple regs.
+       * tree-inline.c (copy_debug_stmt): When inlining, adjust
+       source debug bind stmts to debug binds of corresponding
+       DEBUG_EXPR_DECL.
+
+2012-10-05  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.md: Fix indentations of insn C snippets.
+
+2012-10-05  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/54811
+       * tree-ssa-live.c (clear_unused_block_pointer_1): Look at
+       DECL_DEBUG_EXPR again.
+
+2012-10-05  Jan Hubicka  <jh@suse.cz>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/33763
+       * tree-inline.c (expand_call_inline): Silently ignore always_inline
+       attribute for redefined extern inline functions.
+
+2012-10-04  Jan Hubicka  <jh@suse.cz>
+
+       * tree-vectorizer.h (vect_estimate_min_profitable_iters): Remove.
+       * tree-vect-loop.c (vect_estimate_min_profitable_iters): Declare here.
+       (vect_analyze_loop_operations): Use loop count estimate to rule out
+       unprofitable vectorization.
+       (vect_estimate_min_profitable_iters): Return ret_min_profitable_estimate.
+
+2012-10-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/54810
+       * tree-vrp.c (register_edge_assert_for_2): Handle
+       NAME = (unsigned) NAME2; if (NAME cmp CST) for
+       narrowing casts to unsigned integral type like
+       NAME = NAME2 & CST2; if (NAME cmp CST) where CST2
+       is the max value of the unsigned integral type.
+
+2012-10-04  Jeff Law  <law@redhat.com>
+
+       * PR target/50356
+       * config/h8300/h8300.c (h8300_rtx_costs): Fix typo in CONST_INT case.
+
+2012-10-04  Jason Merrill  <jason@redhat.com>
+
+       * config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
+       ASM_WEAKEN_DECL with #if RS6000_WEAK.
+
+2012-10-04  Basile Starynkevitch  <basile@starynkevitch.net>
+
+        * gengtype.c (walk_type): Emit mark_hook when inside a
+          struct of a union member.
+
+2012-10-04  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/predicates.md (flash_operand): New predicate.
+       * config/avr/avr.md (reload_in<mode>): Use it in operand 1 instead
+       of memory_operand.
+
+2012-10-04  Tobias Burnus  <burnus@net-b.de>
+
+       * gcc.c (record_temp_file, add_sysrooted_prefix, process_command,
+       do_self_spec, compare_debug_dump_opt_spec_function): Plug memleaks.
+       (do_spec_1): Ditto, fix out-of-bound access.
+       * opts.c (common_handle_option): Plug memleak.
+
+2012-10-04  Jason Merrill  <jason@redhat.com>
+
+       * config/darwin.c (darwin_assemble_visibility): Treat
+       VISIBILITY_INTERNAL as hidden.
+
+       * config/darwin-c.c (find_subframework_file): Add missing const.
+       (framework_construct_pathname): Likewise.
+
+2012-10-04  Florian Weimer  <fweimer@redhat.com>
+
+       * doc/cpp.texi (Pragmas): Document #pragma GCC warning, #pragma
+       GCC error.
+
+2012-10-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/54735
+       * tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before
+       cleaning up the CFG.
+
+2012-10-04  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/47799
+       * tree-streamer-out.c (write_ts_block_tree_pointers): For
+       inlined functions outer scopes write the ultimate origin
+       as BLOCK_ABSTRACT_ORIGIN and BLOCK_SOURCE_LOCATION.
+       Do not stream the fragment chains.
+       * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Likewise.
+       * dwarf2out.c (gen_subprogram_die): Handle NULL DECL_INITIAL.
+       (dwarf2out_decl): Always output DECL_ABSTRACT function decls.
+
+2012-10-04  Arnaud Charlet  <charlet@adacore.com>
+
+       * dumpfile.h, dumpfile.c: Remove TDI_ada.
+
+2012-10-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
+
+       * config/i386/i386.c (ix86_dep_by_shift_count_body) : Add
+       check on reload_completed since it can be invoked before
+       register allocation phase in pre-reload schedule.
+       (ia32_multipass_dfa_lookahead) : Do not use dfa_lookahead for pre-reload
+       schedule to save compile time.
+       (ix86_sched_reorder) : Do not perform ready list reordering for pre-reload
+       schedule to save compile time.
+       (insn_is_function_arg) : New function. Returns true if lhs of insn is
+       HW function argument register.
+       (add_parameter_dependencies) : New function. Add output dependencies
+       for chain of function adjacent arguments if only there is a move to
+       likely spilled HW registers. Return first argument if at least one
+       dependence was added or NULL otherwise.
+       (avoid_func_arg_motion) : New function. Add output or anti dependency
+       from insn to first_arg to restrict code motion.
+       (add_dependee_for_func_arg) : New function. Avoid cross block motion of
+       function argument through adding dependency from the first non-jump
+       insn in bb.
+       (ix86_dependencies_evaluation_hook) : New function. Hook for pre-reload schedule:
+       avoid motion of function arguments passed in passed in likely spilled
+       HW registers.
+       (ix86_adjust_priority) : New function. Hook for pre-reload schedule: set priority
+       of moves from likely spilled HW registers to maximum to schedule them
+       as soon as possible.
+       (ix86_sched_init_global): Do not perform multipass scheduling for pre-reload
+       schedule to save compile time.
+
+2012-10-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       * configure.ac (noexception_flags): Add -fasynchronous-unwind-tables.
+       * configure: Regenerate.
+
+2012-10-04  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (sh_can_use_simple_return_p): Return false for
+       SHmedia and SHcompact using call cookie.
+       * config/sh/sh.md (epilogue): Emit non-inlined return insns for
+       SHmedia and SHcompact using call cookie.
+
+2012-10-03  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/51244
+       * config/sh/sh.md (*mov_t_msb_neg): New insn and two accompanying
+       unnamed split patterns.
+
+2012-10-03  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/50457
+       * config/sh/sh.c (parse_validate_atomic_model_option): Handle name
+       strings in sh_atomic_model.
+       * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Move macro implementation
+       to ...
+       * config/sh/sh-c.c (sh_cpu_cpp_builtins): ... this new function.
+       Add __SH1__ and __SH2__ defines.  Add __SH_ATOMIC_MODEL_*__ define.
+       * config/sh/sh-protos.h (sh_atomic_model): Add name and cdef_name
+       variables.
+       (sh_cpu_cpp_builtins): Declare new function.
+
+2012-10-03  Dehao Chen  <dehao@google.com>
+
+       PR middle-end/54782
+       * tree-cfg.c (move_block_to_fn): Update lexical block for phi_args.
+
+2012-10-03  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * reginfo.c (max_regno_since_last_resize): New.
+       (reg_preferred_class, reg_alternate_class): Add assert.
+       (allocate_reg_info): Initialize allocated reg info.
+       (resize_reg_info): Make bigger reg_info and initialize new memory.
+       (reginfo_init): Initialize max_regno_since_last_resize.
+       (setup_reg_classes): Change assert.
+
+2012-10-03  Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
+
+       * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
+       in SSE and YMM state support check for -march=native.
+
+2012-10-03  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.c (struct decl_chain): New local structure.
+       (warned_decls): New local variable.  Contains a stack of decls for
+       which warnings have been issued.
+       (add_warned_decl): Adds a decl to the stack.
+       (already_warned): Returns true if a given decl is on the stack.
+       (rx_set_current_function): Issue a warning if multiple fast
+       interrupt handlers are defined.
+       * config/rx/rx.opt (mwarn-multiple-fast-interrupts): New option.
+       * doc/invoke.texi: Document the option.
+
+2012-09-03  Mark Kettenis  <kettenis@openbsd.org>
+
+       * config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set
+       default_use_cxa_atexit to yes.
+
+2012-10-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/54792
+       * sched-deps.c (find_modifiable_mems): Scan also TAIL insn.
+
+2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/54785
+       * doc/invoke.texi: Document -mprefer-avx128.
+
+2012-10-02  Andrew Pinski  <apinski@cavium.com>
+
+       * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
+       Don't optimize a truncate of a mem if it is a vector mode.
+
+2012-10-02  Alexandre Oliva <aoliva@redhat.com>
+
+       PR debug/54551
+       * Makefile.in (VALTRACK_H): Add hash-table.h.
+       * valtrack.h: Include hash-table.h.
+       (struct dead_debug_global_entry): New.
+       (struct dead_debug_hash_descr): New.
+       (struct dead_debug_global): New.
+       (struct dead_debug): Rename to...
+       (struct dead_debug_local): ... this.  Adjust all uses.
+       (dead_debug_global_init, dead_debug_global_finish): New.
+       (dead_debug_init): Rename to...
+       (dead_debug_local_init): ... this.  Adjust all callers.
+       (dead_debug_finish): Rename to...
+       (dead_debug_local_finish): ... this.  Adjust all callers.
+       * valtrack.c (dead_debug_global_init): New.
+       (dead_debug_init): Rename to...
+       (dead_debug_local_init): ... this.  Take global parameter.
+       Save it and initialize used bitmap from it.
+       (dead_debug_global_find, dead_debug_global_insert): New.
+       (dead_debug_global_replace_temp): New.
+       (dead_debug_promote_uses): New.
+       (dead_debug_finish): Rename to...
+       (dead_debug_local_finish): ... this.  Promote remaining uses.
+       (dead_debug_global_finish): New.
+       (dead_debug_add): Try to replace global temps first.
+       (dead_debug_insert_temp): Support global replacements.
+       * dce.c (word_dce_process_block, dce_process_block): Add
+       global_debug parameter.  Pass it on.
+       (fast_dce): Initialize, pass on and finalize global_debug.
+       * df-problems.c (df_set_unused_notes_for_mw): Adjusted.
+       (df_create_unused_notes, df_note_bb_compute): Likewise.
+       (df_note_compute): Justify local-only dead debug analysis.
+
+2012-10-02  Alexandre Oliva <aoliva@redhat.com>
+
+       PR debug/53135
+       * dwarf2out.c (value_format): Use block4 for dw_val_class_loc
+       when needed.
+
+2012-10-02  Alexandre Oliva <aoliva@redhat.com>
+
+       PR debug/54177
+       * var-tracking.c (vt_add_function_parameter): Bail if
+       var_lowpart fails.
+
+2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/54741
+       * config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
+       (XSTATE_FP): Likewise.
+       (XSTATE_SSE): Likewise.
+       (XSTATE_YMM): Likewise.
+       (host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if
+       SSE and YMM states aren't supported.
+
+2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
+       (*baddu_si): ...this new pattern.
+
+2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * ira-int.h (target_ira_int): Add x_ira_useful_class_mode_regs.
+       (ira_useful_class_mode_regs): New macro.
+       * ira.c (clarify_prohibited_class_mode_regs): Set up
+       ira_useful_class_mode_regs.
+       * ira-color.c (setup_profitable_hard_regs): Use it to initialise
+       profitable_hard_regs.
+
+2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * ira.h (target_ira): Add x_ira_class_singleton.
+       (ira_class_singleton): New macro.
+       * ira.c (setup_prohibited_class_mode_regs): Set up ira_class_singleton.
+       * ira-build.c (update_conflict_hard_reg_costs): Use
+       ira_class_singleton to check for classes with a single
+       allocatable register.
+       * ira-lives.c (ira_implicitly_set_insn_hard_regs): Likewise.
+       (single_reg_class): Likewise.  When more than one class is specified,
+       check whether they have the same singleton register.
+       (process_single_reg_class_operands): Require single_reg_class
+       to return NO_REGS or a class with a single allocatable register.
+       Obtain that register from ira_class_singleton.
+
+2012-10-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): If
+       -mcpu=<xxx> is not specified and the compiler is not configured
+       using --with-cpu=<xxx>, use the bits from the TARGET_DEFAULT to
+       set the initial options.
+
+2012-10-02  Sharad Singhai  <singhai@google.com>
+
+       PR testsuite/54772
+       * tree-vect-stmts.c (vectorizable_operation): Add missing return.
+
+2012-10-02  David Edelsohn  <dje.gcc@gmail.com>
+
+       * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
+       set TARGET_ALTIVEC_VRSAVE for TARGET_ELF.
+       (rs6000_stack_info): Only set vrsave_mask if TARGET_ALTIVEC_VRSAVE.
+
+2012-10-02  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/54713
+       * expr.c (categorize_ctor_elements_1): Don't assume purpose is
+       non-NULL.
+       * tree-cfg.c (verify_gimple_assign_single): Add verification of
+       vector CONSTRUCTORs.
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): For VECTOR_TYPE
+       CONSTRUCTORs, don't do anything if element type is VECTOR_TYPE,
+       and don't check index.
+       * tree-vect-slp.c (vect_get_constant_vectors): VIEW_CONVERT_EXPR ctor
+       elements first if their type isn't compatible with vector element type.
+
+2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.h (DECL_NONLOCAL_FRAME): New macro.
+       * tree-nested.c (get_frame_type): Set DECL_NONLOCAL_FRAME.
+       * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream in
+       DECL_NONLOCAL_FRAME flag.
+       * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream out
+       DECL_NONLOCAL_FRAME flag.
+
+2012-10-02  Marc Glisse  <marc.glisse@inria.fr>
+
+       * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
+       boolean_type_node for vectors.
+
+2012-10-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
+       (rs6000_density_test): Rework to accommodate 09-30 change by
+       Sharad Singhai.
+
+       * config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.
+
+2012-10-01  Dehao Chen  <dehao@google.com>
+
+       PR middle-end/54759
+       * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use
+       LOCATION_LOCUS to compare with UNKNOWN_LOCATION.
+       (slpeel_tree_peel_loop_to_edge): Likewise.
+       * tree-vectorizer.c (vectorize_loops): Likewise.
+
+2012-10-01  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR target/54087
+       * optabs.c (expand_atomic_fetch_op_no_fallback): New.  Factored code
+       from expand_atomic_fetch_op.
+       (expand_atomic_fetch_op):  Try atomic_{add|sub} operations in terms of
+       the other one if direct opcode fails.
+
+2012-10-01  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR rtl-optimization/54457
+       * simplify-rtx.c (simplify_subreg):
+       Simplify (subreg:M (op:N ((x:N) (y:N)), 0)
+       to (op:M (subreg:M (x:N) 0) (subreg:M (x:N) 0)), where
+       the outer subreg is effectively a truncation to the original mode M.
+
+2012-10-01  Richard Guenther  <rguenther@suse.de>
+
+       * builtins.def (ATTR_MATHFN_FPROUNDING): Do not use no-vops
+       with -frounding-math.
+       * builtin-attrs.def (ATTR_PURE_NOTHROW_NOVOPS_LIST): Remove.
+       (ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST): Likewise.
+
+2012-10-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.h (copy_mem_ref_info): Delete.
+       * tree-ssa-address.c (copy_mem_ref_info): Likewise.
+       (maybe_fold_tmr): Copy flags manually.
+       * tree-ssa-loop-im.c (simple_mem_ref_in_stmt): Rewrite.
+
+2012-10-01  Marc Glisse  <marc.glisse@inria.fr>
+
+       * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
+       Detect the identity.
+       <VEC_CONCAT>: Handle VEC_SELECTs from the same vector.
+
+2012-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/50457
+       * config/sh/sh.opt (matomic-model): New option.
+       (msoft-atomic): Mark as deprecated and alias to
+       matomic-model=soft-gusa.
+       (mhard-atomic): Delete.
+       * config/sh/predicates.md (gbr_displacement): New predicate.
+       * config/sh/sh-protos.h (sh_atomic_model): New struct.
+       (selected_atomic_model): New declaration.
+       (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT, TARGET_ATOMIC_SOFT_GUSA,
+       TARGET_ATOMIC_HARD_LLCS, TARGET_ATOMIC_SOFT_TCB,
+       TARGET_ATOMIC_SOFT_TCB_GBR_OFFSET_RTX, TARGET_ATOMIC_SOFT_IMASK):
+       New macros.
+       * config/sh/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Adapt setting to
+       default atomic model.
+       * config/sh/sh.c (selected_atomic_model_): New global variable.
+       (selected_atomic_model, parse_validate_atomic_model_option): New
+       functions.
+       (sh_option_override): Replace atomic selection checks with call to
+       parse_validate_atomic_model_option.
+       * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
+       UNSUPPORTED_HARD_ATOMIC_CPU): Delete.
+       (DRIVER_SELF_SPECS): Remove atomic checks.
+       config/sh/sync.md: Update documentation comments.
+       (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
+       atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
+       atomic_<fetchop_name>_fetch<mode>, atomic_nand_fetch<mode>): Use
+       TARGET_ATOMIC_ANY as condition.  Add TARGET_ATOMIC_STRICT check for
+       SH4A case.  Handle new TARGET_ATOMIC_SOFT_TCB and
+       TARGET_ATOMIC_SOFT_IMASK cases.
+       (atomic_test_and_set): Handle new TARGET_ATOMIC_SOFT_TCB and
+       TARGET_ATOMIC_SOFT_IMASK cases.
+       (atomic_compare_and_swapsi_hard, atomic_exchangesi_hard,
+       atomic_fetch_<fetchop_name>si_hard, atomic_fetch_nandsi_hard,
+       atomic_<fetchop_name>_fetchsi_hard, atomic_nand_fetchsi_hard):
+       Add TARGET_ATOMIC_STRICT check.
+       (atomic_compare_and_swap<mode>_hard, atomic_exchange<mode>_hard,
+       atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nand<mode>_hard,
+       atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetch<mode>_hard,
+       atomic_test_and_set_hard): Use TARGET_ATOMIC_HARD_LLCS condition.
+       (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
+       atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
+       atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
+       atomic_test_and_set_soft): Append _gusa to the insn names and use
+       TARGET_ATOMIC_SOFT_GUSA as condition.
+       (atomic_compare_and_swap<mode>_soft_tcb,
+       atomic_exchange<mode>_soft_tcb,
+       atomic_fetch_<fetchop_name><mode>_soft_tcb,
+       atomic_fetch_nand<mode>_soft_tcb,
+       atomic_<fetchop_name>_fetch<mode>_soft_tcb,
+       atomic_nand_fetch<mode>_soft_tcb, atomic_test_and_set_soft_tcb):
+       New insns.
+       (atomic_compare_and_swap<mode>_soft_imask,
+       atomic_exchange<mode>_soft_imask,
+       atomic_fetch_<fetchop_name><mode>_soft_imask,
+       atomic_fetch_nand<mode>_soft_imask,
+       atomic_<fetchop_name>_fetch<mode>_soft_imask,
+       atomic_nand_fetch<mode>_soft_imask, atomic_test_and_set_soft_imask):
+       New insns.
+       * doc/invoke.texi (SH Options): Document new matomic-model option.
+       Remove msoft-atomic and mhard-atomic options.
+
+2012-10-01  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       PR target/54746
+       * config/s390/s390.c (s390_option_override): Add missing break.
+
+2012-09-30  Sharad Singhai  <singhai@google.com>
+
+       * dumpfile.c: New file with parts moved from tree-dump.c.
+       (pflags): New variable.
+       (alt_flags): Ditto.
+       (alt_dump_file): Ditto.
+       (dump_files):  Update to include additional fields.
+       (struct dump_option_value_info): Add additional entries.
+       (get_dump_file_name): Use command line filename if available.
+       (dump_open_alternate_stream): New function.
+       (dump_loc): Ditto.
+       (dump_gimple_stmt): Ditto.
+       (dump_gimple_stmt_loc): Ditto.
+       (dump_generic_expr): Ditto.
+       (dump_generic_expr_loc): Ditto.
+       (dump_printf): Ditto.
+       (dump_printf_loc): Ditto.
+       (dump_start): Ditto.
+       (dump_finish): Ditto.
+       (dump_begin): Ditto.
+       (dump_enabled_p): Return true if either of the dump types is enabled.
+       (dump_initialized_p): Return true if either type of dump is
+       initialized.
+       (dump_end): Do not close standard streams.
+       (dump_enable_all): Handle filenames for regular dumps.
+       (dump_switch_p_1): Handle command-line dump filenames.
+       (opt_info_enable_all): New function.
+       (opt_info_switch_p_1): Ditto.
+       (opt_info_switch_p): Ditto.
+       (dump_kind_p): Ditto.
+       (dump_basic_block): Ditto.
+       (dump_combine_total_stats): Ditto.
+       (dump_remap_tree_vectorizer_verbose): Ditto.
+       * gimple-pretty-print.h: Rename dump_gimple_stmt to
+       pp_gimple_stmt_1.  All callers updated.
+
+2012-09-30  Sharad Singhai  <singhai@google.com>
+
+       * doc/invoke.texi: Add documentation for the new -fopt-info option.
+       * tree-dump.c: Move general dump file related functionality into
+       dumpfile.c. Remove unneeded headers.
+       * tree-dump.h: Move function declarations into dumpfile.h.
+       * dumpfile.h: Include "line-map.h". Add defines for MSG flags.
+       (struct dump_file_info): Move here from tree-dump.c.  Rename flags
+       to pflags, state to pstate, stream to pstream, filename to
+       pfilename. All callers updated. Add alt_flags, alt_state,
+       alt_filenmae, alt_stream.
+       * tree-vectorizer.c: Include "dumpfile.h". Remove vect_dump.
+       (vect_set_dump_settings): Remove.
+       (vect_print_dump_info): Ditto.
+       * tree-vectorizer.h: Remove declaration of vect_dump and
+       vect_print_dump_info.
+       * tree-vect-loop.c: Include "dumpfile.h". Use new dump style.
+       * tree-vect-data-refs.c: Ditto.
+       * tree-vect-stmts.c: Ditto.
+       * tree-vect-slp.c: Ditto.
+       * tree-vect-patterns.c: Ditto.
+       * tree-vect-loop-manip.c: Ditto.
+       * opts.c (vect_set_verbosity_level): Remove.
+       (common_handle_option): Handle -fopt-info flag. Deprecate
+       -ftree-vectorizer-verbose.
+       * tree-parloops.c (gather_scalar_reductions): Remove reference to
+       vect_dump.
+       * flag-types.h: Remove vect_verbosity_levels.
+       * common.opt: Add -fopt-info. Deprecate -ftree-vectorizer-verbose.
+       * opts-global.c (dump_remap_tree_vectorizer_verbose): New function.
+       (handle_common_deferred_options): Handle -fopt-info and
+       -ftree-vectorizer-verbose.
+       * Makefile.in: Add dumpfile.o.
+       (tree-dump.o): Update dependencies.
+       (tree-vect-loop.o): Ditto.
+       (tree-vect-loop-manip.o): Ditto.
+       (tree-vect-slp.o): Ditto.
+       (tree-vect-stmts.o): Ditto.
+       (tree-vectorizer.o): Ditto.
+       (opts.o): Ditto.
+       * passes.c (finish_optimization_passes): Instead of using
+       dump_begin/dump_end, use dump_start/dump_finish. Do not use dump_file.
+       (pass_init_dump_file): Ditto.
+
+2012-09-30  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       PR rtl-optimization/38449:
+       * hooks.c (hook_bool_const_rtx_const_rtx_true): New function.
+       * hooks.h (hook_bool_const_rtx_const_rtx_true): Declare.
+       * target.def: Merge in definitions and documentation for
+       TARGET_CAN_FOLLOW_JUMP.
+       * doc/tm.texi.in: Add documentation locations for the above.
+       * doc/tm.texi: Regenerate.
+       * reorg.c (follow_jumps): New parameters jump and crossing.
+       Changed all callers.
+
+2012-09-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * reorg.c (relax_delay_slots): Use delay_insn consistently.
+
+       * config/sparc/sparc.c (gen_stack_pointer_dec): Delete.
+       (sparc_expand_epilogue): Use gen_stack_pointer_inc and adjust.
+       (sparc_flat_expand_epilogue): Likewise.
+       (emit_and_preserve): Likewise.
+       (sparc_fold_builtin): Fix thinko in latest change.
+
+2012-09-30  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * config/m68k/m68k.md: Add names to bitfield insert and extract
+       insns.
+       (*insv_8_16_reg): Remove constraints and conditions that assume
+       that operand 0 could be a MEM.
+       (*extzv_8_16_reg, *extv_8_16_reg): Likewise, for operand 1.
+
+2012-09-30  Jan Hubicka  <jh@suse.cz>
+
+       * cfgloop.c (scale_loop_profile): Move to...
+       * cfgloopmanip.c (scale_loop_profile): .. here; use
+       scale_loop_frequencies.
+       (loopify): Use RDIV.
+
+2012-09-28  Jan Hubicka  <jh@suse.cz>
+
+       * tree-call-cdce.c (shrink_wrap_one_built_in_call): Update profile.
+
+2012-09-28  Jan Hubicka  <jh@suse.cz>
+
+       * function.c (dup_block_and_redirect): Update profile.
+
+2012-09-29  Andreas Tobler  <andreast@fgznet.ch>
+
+       * config.gcc: Replace 'host' with 'target' when configuring for
+       powerpc64*-*-freebsd.
+
+2012-09-29  Marc Glisse  <marc.glisse@inria.fr>
+
+       * tree.c (truth_type_for): New function.
+       * tree.h (truth_type_for): Declare.
+       * gimple-fold.c (and_comparisons_1): Call it.
+       (or_comparisons_1): Likewise.
+       * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
+       boolean_type_node for vectors.
+
+2012-09-28  Jan Hubicka  <jh@suse.cz>
+
+       * basic-block.h (RDIV): Define.
+       (EDGE_FREQUENCY): Simplify.
+       (check_probability, combine_probabilities, apply_probability,
+       inverse_probability): New.
+       * cfgloop.c (scale_loop_profile): New function.
+       * cfgloop.h (scale_loop_profile): Declare.
+       (slpeel_add_loop_guard): Add probability parameter.
+       (set_prologue_iterations): Add probability parameter.
+       (slpeel_tree_peel_loop_to_edge): Add bound1 and bound2 parameters;
+       update probabilities correctly.
+       (vect_do_peeling_for_alignment, vect_gen_niters_for_prolog_loop): New.
+
+2012-09-20  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR bootstrap/54688
+       * sched-deps.c (parse_add_or_inc): Remove MINUS handling.  Take
+       STACK_GROWS_DOWNWARD into account.
+
+2012-09-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/54716
+       * config/i386/predicates.md (nonimmediate_or_const_vector_operand):
+       New predicate.
+       * config/i386/i386.c (ix86_expand_vector_logical_operator): New
+       function.
+       * config/i386/i386-protos.h (ix86_expand_vector_logical_operator): New
+       prototype.
+       * config/i386/sse.md (<code><mode>3 VI logic): Use it.
+
+       PR tree-optimization/54713
+       * fold-const.c (vec_cst_ctor_to_array): Give up if vector CONSTRUCTOR
+       has vector elements.
+       (fold_ternary_loc) <case BIT_FIELD_REF>: Likewise.
+       * tree-vect-generic.c (vector_element): Don't rely on CONSTRUCTOR elts
+       indexes.  Use BIT_FIELD_REF if CONSTRUCTOR has vector elements.
+       (lower_vec_perm): Use NULL_TREE CONSTRUCTOR indexes.
+
+2012-09-28  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.md (adjust_len): Add lpm.
+       (reload_in<mode>): Use avr_out_lpm for output.  Use "lpm" for
+       adjust_len.
+       * config/avr/avr-protos.h (avr_out_lpm): New prototype.
+       * config/avr/avr.c (avr_out_lpm): Make global.
+       (adjust_insn_length): Handle ADJUST_LEN_LPM.
+
+2012-09-28  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/47799
+       * lto-streamer-out.c (tree_is_indexable): Make PARM_DECLs global.
+       (lto_output_tree_ref): Handle references to them.
+       (output_function): Do not output function arguments again.
+       * lto-streamer-in.c (input_function): Do not input arguments
+       again, nor overwrite them.
+
+2012-09-28  Richard Guenther  <rguenther@suse.de>
+
+       * cgraph.h (symtab_node_base): Re-order and pack fields.
+
+2012-09-28  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.c (avr_pgm_check_var_decl): Fix non-error diagnostic.
+
+2012-09-28  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR rtl-optimization/52543
+       * config/avr/avr.c (avr_mode_dependent_address_p): Return true for
+       all non-generic address spaces.
+       (TARGET_SECONDARY_RELOAD): New hook define to...
+       (avr_secondary_reload): ...this new static function.
+       * config/avr/avr.md (reload_in<mode>): New insns.
+
+       Undo r185605 (mostly):
+       * config/avr/avr-protos.h (avr_load_lpm): Remove.
+       * config/avr/avr.c (avr_load_libgcc_p): Don't restrict to __flash
+       loads.
+       (avr_out_lpm): Also handle loads > 1 byte.
+       (avr_load_lpm): Remove.
+       (avr_find_unused_d_reg): New static function.
+       (avr_out_lpm_no_lpmx): New static function.
+       (adjust_insn_length): Remove ADJUST_LEN_LOAD_LPM.
+       * config/avr/avr.md (unspec): Remove UNSPEC_LPM.
+       (load_<mode>_libgcc): Use MEM instead of UNSPEC_LPM.
+       (load_<mode>, load_<mode>_clobber): Remove.
+       (mov<mode>): For multi-byte move from non-generic
+       16-bit address spaces: Expand to *mov<mode> again.
+       (load<mode>_libgcc): New expander.
+       (split-lpmx): Remove split.
+
+2012-09-27  Dehao Chen  <dehao@google.com>
+
+       * tree.h (tree_constructor): Remove IS_UNKNOWN_LOCATION.
+       (extern void protected_set_expr_location): Likewise.
+       (function_args_iter_next): Likewise.
+       (inlined_function_outer_scope_p): Likewise.
+       * input.h (IS_UNKNOWN_LOCATION): Likewise.
+       * fold-const.c (expr_location_or): Likewise.
+       * lto-cgraph.c (output_node_opt_summary): Likewise.
+       * dwarf2out.c (add_src_coords_attributes): Likewise.
+       * tree-eh.c (lower_try_finally_dup_block): Likewise.
+       * profile.c (branch_prob):
+       * cfgexpand.c (expand_gimple_cond): Likewise.
+       (expand_gimple_basic_block): Likewise.
+       (construct_exit_block): Likewise.
+       (gimple_expand_cfg): Likewise.
+       * cfgcleanup.c (try_forward_edges): Likewise.
+       * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
+       (dump_scope_block): Likewise.
+       * ipa-prop.c (ipa_write_jump_function): Likewise.
+       * rtl.h (extern void rtl_check_failed_flag): Likewise.
+       * gimple.h (gimple_set_location): Likewise.
+       (gimple_has_location): Likewise.
+       * cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
+       (force_nonfallthru_and_redirect): Likewise.
+       (fixup_reorder_chain): Likewise.
+       (cfg_layout_merge_blocks): Likewise.
+
+2012-09-27  Meador Inge  <meadori@codesourcery.com>
+
+       * gcc-ar.c (main): Handle the returning of the sub-process error
+       code correctly.
+
+2012-09-27  Ulrich Weigand  <ulrich.weigand@linaro.org>
+
+       * lower-subreg.c (enum classify_move_insn): Rename
+       SIMPLE_PSEUDO_REG_MOVE to DECOMPOSABLE_SIMPLE_MOVE.
+       (find_decomposable_subregs): Update.
+       (decompose_multiword_subregs): Add DECOMPOSE_COPIES parameter.
+       Only mark pseudo-to-pseudo copies as DECOMPOSABLE_SIMPLE_MOVE
+       if that parameter is true.
+       (rest_of_handle_lower_subreg): Call decompose_multiword_subregs
+       with DECOMPOSE_COPIES false.
+       (rest_of_handle_lower_subreg2): Call decompose_multiword_subregs
+       with DECOMPOSE_COPIES true.
+
+2012-09-27  Marek Polacek  <polacek@redhat.com>
+
+       * doc/gcov.texi (Gcov Data Files): Fix a typo.
+
+2012-09-27  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/54703
+       * simplify-rtx.c (simplify_binary_operation_1): Perform
+       (x - (x & y)) -> (x & ~y) optimization only for integral modes.
+
+2012-09-27  Marc Glisse  <marc.glisse@inria.fr>
+
+       PR c/53024
+       PR c++/54427
+       * doc/extend.texi (Vector Extensions): C++ improvements.
+       Power of 2 size requirement.
+
+2012-09-27  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/54709
+       * lto-symtab.c (resolution_guessed_p): Remove.
+       (set_resolution_guessed): Likewise.
+       (lto_symtab_register_decl): Remove assert.
+       (lto_symtab_resolve_symbols): Do not alter symbol resolutions
+       and return the prevailing symbol, checking for multiple prevailing
+       symbols here.
+       (lto_symtab_merge_decls_1): Use the result from
+       lto_symtab_resolve_symbols.  Do not alter symbol resolutions.
+
+2012-09-26  Steve Ellcey  <sellcey@mips.com>
+
+       PR web/54711
+       * doc/install.texi: Fix example.
+
+2012-09-26  Dehao Chen  <dehao@google.com>
+
+        * tree-ssa-live.c (clear_unused_block_pointer): Use explicitit (void)
+       for function parameter.
+       (remove_unused_locals): Don't use LOCATION_BLOCK if it is NULL.
+
+2012-09-26  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * doc/extend.texi (bswap Builtins): Change signed types to unsigned
+       types.
+
+2012-09-26  Ian Lance Taylor  <iant@google.com>
+
+       * diagnostic.c (bt_callback): Cast pc when calling fprintf.
+
+2012-09-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR tree-optimization/54674
+       * gimple-ssa-strength-reduction.c (analyze_increments): Don't
+       introduce a multiplication with a pointer operand.
+
+2012-09-26  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR middle-end/54635
+       * doc/tm.texi.in (TARGET_MODE_DEPENDENT_ADDRESS_P): Document new
+       parameter addrspace.
+       * doc/tm.texi: Regenerate.
+       * target.def (mode_dependent_address_p): Add addr_space_t parameter.
+       * targhooks.h (default_mode_dependent_address_p): Ditto.
+       * targhooks.c (default_mode_dependent_address_p): Ditto.
+       * expr.c (convert_move): Pass address space to
+       mode_dependent_address_p.
+       * combine.c (combine_simplify_rtx): Ditto.
+       (make_extraction): Ditto.
+       (simplify_shift_const_1): Ditto.
+       (gen_lowpart_for_combine): Ditto.
+       * lower-subreg.c (simple_move_operand): Ditto.
+       * recog.c (simplify_while_replacing): Ditto.
+       (offsettable_address_addr_space_p): Ditto.
+       (mode_dependent_address_p): Ditto.
+       * simplify-rtx.c (simplify_unary_operation_1): Ditto.
+       (simplify_subreg): Ditto.
+       * config/m68k/m68k.md: Ditto.
+       * config/vax/vax.md: Ditto.
+       * config/vax/constraints.md (Q): Ditto.
+       * config/vax/predicates.md (indexed_memory_operand): Ditto.
+       * config/alpha/alpha.c (alpha_mode_dependent_address_p): Add
+       unused addr_space_t parameter.
+       * config/avr/avr.c (avr_mode_dependent_address_p): Ditto.
+       * config/h8300/h8300.c (h8300_mode_dependent_address_p): Ditto.
+       * config/m32r/m32r.c (m32r_mode_dependent_address_p): Ditto.
+       * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): Ditto.
+       * config/rx/rx.c (rx_mode_dependent_address_p): Ditto.
+       * config/sparc/sparc.c (sparc_mode_dependent_address_p): Ditto.
+       * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
+       Ditto.
+       * config/vax/vax.c (vax_mode_dependent_address_p): Ditto.
+       * config/xtensa/xtensa.c (xtensa_mode_dependent_address_p): Ditto.
+
+2012-09-26  Christophe Lyon <christophe.lyon@linaro.org>
+
+       * tree-ssa-math-opts.c (bswap_stats): Add found_16bit field.
+       (execute_optimize_bswap): Add support for builtin_bswap16.
+
+2012-09-26  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (DECL_IS_BUILTIN): Compare LOCATION_LOCUS.
+
+2012-09-26  Ian Lance Taylor  <iant@google.com>
+
+       * diagnostic.c: Include "demangle.h" and "backtrace.h".
+       (bt_stop): New static array.
+       (bt_callback, bt_err_callback): New static functions.
+       (diagnostic_action_after_output): Call backtrace_full for DK_ICE.
+       * Makefile.in (BACKTRACE): New variable.
+       (BACKTRACEINC, LIBBACKTRACE): New variables.
+       (BACKTRACE_H): New variable.
+       (LIBDEPS, LIBS): Add $(LIBBACKTRACE).
+       (INCLUDES): Add $(BACKTRACEINC).
+       (diagnostic.o): Depend upon $(DEMANGLE_H) and $(BACKTRACE_H).
+
 2012-09-25  Segher Boessenkool  <segher@kernel.crashing.org>
 
        PR target/51274
        PR target/54641
        * config/avr/t-avr: Use ALL_COMPILERFLAGS instead of ALL_CFLAGS
        for sources compiled with COMPILER.
-       
+
 2012-09-25  Richard Guenther  <rguenther@suse.de>
 
        PR lto/54625
        * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Do not merge
        cgraph nodes for builtins.
 
-2012-09-25  Dehao Chen  <dehao@google.com>
-
-       PR middle-end/54645
-       * c-family/c-pch.c (c_common_read_pch): Rebuild the location_adhoc_data
-       map when read in the pch.
-
 2012-09-25  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/54676
        one bit precision properly.
 
        PR other/54692
-       * configure.ac (CFLAGS, CXXFLAGS): Remove -Ofast or -Og
-       properly.
+       * configure.ac (CFLAGS, CXXFLAGS): Remove -Ofast or -Og properly.
        * configure: Regenerated.
 
 2012-09-25  Georg-Johann Lay  <avr@gjlay.de>
 
 2012-09-24  Dehao Chen  <dehao@google.com>
 
-       * tree-cfg.c (move_stmt_op): Reset the expr block only
-       when necessary.
+       * tree-cfg.c (move_stmt_op): Reset the expr block only when necessary.
        (move_block_to_fn): Reset the edge's goto block even
        when the goto locus is unknown.
 
 
 2012-09-24  Janis Johnson  <janisjo@codesourcery.com>
 
-       doc/sourcebuild.texi (Selectors): Document the use of target
+       doc/sourcebuild.texi (Selectors): Document the use of target
        and xfail used together.
 
 2012-09-24  Richard Guenther  <rguenther@suse.de>
        * optabs.c (prepare_cmp_insn): Expand comparison of the result
        of memcmp through generic comparison expansion code.
 
+2012-09-21  Anthony Green  <green@moxielogic.com>
+
+       * config/moxie/moxie.opt: Add -mno-crt0 option.
+       * config/moxie/moxie.h (STARTFILE_SPEC): Handle -mno-crt0 option.
+       * doc/invoke.texi (Option Summary): Document -mno-crt0 option.
+
 2012-09-21  Jack Howarth  <howarth@bromo.med.uc.edu>
 
        PR bootstrap/54642
        (inline_read_section): Stream in loop_iterations.
        (inline_write_summary): Stream out loop_iterations.
 
-2012-08-20  Florian Weimer  <fweimer@redhat.com>
-
-       PR c++/19351
-       * call.c (build_operator_new_call): Add size_check argument and
-       evaluate it.
-       * cp-tree.h (build_operator_new_call): Adjust declaration.
-       * init.c (build_new_1): Compute array size check and apply it.
-
 2012-08-20  Oleg Endo  <olegendo@gcc.gnu.org>
 
        PR target/54089
 
 2012-08-17  Nick Clifton  <nickc@redhat.com>
 
-       * config/fr30/fr30.md  (cbranchsi4): Remove mode from comparison.
+       * config/fr30/fr30.md (cbranchsi4): Remove mode from comparison.
        (branch_true): Likewise.
        (branch_false): Likewise.
 
        * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
        (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
        (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
-       (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
+       (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
 
 2012-04-25  Sriraman Tallam  <tmsriram@google.com>