+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>
+
+ * 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>
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
Richard Earnshaw <rearnsha@arm.com>
Sofiane Naci <sofiane.naci@arm.com>
- Stephen Thomas <stephen,thomas@arm.com>
+ Stephen Thomas <stephen.thomas@arm.com>
Tejas Belagod <tejas.belagod@arm.com>
Yufeng Zhang <yufeng.zhang@arm.com>
* config/aarch64/t-aarch64-linux: New file.
* config/aarch64/t-aarch64: New file.
-2012-10-23 Jakub Jelinek <jakub@redhat.com>
-
- PR c++/54988
- * decl2.c (cplus_decl_attributes): Don't return early
- if attributes is NULL.
-
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'.
+ (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.
2012-10-23 Greta Yorsh <Greta.Yorsh@arm.com>
- * config/arm/arm.c (offset_ok_for_ldrd_strd): Return false for
- Thumb1.
+ * 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.
+ * 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.
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