ipa-inline.c (want_inline_function_called_once_p): Rename to ...
[gcc.git] / gcc / ChangeLog
index 049321a91899f6dedd306ec72df00c8b476ecc5f..1c0b052325bf0ce391ae981b23684c54878fbcce 100644 (file)
@@ -1,7 +1,682 @@
+2012-10-29  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (want_inline_function_called_once_p): Rename to ...
+       (want_inline_function_to_all_callers_p): check also functions with
+       multiple callers.
+       (ipa_inline): Handle inlining for size into multiple callers.
+
+2012-10-29  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/53695
+       * tracer.c (tracer): Fixup loop structure.
+       * cfgloopmanip.c (force_single_succ_latches): Add assert.
+       (fix_loop_structure): Re-compute loop latches and disambiguate
+       loops with multiple latches if required.
+
+2012-10-29  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg
+       to check SImode equivalent of address, zero-extended with AND RTX.
+       * config/i386/i386.md (ashift to lea splitter): Split to SImode mult.
+       (simple lea to add/shift peephole2s): Remove peephole2s that operate
+       on subregs of DImode operations.
+
+2012-10-28  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/55106
+       * lra-constraints.c (skip_usage_debug_insns): New function.
+       (check_secondary_memory_needed_p): Ditto.
+       (inherit_reload_reg): Use the new functions.  Improve debug output.
+
+2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * doc/cpp.texi (Search Path): Fix outdated C++ path.
+
+2012-10-28  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
+       &this->field expressions.
+
+2012-10-28  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * rtl.h (struct rtx_def): Add a comment for member unchanging.
+       * lra-int.h (LRA_TEMP_CLOBBER_P): New macro.
+       (lra_hard_reg_substitution): Rename to lra_final_code_change.
+       * lra-constraints.c (match_reload): Mark temporary clobbers.
+       * lra-spill.c (lra_hard_reg_substitution): Rename to
+       lra_final_code_change.  Remove temporary clobbers.
+       * lra.c (lra): Rename to lra_final_code_change.
+
+2012-10-28  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (edge_badness): Fix overflow.
+       (inline_small_functions): Initialize SCCs correctly.
+       (do_estimate_edge_time, do_estimate_edge_hints): Skip self
+       recursive functions in SCC hints.
+
+2012-10-28  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR rtl-optimization/38711
+       * ira.c (ira): Remove DF_LIVE if the problem is in the stack.
+       (do_reload): Add it back at the end for -O2 and higher.
+
+       * function.c (thread_prologue_and_epilogue_insns): Use
+       REG_SET_TO_HARD_REG_SET instead of CLEAR_HARD_REG_SET and
+       reg_set_to_hard_reg_set.
+
+2012-10-28  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (edge_badness): Reduce precision; use scc hints.
+       (inline_small_functions): Fix dumps; update all callees after inlining.
+       * ipa-inline.h (INLINE_HINT_in_scc, INLINE_HINT_same_scc): New
+       constants.
+       (inline summary): Add SCC_NO.
+       * ipa-inline-analysis.c (dump_inline_hints): Dump SCC hints.
+       (reset_inline_summary): Reset scc_no.
+       (estimate_node_size_and_time): Set in_scc hint.
+       (do_estimate_edge_time): Add same_scc hint.
+       (do_estimate_edge_hints): Likewise.
+
+2012-10-28  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * doc/cppopts.texi: Fix use of @item vs. @itemx inside @table.
+       * doc/extend.texi: Likewise.
+       * doc/generic.texi: Likewise.
+       * doc/invoke.texi: Likewise.
+       * doc/md.texi: Likewise.
+       * doc/sourcebuild.texi: Likewise.
+
+       * doc/tm.texi.in (Misc): Add newline before @end.
+       * doc/tm.texi: Update.
+
+2012-10-27  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       * lra-assigns.c (find_hard_regno_for): Fix use of WORDS_BIG_ENDIAN.
+
+2012-10-27  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/55034
+       * config/avr/avr.c (avr_out_lpm): Remove unused regno_dest.
+
+2012-10-27  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/55042
+       * config/sh/sh.c (sh1_builtin_p): Comment out unused function.
+
+2012-10-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*lea<mode>): Remove unneeded temporary.
+
+2012-10-26  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/constraints.md: Update unused letter list, move
+       "w" near other memory constraints.  Remove no longer relevant
+       comment.
+       * doc/md.texi: Sync sparc constraint documentation with reality.
+
+2012-10-26  DJ Delorie  <dj@redhat.com>
+
+       * config/rl78/rl78.c (rl78_as_legitimate_address): Do not allow
+       reg+addend addresses for the _far namespace.
+
+2012-10-26  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/sync.md (ATOMIC): Correct DI condition.
+
+2012-10-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/54970
+       * cfgexpand.c (expand_debug_expr): Expand &MEM_REF[&var, n]
+       as DEBUG_IMPLICIT_PTR + n if &var expands to DEBUG_IMPLICIT_PTR.
+       * tree-sra.c (create_access_replacement): Allow also MEM_REFs
+       with ADDR_EXPR first operand in DECL_DEBUG_EXPR expressions.
+       * var-tracking.c (track_expr_p): Handle MEM_REFs in DECL_DEBUG_EXPR
+       expressions.
+       * dwarf2out.c (add_var_loc_to_decl): Likewise.
+
+2012-10-26  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-threadedge.c (cond_arg_set_in_bb): Use last stmt.
+
+2012-10-26  Gunther Nikl  <gnikl@users.sourceforge.net>
+
+       * common/config/m68k/m68k-common.c (m68k_handle_option): Set
+       gcc_options fields of opts_set for -m68020-40 and -m68020-60.
+
+2012-10-26  Teresa Johnson  <tejohnson@google.com>
+
+       * ree.c (add_removable_extension): Remove unnecessary
+       mode check with other extension.
+       * testsuite/gcc.c-torture/execute/20111227-2.c: New test.
+       * testsuite/gcc.c-torture/execute/20111227-3.c: Ditto.
+
+2012-10-26  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-transform.c (inline_call): Only account size changes
+       for !DECL_EXTERNAL.
+
+2012-10-26  Martin Jambor  <mjambor@suse.cz>
+
+       PR debug/54971
+       * tree-sra.c (struct access): New flag grp_to_be_debug_replaced.
+       (dump_access): Dump the new flag.
+       (analyze_access_subtree): Set the new flag when appropriate.
+       (create_access_replacement): Handle debug replacements differently.
+       (generate_subtree_copies): Handle the grp_to_be_debug_replaced flag.
+       (init_subtree_with_zero): Likewise.
+       (sra_modify_expr): Likewise.
+       (load_assign_lhs_subreplacements): Likewise.
+       (sra_modify_assign): Likewise.
+
+2012-10-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
+
+       * config/i386/i386.c (insn_is_function_arg) : Add check on CALL
+       instruction.
+       (ix86_dependencies_evaluation_hook): Insert dependencies in all
+       predecessors of call block for non-trivial region avoiding creation
+       of loop-carried dependency to avoid cross-block motion of HW registers.
+
+2012-10-26  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/54824
+       * tree-optimize.c (execute_fixup_cfg): Insert __builtin_unreachable
+       at the end of blocks with no successors.
+
+2012-10-26  Alexander Ivchenko  <alexander.ivchenko@intel.com>
+           Uros Bizjak  <ubizjak@gmail.com>
+
+       * gcc/common/config/i386/i386-common.c
+       (OPTION_MASK_ISA_FXSR_SET): New.
+       (OPTION_MASK_ISA_XSAVE_SET): Likewise.
+       (OPTION_MASK_ISA_XSAVEOPT_SET): Likewise.
+       (ix86_handle_option): Handle mfxsr, mxsave, mxsaveopt options.
+       * gcc/config.gcc (i[34567]86-*-*): Add fxsrintrin.h,
+       xsaveintrin.h, xsaveoptintrin.h.
+       (x86_64-*-*): Likewise.
+       * config/i386/fxsrintrin.h: New header.
+       * config/i386/xsaveintrin.h: Likewise.
+       * config/i386/xsaveoptintrin.h: Likewise.
+       * gcc/config/i386/driver-i386.c (host_detect_local_cpu): Detect
+       FXSR/XSAVE/XSAVEOPT support.
+       * gcc/config/i386/i386-builtin-types.def
+       (VOID_FTYPE_PVOID_INT64): New function type.
+       * gcc/config/i386/i386-c.c: Define __FXSR__, __XSAVE__
+       and __XSAVEOPT__ if needed.
+       * gcc/config/i386/i386.c (ix86_target_string): Define -mfxsr,
+        -mxsave and -mxsaveopt options.
+       (PTA_FXSR): New.
+       (PTA_XSAVE): Likewise.
+       (PTA_XSAVEOPT): Likewise.
+       (ix86_option_override_internal): Handle new option.
+       (processor_alias_table): Added PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT.
+       (ix86_valid_target_attribute_inner_p): Add OPT_mfxsr,
+       OPT_mxsave, OPT_mxsaveopt.
+       (ix86_builtins): Add IX86_BUILTIN_FXSAVE, IX86_BUILTIN_FXRSTOR,
+       IX86_BUILTIN_FXSAVE64, IX86_BUILTIN_XSAVE, IX86_BUILTIN_XSAVE64,
+       IX86_BUILTIN_XRSTOR, IX86_BUILTIN_XRSTOR64, IX86_BUILTIN_XSAVEOPT,
+       IX86_BUILTIN_XSAVEOPT64.
+       (ix86_expand_builtin): Handle these built-ins.
+       * gcc/config/i386/i386.h (TARGET_FXSR): New.
+       (TARGET_XSAVE): Likewise.
+       (TARGET_XSAVEOPT): Likewise.
+       * gcc/config/i386/i386.md (ANY_XSAVE): New int iterator.
+       (ANY_XSAVE64): Likewise.
+       (xsave): New int attribute.
+       (fxsave): New instruction.
+       (fxsave64): Likewise.
+       (fxrstor): Likewise.
+       (fxrstor64): Likewise.
+       (<xsave>): Likewise.
+       (<xsave>_rex64): Likewise.
+       (xrstor): Likewise.
+       (xrstor_rex64): Likewise.
+       (xrstor64): Likewise.
+       * gcc/config/i386/i386.opt (mfxsr): New.
+       (mxsave): Likewise.
+       (mxsaveopt): Likewise.
+       * gcc/config/i386/x86intrin.h: Include
+       xsaveintrin.h, fxsrintrin.h, xsaveoptintrin.h.
+
+2012-10-26  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+       * config/avr/t-rtems: Revert previous commit.
+
+2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       PR bootstrap/55049
+       * Makefile.in (rtlanal.o): Add dependency on addresses.h.
+       * rtl.h (address_info): New structure.
+       (strip_address_mutations, decompose_address, decompose_lea_address)
+       (decompose_mem_address, update_address, get_index_scale)
+       (get_index_code): Declare.
+       * rtlanal.c: Include addresses.h.
+       (strip_address_mutations, must_be_base_p, must_be_index_p)
+       (set_address_segment, set_address_base, set_address_index)
+       (set_address_disp, decompose_incdec_address, decompose_automod_address)
+       (extract_plus_operands, baseness, decompose_normal_address)
+       (decompose_address, decompose_lea_address, decompose_mem_address)
+       (update_address, get_index_scale, get_index_code): New functions.
+       * lra-constraints.c (strip_subreg): New function.
+       (address, extract_loc_address_regs, extract_address_regs)
+       (get_index_scale): Delete.
+       (process_addr_reg): Apply strip_subreg to the location.
+       (uses_hard_regs_p): Use decompose_mem_address.
+       (valid_address_p, base_plus_disp_to_reg, can_add_disp_p)
+       (equiv_address_substitution): Take an address_info rather
+       than an address.  Remove other arguments.  Avoid using Pmode.
+       (process_address): Use decompose_mem_address and decompose_lea_address.
+       Update calls to above functions.
+
+2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * lra-constraints.c (process_address): Tighten arguments to
+       base_reg_class.  Use simplify_gen_binary to generate PLUS rtxes.
+
+2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * lra-constraints.c (get_index_scale, can_add_disp_p): New functions.
+       (equiv_address_substitution): Use them.
+
+2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * lra-constraints.c (valid_address_p): New function, split out from...
+       (process_address): ...here.
+
+2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * lra-constraints.c (process_address): Describe the kinds of address
+       that we might see.
+
+2012-10-25  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * lra-int.h (lra_assert): Redefine it gcc_checking_assert.
+       * lra-constraints.c (check_and_process_move): Remove #if
+       ENABLE_ASSERT_CHECKING.
+
+2012-10-26  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+       * config/avr/rtems.h (TARGET_OS_CPP_BUILTINS): Remove
+       __USE_INIT_FINI__.
+       * config/avr/t-rtems (LIB1ASMFUNCS): Filter out _exit.
+
+2012-10-25  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/constraints.md ("U"): Delete.
+       * config/sparc/sparc.md: Use 'r' constraint instead of 'U'.
+       * config/sparc/sync.md: Likewise.
+
+2012-10-25  Lawrence Crowl  <crowl@google.com>
+
+       * hash-table.h: Add usage documentation.
+       (template struct typed_free_remove): Clarify documentation.
+       Rename template parameter.
+       (struct typed_noop_remove): Likewise.
+       (descriptor concept): Change typedef T to value_type.
+       Add typedef compare_type.  Use more precise template parameter name,
+       Descriptor instead of Descr.  Update users to match.
+       (struct hash_table): Change 'find' parameters to use compare_type
+       instead of the value type.
+
+2012-10-25  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_discover_new_direct_edges): If something was turned
+       to direct call update the summary.
+       * ipa-inline-transform.c (inline_call): Sanity check that summaries
+       match the predicted effect; fix updating of summary after edge
+       redirection.
+       * ipa-inline-analysis.c (inline_node_duplication_hook): Do not try
+       to update the summary and recompute it instead.
+       (estimate_function_body_sizes): Fix self size estimation; double
+       check that it agrees with inline_update_overall_summary.
+       (estimate_edge_size_and_time): Handle devirtualizaiton costs.
+       (estimate_edge_devirt_benefit): Update to be called from
+       estimate_edge_size_and_time.
+       (estimate_calls_size_and_time): Update.
+       (estimate_node_size_and_time): Watch overflows.
+       (inline_merge_summary): Likewise.
+       * ipa-prob.c: Include ipa-inline.h
+       (ipa_make_edge_direct_to_target): After redirection update the summary.
+
+2012-10-25  Cary Coutant  <ccoutant@google.com>
+
+       PR debug/55063
+       * dwarf2out.c (prune_unused_types_prune): Check whether DIE is
+       already a declaration.
+
+2012-10-25  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * lra-assigns.c (assign_by_spills): Add non-reload pseudos
+       assigned to hard register to changed_pseudo_bitmap.
+
+2012-10-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+       * config.gcc (microblaze*-*-rtems*): New target.
+       * config/microblaze/rtems.h: New.
+       * config/microblaze/t-rtems: New.
+
+2012-10-25  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimize/54980
+       * tree-ssa-loop-ivcanon.c (constant_after_peeling): Fix obvious typo.
+       (loop_edge_to_cancel): Be sure that the edge is from an conditional
+       so we can cancel it.
+
+2012-10-25  Marc Glisse  <marc.glisse@inria.fr>
+
+       PR c++/54427
+       * tree.c (signed_or_unsigned_type_for): Handle vectors.
+
+2012-10-25  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (recursive_inlining): Redirect to master
+       clone before testing profitability.
+
+2012-10-25  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/54902
+       * tree-ssa-pre.c (fini_eliminate): Return TODO.
+       (do_pre): Adjust.
+       (execute_fre): Likewise.
+       * tree-ssa-tailmerge.c (tail_merge_optimize): Delete unreachable
+       blocks before computing dominators.
+
+2012-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * expr.c (emit_block_move_via_loop): Use simplify_gen_binary
+       rather than gen_rtx_PLUS.
+
+2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR bootstrap/55068
+       PR regression/55050
+       * ira.c (setup_reg_renumber): Fix assert.
+       * ira-emit.c (emit_move_list): Update equivalences only for LRA.
+
+2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR bootstrap/55067
+       * lra.c: Rename loc to sloc and loc_t to sloc_t.
+
+2012-10-24  Sharad Singhai  <singhai@google.com>
+
+       * config/rs6000/rs6000.c (rs6000_density_test): Use dump_enabled_p
+          instead of dump_kind_p.
+
+2012-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR c++/54928
+       * tree-diagnostic.c (maybe_unwind_expanded_macro_loc):
+       Use diagnostic_append_note.
+       * diagnostic.c (diagnostic_build_prefix): Make diagnostic const.
+       (default_diagnostic_finalizer): Do not destroy prefix here.
+       (diagnostic_report_diagnostic): Destroy it here.
+       (diagnostic_append_note): New.
+       * diagnostic.h (diagnostic_append_note): Declare.
+
+2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/55055
+       * lra-spills.c (alter_subregs): New function.
+       (lra_hard_reg_substitution): Use it.
+
+2012-10-24  Sharad Singhai  <singhai@google.com>
+
+       * dumpfile.c (dump_enabled_p): Make it inline and move the definition
+       to dumpfile.h.
+       (dump_kind_p): Deleted. Functionality replaced by dump_enabled_p.
+       Make alt_dump_file extern.
+       * dumpfile.h (dump_enabled_p): Move inline definition here.
+       (dump_kind_p): Delete declaration.
+       Add extern declaration of alt_dump_file.
+       * toplev.c: Move dump_file and dump_file_name to dumpfile.c.
+       * tree-vect-loop-manip.c: Replace all uses of dump_kind_p with
+       dump_enabled_p.
+       * tree-vectorizer.c: Likewise.
+       * tree-vect-loop.c: Likewise.
+       * tree-vect-data-refs.c: Likewise.
+       * tree-vect-patterns.c: Likewise.
+       * tree-vect-stmts.c: Likewise.
+       * tree-vect-slp.c: Likewise.
+
+2012-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * expmed.c (lowpart_bit_field_p): Add missing == 0 check.
+
+2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR bootstrap/55049
+       * lra-constraints.c (extract_loc_address_regs): Pass top_p for
+       ZERO_EXTEND operand.
+
+2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR bootstrap/55048
+       * lra-constraints.c (update_ebb_live_info): Skip
+       non-NOTE_INSN_BASIC_BLOCK notes.
+
+2012-10-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/55010
+       * cse.c (fold_rtx) <RTX_COMPARE>: Call copy_rtx on folded_arg{0,1}
+       before passing it to simplify_relational_operation.
+
+       PR debug/54828
+       * gimple.h (is_gimple_sizepos): New inline function.
+       * gimplify.c (gimplify_one_sizepos): Use it.  Remove useless
+       final assignment to expr variable.
+       * tree.c (RETURN_TRUE_IF_VAR): Return true also if
+       !TYPE_SIZES_GIMPLIFIED (type) and _t is going to be gimplified
+       into a local temporary.
+
+2012-10-23  David S. Miller  <davem@davemloft.net>
+
+       * config/sparc/constraints.md ("T", "W"): Change
+       definitions to use define_memory_constraint.  Do not match 'reg'.
+       * config/sparc/sparc.c (memory_ok_for_ldd): Remove all non-MEM
+       handling code, update comment.
+
+2012-10-23  Ian Lance Taylor  <iant@google.com>
+
+       * doc/extend.texi (Extended Asm): The '+' constraint does not
+       require a register.
+
+2012-10-23  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-threadedge.c (thread_across_edge): Remove unused
+       parameter in call to cond_arg_set_in_bb.
+
+       * tree-ssa-threadedge.c (cond_arg_set_in_bb): Remove unused
+       debugging argument.
+
+       PR tree-optimization/54985
+       * tree-ssa-threadedge.c (cond_arg_set_in_bb): New function extracted
+       from thread_across_edge.
+       (thread_across_edge): Use it in all cases where we might thread
+       across a back edge.
+
 2012-10-23  Vladimir Makarov  <vmakarov@redhat.com>
 
-       * dbxout.c (dbxout_symbol_location): Pass new argument to
-       alter_subreg.
+       * lra-constraints.c (update_ebb_live_info): Process empty blocks.
+
+2012-10-23  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * expmed.c (store_split_bit_field): Update the calls to
+       extract_fixed_bit_field.  In the big-endian case, always
+       use the mode of OP0 to count the number of significant bits.
+       (extract_bit_field_1): Remove unit, offset, bitpos and
+       byte_offset from the outermost scope.  Express conditions in terms
+       of bitnum rather than offset, bitpos and byte_offset.  Move the
+       computation of MODE1 to the block that needs it.  Use MODE unless
+       the TMODE-based mode_for_size calculation succeeds.  Split the
+       plain move cases into two, one for memory accesses and one for
+       register accesses.  Generalize the memory case, freeing it from
+       the old register-based endian checks.  Move the INT_MODE calculation
+       above the code that needs it.  Use simplify_gen_subreg to handle
+       multiword OP0s.  If the field still spans several words, pass it
+       directly to extract_split_bit_field.  Assume after that point
+       that both targets and register sources fit within a word.
+       Replace x-prefixed variables with non-prefixed forms.
+       Compute the bitpos for ext(z)v register operands directly in the
+       chosen unit size, rather than going through an intermediate
+       BITS_PER_WORD unit size.  Simplify the containment check
+       used when forcing OP0 into a register.  Update the call to
+       extract_fixed_bit_field.
+       (extract_fixed_bit_field): Replace the bitpos and offset parameters
+       with a single bitnum parameter, of the same form as extract_bit_field.
+       Assume that OP0 contains the full field.  Simplify the memory offset
+       calculation and containment check for volatile bitfields.  Make the
+       offset explicit when volatile bitfields force a misaligned access.
+       Remove WARNED and fix long lines.  Assert that the processed OP0
+       has an integral mode.
+       (store_split_bit_field): Update the call to store_fixed_bit_field.
+
+2012-10-23  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * expmed.c (lowpart_bit_field_p): New function.
+       (store_bit_field_1): Remove unit, offset, bitpos and byte_offset
+       from the outermost scope.  Express conditions in terms of bitnum
+       rather than offset, bitpos and byte_offset.  Split the plain move
+       cases into two, one for memory accesses and one for register accesses.
+       Allow simplify_gen_subreg to fail rather than calling validate_subreg.
+       Move the handling of multiword OP0s after the code that coerces VALUE
+       to an integer mode.  Use simplify_gen_subreg for this case and assert
+       that it succeeds.  If the field still spans several words, pass it
+       directly to store_split_bit_field.  Assume after that point that
+       both sources and register targets fit within a word.  Replace
+       x-prefixed variables with non-prefixed forms.  Compute the bitpos
+       for insv register operands directly in the chosen unit size, rather
+       than going through an intermediate BITS_PER_WORD unit size.
+       Update the call to store_fixed_bit_field.
+       (store_fixed_bit_field): Replace the bitpos and offset parameters
+       with a single bitnum parameter, of the same form as store_bit_field.
+       Assume that OP0 contains the full field.  Simplify the memory offset
+       calculation.  Assert that the processed OP0 has an integral mode.
+       (store_split_bit_field): Update the call to store_fixed_bit_field.
+
+2012-10-23  Paul Koning  <ni1d@arrl.net>
+
+       PR debug/54508
+       * dwarf2out.c (prune_unused_types_prune): If pruning a class and
+       not all its children were marked, add DW_AT_declaration flag.
+
+2012-10-23  Ian Bolton  <ian.bolton@arm.com>
+           James Greenhalgh  <james.greenhalgh@arm.com>
+           Jim MacArthur  <jim.macarthur@arm.com>
+           Marcus Shawcroft  <marcus.shawcroft@arm.com>
+           Nigel Stephens  <nigel.stephens@arm.com>
+           Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+           Richard Earnshaw  <rearnsha@arm.com>
+           Sofiane Naci  <sofiane.naci@arm.com>
+           Stephen Thomas  <stephen.thomas@arm.com>
+           Tejas Belagod  <tejas.belagod@arm.com>
+           Yufeng Zhang  <yufeng.zhang@arm.com>
+
+       * config.gcc: Add AArch64.
+       * configure.ac: Add AArch64 TLS support detection.
+       * configure: Regenerate.
+
+2012-10-23  Ian Bolton  <ian.bolton@arm.com>
+           James Greenhalgh  <james.greenhalgh@arm.com>
+           Jim MacArthur  <jim.macarthur@arm.com>
+           Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
+           Marcus Shawcroft  <marcus.shawcroft@arm.com>
+           Nigel Stephens  <nigel.stephens@arm.com>
+           Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+           Richard Earnshaw  <rearnsha@arm.com>
+           Sofiane Naci  <sofiane.naci@arm.com>
+           Stephen Thomas  <stephen.thomas@arm.com>
+           Tejas Belagod  <tejas.belagod@arm.com>
+           Yufeng Zhang  <yufeng.zhang@arm.com>
+
+       * doc/invoke.texi (AArch64 Options): New.
+       * doc/md.texi (Machine Constraints): Add AArch64.
+
+2012-10-23  Ian Bolton  <ian.bolton@arm.com>
+           James Greenhalgh  <james.greenhalgh@arm.com>
+           Jim MacArthur  <jim.macarthur@arm.com>
+           Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
+           Marcus Shawcroft  <marcus.shawcroft@arm.com>
+           Nigel Stephens  <nigel.stephens@arm.com>
+           Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+           Richard Earnshaw  <rearnsha@arm.com>
+           Sofiane Naci  <sofiane.naci@arm.com>
+           Stephen Thomas  <stephen.thomas@arm.com>
+           Tejas Belagod  <tejas.belagod@arm.com>
+           Yufeng Zhang  <yufeng.zhang@arm.com>
+
+       * common/config/aarch64/aarch64-common.c: New file.
+       * config/aarch64/aarch64-arches.def: New file.
+       * config/aarch64/aarch64-builtins.c: New file.
+       * config/aarch64/aarch64-cores.def: New file.
+       * config/aarch64/aarch64-elf-raw.h: New file.
+       * config/aarch64/aarch64-elf.h: New file.
+       * config/aarch64/aarch64-generic.md: New file.
+       * config/aarch64/aarch64-linux.h: New file.
+       * config/aarch64/aarch64-modes.def: New file.
+       * config/aarch64/aarch64-option-extensions.def: New file.
+       * config/aarch64/aarch64-opts.h: New file.
+       * config/aarch64/aarch64-protos.h: New file.
+       * config/aarch64/aarch64-simd.md: New file.
+       * config/aarch64/aarch64-tune.md: New file.
+       * config/aarch64/aarch64.c: New file.
+       * config/aarch64/aarch64.h: New file.
+       * config/aarch64/aarch64.md: New file.
+       * config/aarch64/aarch64.opt: New file.
+       * config/aarch64/arm_neon.h: New file.
+       * config/aarch64/constraints.md: New file.
+       * config/aarch64/gentune.sh: New file.
+       * config/aarch64/iterators.md: New file.
+       * config/aarch64/large.md: New file.
+       * config/aarch64/predicates.md: New file.
+       * config/aarch64/small.md: New file.
+       * config/aarch64/sync.md: New file.
+       * config/aarch64/t-aarch64-linux: New file.
+       * config/aarch64/t-aarch64: New file.
+
+2012-10-23  Michael Matz  <matz@suse.de>
+
+       * tree-ssa-operands.h (struct def_optype_d, def_optype_p): Remove.
+       (ssa_operands.free_defs): Remove.
+       (DEF_OP_PTR, DEF_OP): Remove.
+       (struct ssa_operand_iterator_d): Remove 'defs', add 'flags' members,
+       rename 'phi_stmt' to 'stmt', 'phi_i' to 'i' and 'num_phi' to 'numops'.
+       * gimple.h (gimple_statement_with_ops.def_ops): Remove.
+       (gimple_def_ops, gimple_set_def_ops): Remove.
+       (gimple_vdef_op): Don't take const gimple, adjust.
+       (gimple_asm_input_op, gimple_asm_input_op_ptr,
+       gimple_asm_set_input_op, gimple_asm_output_op,
+       gimple_asm_output_op_ptr, gimple_asm_set_output_op): Adjust asserts,
+       and rewrite to move def operands to front.
+       (gimple_asm_clobber_op, gimple_asm_set_clobber_op,
+       gimple_asm_label_op, gimple_asm_set_label_op): Correct asserts.
+       * tree-ssa-operands.c (build_defs): Remove.
+       (init_ssa_operands): Don't initialize it.
+       (fini_ssa_operands): Don't free it.
+       (cleanup_build_arrays): Don't truncate it.
+       (finalize_ssa_stmt_operands): Don't assert on it.
+       (alloc_def, add_def_op, append_def): Remove.
+       (finalize_ssa_defs): Remove building of def_ops list.
+       (finalize_ssa_uses): Don't mark for SSA renaming here, ...
+       (add_stmt_operand): ... but here, don't call append_def.
+       (get_indirect_ref_operands): Remove recurse_on_base argument.
+       (get_expr_operands): Adjust call to get_indirect_ref_operands.
+       (verify_ssa_operands): Don't check def operands.
+       (free_stmt_operands): Don't free def operands.
+       * gimple.c (gimple_copy): Don't clear def operands.
+       * tree-flow-inline.h (op_iter_next_use): Adjust to explicitely
+       handle def operand.
+       (op_iter_next_tree, op_iter_next_def): Ditto.
+       (clear_and_done_ssa_iter): Clear new fields.
+       (op_iter_init): Adjust to setup new iterator structure.
+       (op_iter_init_phiuse): Adjust.
+
+2012-10-23  Greta Yorsh  <Greta.Yorsh@arm.com>
+
+       * config/arm/arm.c (offset_ok_for_ldrd_strd): Return false for Thumb1.
+
+2012-10-23  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * dbxout.c (dbxout_symbol_location): Pass new argument to alter_subreg.
        * dwarf2out.c: Include ira.h and lra.h.
        (based_loc_descr, compute_frame_pointer_to_fb_displacement): Use
        lra_eliminate_regs for LRA instead of eliminate_regs.
@@ -9,8 +684,7 @@
        emit_move_via_integer.  Use emit_move_via_integer for LRA only if
        the insn is recognized.
        * emit-rtl.c (gen_rtx_REG): Add lra_in_progress.
-       (validate_subreg): Don't check offset for LRA and floating point
-       modes.
+       (validate_subreg): Don't check offset for LRA and floating point modes.
        * final.c (final_scan_insn, cleanup_subreg_operands): Pass new
        argument to alter_subreg.
        (walk_alter_subreg, output_operand): Ditto.
        and ira_reg_equiv_const.  Call ira_setup_eliminable_regset with a
        new argument.  Don't flatten IRA IRA for LRA.  Don't reassign
        conflict allocnos for LRA. Call finish_reg_equiv.
-        (do_reload): Prepare code for LRA call.  Call LRA.
+       (do_reload): Prepare code for LRA call.  Call LRA.
        * ira.h (ira_use_lra_p): New external.
        (struct target_ira): Add members x_ira_class_subset_p
        x_ira_reg_class_subset, and x_ira_reg_classes_intersect_p.
        (generate_edge_moves, change_loop) Use ira_equiv_no_lvalue_p.
        (emit_move_list): Simplify code.  Call
        ira_update_equiv_info_by_shuffle_insn.  Use ira_reg_equiv instead
-       of ira_reg_equiv_invariant_p and ira_reg_equiv_const.  Change
-       assert.
+       of ira_reg_equiv_invariant_p and ira_reg_equiv_const.  Change assert.
        * ira-int.h (struct target_ira_int): Remove x_ira_class_subset_p
        and x_ira_reg_classes_intersect_p.
        (ira_class_subset_p, ira_reg_classes_intersect_p): Remove.
        * lra-lives.c: Ditto.
        * lra-spills.c: Ditto.
        * Makefile.in (LRA_INT_H): New.
-       (OBJS): Add lra.o, lra-assigns.o, lra-coalesce.o,
-       lra-constraints.o, lra-eliminations.o, lra-lives.o, and
-       lra-spills.o.
+       (OBJS): Add lra.o, lra-assigns.o, lra-coalesce.o, lra-constraints.o,
+       lra-eliminations.o, lra-lives.o, and lra-spills.o.
        (dwarf2out.o): Add dependence on ira.h and lra.h.
        (ira.o): Add dependence on lra.h.
-       (lra.o, lra-assigns.o, lra-coalesce.o, lra-constraints.o): New
-       entries.
+       (lra.o, lra-assigns.o, lra-coalesce.o, lra-constraints.o): New entries.
        (lra-eliminations.o, lra-lives.o, lra-spills.o): Ditto.
        * output.h (alter_subreg): Add new argument.
        * rtlanal.c (simplify_subreg_regno): Permit mode changes for LRA.
        FLOAT_MODE subregs for LRA.
        (scratch_operand): Accept pseudos for LRA.
        * rtl.h (lra_in_progress): New external.
-       (debug_bb_n_slim, debug_bb_slim, print_value_slim): New
-       prototypes.
+       (debug_bb_n_slim, debug_bb_slim, print_value_slim): New prototypes.
        (debug_rtl_slim, debug_insn_slim): Ditto.
        * sdbout.c (sdbout_symbol): Pass new argument to alter_subreg.
        * sched-vis.c (print_value_slim): New.
        (default_different_addr_displacement_p): Ditto.
        * timevar.def (TV_LRA, TV_LRA_ELIMINATE, TV_LRA_INHERITANCE): New.
        (TV_LRA_CREATE_LIVE_RANGES, TV_LRA_ASSIGN, TV_LRA_COALESCE): New.
-       * config/arm/arm.c (load_multiple_sequence): Pass new argument to\eOB
+       * config/arm/arm.c (load_multiple_sequence): Pass new argument to
        alter_subreg.
        (store_multiple_sequence): Ditto.
        * config/i386/i386.h (enum ix86_tune_indices): Add
        (ix86_secondary_reload): Add NON_Q_REGS, SIREG, DIREG.
        (inline_secondary_memory_needed): Change assert.
        (ix86_spill_class): New function.
-       (TARGET_LRA_P, TARGET_REGISTER_BANK, TARGET_SPILL_CLASS): New
-       macros.
+       (TARGET_LRA_P, TARGET_REGISTER_BANK, TARGET_SPILL_CLASS): New macros.
        * config/m68k/m68k.c (emit_move_sequence): Pass new argument to
        alter_subreg.
        * config/m32r/m32r.c (gen_split_move_double): Ditto.
 2012-10-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        PR tree-optimization/55008
-       * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Don't
-       allow a candidate to be a basis for itself under another interpretation.
+       * gimple-ssa-strength-reduction.c (find_basis_for_candidate):
+       Don't allow a candidate to be a basis for itself under another
+       interpretation.
 
 2012-10-22  Sharad Singhai  <singhai@google.com>
 
        * dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update
-        all callers.
+       all callers.
        (dump_enabled_p): A new function to check if any of the dump files
        is available.
        (dump_kind_p): Remove check for current_function_decl. Add check for