OSDN Git Service

* config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index fad5c9d..c971faf 100644 (file)
+2011-06-20  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
+       of toc-relative address in CONST.
+       (rs6000_delegitimize_address): Recognize changed address.
+       (rs6000_legitimize_reload_address): Likewise.
+       (rs6000_emit_move): Don't force these constants to memory.
+       * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
+       toc-relative address in CONST.
+       (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
+       (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
+
+2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * longlong.h (count_leading_zeros): Use long long builtin for
+       x86-64.
+       (count_trailing_zeros): Likewise.
+
+2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR other/49325
+       * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
+       .init_array can be used with .ctors on targets.
+       * configure: Regenerated.
+
+2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
+       if the element type is volatile.
+
+2011-06-18  Jan Hubicka  <jh@suse.cz>
+
+       * lto-symtab.c (lto_varpool_replace_node): Remove code handling
+       extra name aliases.
+       (lto_symtab_resolve_can_prevail_p): Likewise.
+       (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
+       * cgraphbuild.c (record_reference): Remove extra body alias code.
+       (mark_load): Likewise.
+       (mark_store): Likewise.
+       * cgraph.h (varpool_node): Remove extra_name filed;
+       add alias_of and extraname_alias.
+       (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
+       (varpool_alias_aliased_node): New inline function.
+       (varpool_variable_node): New function.
+       * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
+       * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
+       * lto-cgraph.c (lto_output_varpool_node): Update streaming.
+       (input_varpool_node): Likewise.
+       * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
+       (varpool_externally_visible_p): Remove extra body alias code.
+       (function_and_variable_visibility): Likewise.
+       * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
+       (ipa_pta_execute): Use it.
+       * varpool.c (varpool_remove_node): Remove extra name alias code.
+       (varpool_mark_needed_node): Likewise.
+       (varpool_analyze_pending_decls): Analyze aliases.
+       (assemble_aliases): New functoin.
+       (varpool_assemble_decl): Use it.
+       (varpool_create_variable_alias): New function.
+       (varpool_extra_name_alias): Rewrite.
+       (varpool_for_node_and_aliases): New function.
+
+2011-06-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/49411
+       * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
+       last_arg_constant and last argument doesn't match its predicate,
+       for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
+       if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
+       (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
+       spelling of error message.
+       * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
+       vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
+       const_0_to_255_operand instead of const_int_operand.
+
+       Revert:
+       2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (blendbits): Remove mode attribute.
+       (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
+       instead of const_0_to_<blendbits>_operand for operand 3 predicate.
+       Check integer value of operand 3 in insn constraint.
+
+2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR rtl-optimization/48542
+       * reload.c (find_equiv_reg): Stop looking when finding a
+       setjmp-type call.
+       * reload1.c (reload_as_needed): Invalidate all reload
+       registers when crossing a setjmp-type call.
+
+2011-06-16  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-threadupdate.c (struct redirection_data): New field
+       intermediate_edge.
+       (THREAD_TARGET2): Define.
+       (redirection_data_eq): Also check that the intermediate edge is
+       equal.
+       (lookup_redirection_data): Drop useless argument.  Extract the
+       outgoing_edge and intermediate edge from E.  Callers updated.
+       (copy_phi_args, update_destination_phis): New functions.
+       (fix_duplicate_block_edges): Likewise.
+       (create_edge_and_update_destination_phis): Duplicate all the edges
+       hung off e->aux.  Use copy_phi_args.
+       (create_duplicates): Use fix_duplicate_block_edges.
+       (fixup_template_block): Likewise.
+       (redirect_edges): If necessary, redirect the joiner block's incoming
+       edge to the duplicate of the joiner block.
+       (thread_block): Don't muck up loops when threading through a joiner
+       block.
+       (thread_through_loop_header): Handle threading through a joiner
+       block.
+       (mark_threaded_blocks, register_jump_thread): Likewise.
+       * tree-flow.h (register_jump_thread): Add new argument.  Callers
+       updated.
+       * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
+       (thread_across_edge): Handle threading through a joiner block.
+       
+2011-06-16  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/49343
+       * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
+       calculate offset, provide 2nd operand for the new COMPONENT_REF.
+
+2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * config/darwin-protos.h (machopic_select_rtx_section): Move to
+       inside RTX_CODE ifdef.
+
+2011-06-16  Tom de Vries  <tom@codesourcery.com>
+
+       PR target/45098
+       * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Disallow
+       NULL pointer for pointer arithmetic.
+
+2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       PR target/49398
+       Revert.
+       2011-06-10  Wei Guozhi  <carrot@google.com>
+
+       PR target/45335
+       * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
+       stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
+       (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
+       related peephole2.
+       (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
+       related peephole2.
+       * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
+       (arm_legitimate_ldrd_p): New prototype.
+       (arm_output_ldrd): New prototype.
+       * config/arm/arm.c (arm_check_ldrd_operands): New function.
+       (arm_legitimate_ldrd_p): New function.
+       (arm_output_ldrd): New function.
+
+2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       PR middle-end/46500
+       * doc/tm.texi.in: Update Copyright date.
+       * doc/tm.texi: Regenerate.
+       * targhooks.c (default_setup_incoming_varargs): Replace
+       CUMULATIVE_ARGS* argument type with cumulative_args_t.
+       (default_pretend_outgoing_varargs_named): Likewise.
+       (hook_pass_by_reference_must_pass_in_stack): Likewise.
+       (hook_callee_copies_named): Likewise.
+       (default_function_arg_advance): Likewise.
+       (default_function_arg): Likewise.
+       (default_function_incoming_arg): Likewise.
+       (hook_bool_CUMULATIVE_ARGS_false): Likewise.
+       (hook_bool_CUMULATIVE_ARGS_true): Likewise.
+       (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
+       (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
+       (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
+       * targhooks.h (default_setup_incoming_varargs): Likewise.
+       (default_pretend_outgoing_varargs_named): Likewise.
+       (hook_pass_by_reference_must_pass_in_stack): Likewise.
+       (hook_callee_copies_named): Likewise.
+       (default_function_arg_advance): Likewise.
+       (default_function_arg): Likewise.
+       (default_function_incoming_arg): Likewise.
+       (hook_bool_CUMULATIVE_ARGS_false): Likewise.
+       (hook_bool_CUMULATIVE_ARGS_true): Likewise.
+       (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
+       (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
+       (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
+       * target.def (pass_by_reference): Likewise.
+       (setup_incoming_varargs, strict_argument_naming): Likewise.
+       (pretend_outgoing_varargs_named, callee_copies): Likewise.
+       (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
+       (function_incoming_arg): Likewise.
+       * target.h: Don't include "tm.h" .
+       (cumulative_args_t): New typedef.
+       [GCC_TM_H] (get_cumulative_args): New static inline function.
+       [GCC_TM_H] (pack_cumulative_args): Likewise.
+       * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
+       argument type with cumulative_args_t.
+       (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
+       (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
+       * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
+       (frv_arg_partial_bytes, frv_function_arg): Likewise.
+       (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
+       (frv_function_arg_1): Likewise.
+       * config/s390/s390.c (s390_pass_by_reference): Likewise.
+       (s390_function_arg_advance, s390_function_arg): Likewise.
+       * config/m32c/m32c.c (m32c_function_arg): Likewise.
+       (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
+       (m32c_strict_argument_naming): Likewise.
+       * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
+       (spu_function_arg_advance): Likewise.
+       (spu_setup_incoming_varargs): Likewise.  Make static.
+       * config/spu/spu-protos.h (spu_setup_incoming_varargs):
+       Remove prototype.
+       * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
+       CUMULATIVE_ARGS* argument type with cumulative_args_t.
+       (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
+       (sparc_function_arg, sparc_function_incoming_arg): Likewise.
+       (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
+       * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
+       (mep_pass_by_reference, mep_function_arg): Likewise.
+       (mep_function_arg_advance): Likewise.
+       * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
+       (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
+       (m32r_function_arg, m32r_function_arg_advance): Likewise.
+       * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
+       * config/i386/i386.c (ix86_function_arg_advance): Likewise.
+       (ix86_function_arg, ix86_pass_by_reference): Likewise.
+       (ix86_setup_incoming_varargs): Likewise.
+       * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
+       (sh_strict_argument_naming): Likewise.
+       (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
+       (sh_callee_copies, sh_arg_partial_bytes): Likewise.
+       (sh_function_arg_advance, sh_function_arg): Likewise.
+       * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
+       (pdp11_function_arg_advance): Likewise.
+       * config/microblaze/microblaze.c (microblaze_function_arg_advance):
+       Likewise.
+       (microblaze_function_arg, function_arg_partial_bytes): Likewise.
+       * config/avr/avr.c (avr_function_arg): Likewise.
+       (avr_function_arg_advance): Likewise.
+       * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
+       (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
+       (xtensa_function_arg_1): Likewise.
+       * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Likewise.
+       (xstormy16_function_arg): Likewise.
+       * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
+       (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
+       (fr30_function_arg_advance): Likewise.
+       * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
+       (lm32_function_arg, lm32_function_arg_advance): Likewise.
+       * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
+       (moxie_function_arg, moxie_function_arg_advance): Likewise.
+       (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
+       * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
+       (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
+       (cris_function_arg, cris_function_incoming_arg): Likewise.
+       (cris_function_arg_advance, cris_function_arg_1): Likewise.
+       * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
+       (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
+       (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
+       * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
+       (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
+       (mn10300_arg_partial_bytes): Likewise.
+       * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
+       (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
+       (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
+       (ia64_function_arg_1): Likewise.
+       * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
+       (m68k_function_arg): Likewise.
+       * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
+       (rs6000_function_arg, setup_incoming_varargs): Likewise.
+       (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
+       * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
+       (picochip_function_arg, picochip_incoming_function_arg): Likewise.
+       (picochip_arg_advance): Likewise.
+       * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
+       (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
+       (mcore_function_arg_advance): Likewise.
+       * config/score/score.c (score_pass_by_reference): Likewise.
+       (score_function_arg_advance): Likewise.
+       (score_arg_partial_bytes): Likewise.  Make static.
+       * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
+       * config/arm/arm.c (arm_arg_partial_bytes): Replace
+       CUMULATIVE_ARGS* argument type with cumulative_args_t.
+       (arm_function_arg, arm_function_arg_advance): Likewise.
+       (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
+       * config/pa/pa.c (pa_pass_by_reference): Likewise.
+       (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
+       (pa_function_arg): Likewise.
+       * config/mips/mips.c (mips_strict_argument_naming): Likewise.
+       (mips_function_arg, mips_function_arg_advance): Likewise.
+       (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
+       (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
+       * config/vax/vax.c (vax_function_arg): Likewise.
+       (vax_function_arg_advance): Likewise.
+       * config/h8300/h8300.c (h8300_function_arg): Likewise.
+       (h8300_function_arg_advance): Likewise.
+       * config/v850/v850.c (v850_pass_by_reference): Likewise.
+       (v850_strict_argument_naming, v850_function_arg): Likewise.
+       (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
+       (v850_setup_incoming_varargs): Likewise.
+       * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
+       (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
+       (mmix_function_arg, mmix_pass_by_reference): Likewise.
+       (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
+       with const void *.
+       * config/bfin/bfin.c (setup_incoming_varargs): Replace
+       CUMULATIVE_ARGS* argument type with cumulative_args_t.
+       (bfin_function_arg_advance, bfin_function_arg): Likewise.
+       (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
+       * calls.c (emit_call_1): Change type of args_so_far to
+       cumulative_args_t.  Changed all callers.
+       (initialize_argument_information): Likewise.
+       (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
+       * dse.c (get_call_args): Likewise.
+       * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
+       * function.c (pass_by_reference, reference_callee_copied): Likewise.
+       (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
+       New member args_so_far_v.  Changed all users.
+       * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
+       * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
+       * config/mips/mips.c (mips_output_args_xfer): Likewise.
+       * config/s390/s390.c (s390_call_saved_register_used): Likewise.
+       * config/sh/sh.c (sh_output_mi_thunk): Likewise.
+       * config/microblaze/microblaze.c (microblaze_expand_prologue): Likewise.
+       * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
+       m32r_pass_by_reference.
+
+2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
+
+       * tree-vectorizer.h (vect_recog_func_ptr): Change the first
+       argument to be a VEC of statements.
+       * tree-vect-loop.c (vect_determine_vectorization_factor):
+       Remove the assert that pattern statements have to have their
+       vector type set.
+       * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
+       Change the first argument to be a VEC of statements.  Update
+       documentation.
+       (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
+       (vect_handle_widen_mult_by_const): New function.
+       (vect_recog_widen_mult_pattern):  Change the first argument to
+       be a VEC of statements.  Update documentation.  Check that the
+       constant is INTEGER_CST.  Support multiplication by a constant
+       that fits an intermediate type - call
+       vect_handle_widen_mult_by_const.
+       (vect_pattern_recog_1): Update vect_recog_func_ptr and its
+       call.  Handle additional pattern statements if necessary.
+
+2011-06-16  Nick Clifton  <nickc@redhat.com>
+
+       PR target/49427
+       * config.gcc: Set cpu_type to v850 for any V850 architecture.
+       (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
+       md_file, extra_modes, out_file and extra_options are these are all
+       deduced from cpu_type.
+
+2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
+       truncation mask to 63.
+
+2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/49313
+       PR target/29524
+       * longlong.h: Add AVR support:
+       (count_leading_zeros): New macro.
+       (count_trailing_zeros): New macro.
+       (COUNT_LEADING_ZEROS_0): New macro.
+       * config/avr/t-avr (LIB1ASMFUNCS): Add
+       _ffssi2, _ffshi2, _loop_ffsqi2,
+       _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2,
+       _paritydi2, _paritysi2, _parityhi2,
+       _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
+       _bswapsi2, _bswapdi2,
+       _ashldi3, _ashrdi3, _lshrdi3
+       (LIB2FUNCS_EXCLUDE): Add _clz.
+       * config/avr/libgcc.S (XCALL): Move up in file.
+       (XJMP): New C Macro.
+       (DEFUN): New asm macro.
+       (ENDF): New asm macro.
+       (__ffssi2): New function.
+       (__ffshi2): New function.
+       (__loop_ffsqi2): New function.
+       (__ctzsi2): New function.
+       (__ctzhi2): New function.
+       (__clzdi2): New function.
+       (__clzsi2): New function.
+       (__clzhi2): New function.
+       (__paritydi2): New function.
+       (__paritysi2): New function.
+       (__parityhi2): New function.
+       (__parityqi2): New function.
+       (__popcounthi2): New function.
+       (__popcountsi2): New function.
+       (__popcountdi2): New function.
+       (__popcountqi2): New function.
+       (__bswapsi2): New function.
+       (__bswapdi2): New function.
+       (__ashldi3): New function.
+       (__ashrdi3): New function.
+       (__lshrdi3): New function.
+       Fix suspicous lines.
+
+2011-06-16  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
+       the same as x != 0.
+       * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0 to
+       (bool) X & 1.
+       * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
+       equality compares against zero for the lower bit.
+
+2011-06-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/49419
+       * tree-vrp.c (execute_vrp): Call init_range_assertions
+       before estimate_numbers_of_iterations, call
+       free_number_of_iterations_estimates before calling
+       remove_range_assertions.
+
+2011-06-16  Revital Eres  <revital.eres@linaro.org>
+
+       * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
+       (struct partial_schedule): Add rows_length field.
+       (verify_partial_schedule): Check rows_length.
+       (ps_insert_empty_row): Handle rows_length.
+       (create_partial_schedule): Likewise.
+       (free_partial_schedule): Likewise.
+       (reset_partial_schedule): Likewise.
+       (create_ps_insn): Remove rest_count argument.
+       (remove_node_from_ps): Update rows_length.
+       (add_node_to_ps): Update rows_length and call create_ps_insn
+       without passing row_rest_count.
+       (rotate_partial_schedule): Update rows_length.
+
+2011-06-16  Revital Eres  <revital.eres@linaro.org>
+
+       * ddg.c (add_intra_loop_mem_dep): New function.
+       (build_intra_loop_deps): Call it.
+
+2011-06-13  Jeff Law  <law@redhat.com>
+
+       * df-problems.c (df_lr_local_compute): Manually CSE
+       PIC_OFFSET_TABLE_REGNUM.
+       * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
+       (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (handle_alias_pairs): New function.
+       (cgraph_finalize_compilation_unit): Use it.
+       * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
+       as externally visible.
+
+2011-06-15  Richard Guenther  <rguenther@suse.de>
+
+       * expr.c (expand_expr_real_2): Reduce all integral types to
+       bitfield precision.
+       (expand_expr_real_1): Likewise.
+
+2011-06-15  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/48613
+       * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
+       ipa_node_params_vector is NULL.
+
+2011-06-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/49382
+       * dwarf2out.c (dw_loc_list_node): Add force field.
+       (add_var_loc_to_decl): For PARM_DECL, attempt to keep
+       the incoming location in the list, even if it is modified
+       before first real insn.
+       (output_loc_list): Emit empty ranges with force flag set.
+       (dw_loc_list): If first range of a PARM_DECL is empty,
+       set force flag.
+
+2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
+
+       PR target/49349
+       * sel-sched.c (find_place_for_bookkeeping): Add new parameter
+       (fence_to_rewind).  Use it to notice when bookkeeping will be placed
+       above a fence.  Update comments.
+       (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
+       placed just above it.  Do not allow NULL place_to_insert.
+
+2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
+
+       * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
+       (slpeel_tree_peel_loop_to_edge): Don't call
+       remove_dead_stmts_from_loop.
+       * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
+       remove irrelevant pattern statements.  For irrelevant statements
+       check if it is the last statement of a detected pattern, use
+       corresponding pattern statement instead.
+       (destroy_loop_vec_info): No need to remove pattern statements,
+       only free stmt_vec_info.
+       (vect_transform_loop): For irrelevant statements check if it is
+       the last statement of a detected pattern, use corresponding
+       pattern statement instead.
+       * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
+       pattern statements.  Set basic block for the new statement.
+       (vect_pattern_recog): Update documentation.
+       * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
+       operands of pattern statements.
+       (vectorizable_call): Fix printing.  In case of a pattern statement
+       use the lhs of the original statement when creating a dummy
+       statement to replace the original call.
+       (vect_analyze_stmt): For irrelevant statements check if it is
+       the last statement of a detected pattern, use corresponding
+       pattern statement instead.
+       * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
+       statements use gsi of the original statement.
+
+2011-06-14  Joseph Myers  <joseph@codesourcery.com>
+
+       * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
+       common/common-target-def.h.
+       * target.def (default_target_flags, handle_option,
+       supports_split_stack, optimization_table, init_struct,
+       except_unwind_info, unwind_tables_default, have_named_sections):
+       Move to common/common-target.def.
+       * target.h (enum opt_levels, struct default_options): Move to
+       common/common-target.h.
+       * targhooks.c (default_except_unwind_info,
+       dwarf2_except_unwind_info, sjlj_except_unwind_info,
+       default_target_handle_option, empty_optimization_table): Move to
+       common/common-targhooks.c.
+       * targhooks.h (default_except_unwind_info,
+       dwarf2_except_unwind_info, sjlj_except_unwind_info,
+       default_target_handle_option, empty_optimization_table): Move to
+       common/common-targhooks.h.
+       * common/common-target-def.h: Include common/common-targhooks.h.
+       (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
+       defined.
+       * common/common-target.def (handle_option, option_init_struct,
+       option_optimization_table, default_target_flags,
+       except_unwind_info, supports_split_stack, unwind_tables_default,
+       have_named_sections): Move from target.def.
+       (HOOK_PREFIX): Undefine at end of file.
+       * common/common-target.h: Include input.h.
+       (enum opt_levels, struct default_options): Move from target.h.
+       * common/common-targhooks.c, common/common-targhooks.h: New.
+       * config.gcc (target_has_targetm_common): Default to yes.
+       (moxie*): Set target_has_targetm_common=no.
+       (hppa*-*-*): Don't set target_has_targetm_common=yes.
+       * doc/tm.texi: Regenerate.
+       * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
+       (C_TARGET_DEF_H): Add common/common-targhooks.h.
+       (GCC_OBJS): Remove vec.o.
+       (OBJS): Remove hooks.o and vec.o.
+       (OBJS-libcommon-target): Add vec.o, hooks.o and
+       common/common-targhooks.o.
+       (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
+       tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
+       expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
+       cfglayout.o, $(out_object_file), $(common_out_object_file)):
+       Update dependencies.
+       (common/common-targhooks.o): New.
+       * common/config/default-common.c: Include tm.h.  Add FIXME
+       comment.
+       * common/config/pa/pa-common.c: Include more headers.  Take
+       copyright dates from pa.c.
+       (pa_option_optimization_table, pa_handle_option,
+       TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
+       TARGET_HANDLE_OPTION): Move from pa.c.
+       * common/config/alpha/alpha-common.c,
+       common/config/arm/arm-common.c, common/config/avr/avr-common.c,
+       common/config/bfin/bfin-common.c,
+       common/config/cris/cris-common.c,
+       common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
+       common/config/h8300/h8300-common.c,
+       common/config/i386/i386-common.c,
+       common/config/ia64/ia64-common.c,
+       common/config/iq2000/iq2000-common.c,
+       common/config/lm32/lm32-common.c,
+       common/config/m32c/m32c-common.c,
+       common/config/m32r/m32r-common.c,
+       common/config/m68k/m68k-common.c,
+       common/config/mcore/mcore-common.c,
+       common/config/mep/mep-common.c,
+       common/config/microblaze/microblaze-common.c,
+       common/config/mips/mips-common.c,
+       common/config/mmix/mmix-common.c,
+       common/config/mn10300/mn10300-common.c,
+       common/config/pdp11/pdp11-common.c,
+       common/config/picochip/picochip-common.c,
+       common/config/rs6000/rs6000-common.c,
+       common/config/rx/rx-common.c, common/config/s390/s390-common.c,
+       common/config/score/score-common.c, common/config/sh/sh-common.c,
+       common/config/sparc/sparc-common.c,
+       common/config/spu/spu-common.c, common/config/v850/v850-common.c,
+       common/config/vax/vax-common.c,
+       common/config/xstormy16/xstormy16-common.c,
+       common/config/xtensa/xtensa-common.c: New.
+       * config/alpha/alpha.c: Include common/common-target.h.
+       (alpha_option_optimization_table, alpha_handle_option,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
+       TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
+       * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
+       * config/arm/arm.c (arm_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
+       arm-common.c.
+       * config/avr/avr.c (avr_option_optimization_table,
+       TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
+       to avr-common.c.
+       * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
+       (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
+       TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
+       * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
+       * config/cris/cris.c (cris_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
+       TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
+       cris-common.c.
+       * config/fr30/fr30.c (fr30_option_optimization_table,
+       TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
+       to fr30-common.c.
+       * config/frv/frv.c (frv_option_optimization_table,
+       MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
+       TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
+       * config/h8300/h8300.c (h8300_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
+       * config/i386/i386-protos.h (ix86_handle_option): Declare.
+       * config/i386/i386.c: Include common/common-target.h.
+       (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
+       OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
+       OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
+       OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
+       OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
+       OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
+       OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
+       OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
+       OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
+       OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
+       OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
+       OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
+       OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
+       OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
+       OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
+       OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
+       OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
+       OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
+       OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
+       OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
+       OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
+       OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
+       OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
+       OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
+       OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
+       OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
+       OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
+       OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
+       OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
+       ix86_option_optimization_table, ix86_option_init_struct,
+       ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
+       TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
+       i386-common.c.
+       * config/i386/t-i386 (i386.o): Update dependencies.
+       * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
+       * config/ia64/ia64.c (ia64_option_optimization_table,
+       TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
+       ia64_handle_option): Move to ia64-common.c.
+       * config/iq2000/iq2000.c (iq2000_option_optimization_table,
+       TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
+       * config/lm32/lm32.c (lm32_option_optimization_table,
+       TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
+       to lm32-common.c.
+       * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
+       m32c-common.c.
+       * config/m32r/m32r.c (m32r_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
+       TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
+       m32r_handle_option): Move to m32r-common.c.
+       (m32r_memory_move_cost): Remove comment referring to
+       TARGET_HANDLE_OPTION.
+       * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
+       Move to m68k-common.c.
+       * config/mcore/mcore.c (mcore_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
+       * config/mep/mep.c (mep_option_optimization_table,
+       mep_handle_option, TARGET_HANDLE_OPTION,
+       TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
+       Move to mep-common.c.
+       * config/microblaze/microblaze.c
+       (microblaze_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
+       * config/mips/mips.c (mips_handle_option,
+       mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
+       mips-common.c.
+       * config/mmix/mmix.c (mmix_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
+       Move to mmix-common.c.
+       * config/mn10300/mn10300.c (mn10300_option_optimization_table,
+       mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
+       TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
+       * config/pa/pa.c: Include common/common-target.h.
+       (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
+       pa_handle_option): Move to pa-common.c.
+       (pa_option_override): Use targetm_common.except_unwind_info.
+       (pa_asm_output_mi_thunk, pa_function_section): Use
+       targetm_common.have_named_sections.
+       * config/pdp11/pdp11.c (pdp11_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
+       TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
+       pdp11_handle_option, pdp11_option_init_struct): Move to
+       pdp11-common.c.
+       * config/picochip/picochip.c (picochip_option_optimization_table,
+       TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
+       * config/rs6000/rs6000.c: Include common/common-target.h.
+       (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
+       TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
+       rs6000_handle_option): Move to rs6000-common.c.
+       * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
+       * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
+       TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
+       * config/s390/s390.c (processor_flags_table,
+       s390_option_optimization_table, s390_option_init_struct,
+       s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
+       TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
+       TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
+       * config/s390/s390.h (processor_flags_table): Declare.
+       * config/score/score.c (score_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
+       TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
+       score_handle_option): Move to score-common.c.
+       * config/sh/sh.c (sh_option_optimization_table,
+       TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
+       sh_handle_option, sh_option_init_struct): Move to sh-common.c.
+       * config/sparc/sparc.c: Include common/common-target.h.
+       (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
+       TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
+       * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
+       TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
+       spu_option_init_struct): Move to spu-common.c.
+       * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
+       TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
+       * config/v850/v850.c (small_memory_physical_max,
+       v850_handle_memory_optionn v850_handle_option,
+       v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
+       TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
+       v850-common.c.
+       * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to
+       vax-common.c.
+       * config/xtensa/xtensa.c (xtensa_option_optimization_table,
+       TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
+       Move to xtensa-common.c.
+       * cfglayout.c: Include common/common-target.h.
+       (fixup_reorder_chain): Use targetm_common.have_named_sections.
+       * cfgrtl.c: Include common/common-target.h.
+       (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
+       targetm_common.have_named_sections.
+       * dbxout.c: Include common/common-target.h.
+       (dbxout_function_end): Use targetm_common.have_named_sections.
+       * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
+       targetm_common.except_unwind_info.
+       * dwarf2out.c: Include common/common-target.h.
+       (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
+       dwarf2out_begin_prologue, dwarf2out_frame_init,
+       dwarf2out_frame_finish, dwarf2out_assembly_start): Use
+       targetm_common.except_unwind_info.
+       * except.c: Include common/common-target.h.
+       (init_eh, finish_eh_generation,
+       output_one_function_exception_table): Use
+       targetm_common.except_unwind_info.
+       (switch_to_exception_section): Use
+       targetm_common.have_named_sections.
+       * explow.c: Include common/common-target.h.
+       * expr.c: Include common/common-target.h.
+       (build_personality_function): Use
+       targetm_common.except_unwind_info.
+       * function.c: Include common/common-target.h.
+       (expand_function_end): Use targetm_common.except_unwind_info.
+       * haifa-sched.c: Include common/common-target.h.
+       (sched_create_recovery_edges): Use
+       targetm_common.have_named_sections.
+       * lto-opts.c: Include common/common-target.h instead of target.h.
+       (lto_reissue_options): Use targetm_common.handle_option.
+       * opts.c: Include common/common-target.h.
+       (target_handle_option): Use targetm_common.handle_option.
+       (init_options_struct): Update comment referring to
+       targetm.target_option.optimization.  Use
+       targetm_common.default_target_flags,
+       targetm_common.unwind_tables_default and
+       targetm_common.option_init_struct.
+       (default_options_optimization): Use
+       targetm_common.option_optimization_table.
+       (finish_options): Use targetm_common.except_unwind_info,
+       targetm_common.unwind_tables_default,
+       targetm_common.have_named_sections and
+       targetm_common.supports_split_stack.
+       * toplev.c: Include common/common-target.h.
+       (process_options): Use targetm_common.have_named_sections.
+       * tree-tailcall.c: Include common/common-target.h.
+       (suitable_for_tail_call_opt_p): Use
+       targetm_common.except_unwind_info.
+       * tree.c: Include common/common-target.h.
+       (build_common_builtin_nodes): Use
+       targetm_common.except_unwind_info.
+       * varasm.c: Include common/common-target.h.
+       (resolve_unique_section, hot_function_section,
+       default_function_section): Use targetm_common.have_named_sections.
+
+2011-06-14  Easwaran Raman  <eraman@google.com>
+
+       PR rtl-optimization/44194
+       * dse.c: Include tree-flow.h
+       (insn_info): Add new field non_frame_wild_read.
+       (group_info): Add new fields escaped_n and escaped_p.
+       (kill_on_calls): New variable.
+       (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
+       (dse_step0): Initialize kill_on_calls.
+       (can_escape): New function.
+       (set_usage_bits): Add additional parameter; record information
+       about escaped locations.
+       (record_store): Pass EXPR corresponding to MEM to
+       set_usage_bits.
+       (dse_step2_nospill): Set kill_on_calls based on
+       group->escaped_n and group->escaped_n.
+       (add_wild_read): Refactor into...
+       (reset_active_stores): ... New function, and
+       (free_read_records): ... New function.
+       (add_non_frame_wild_read): New function.
+       (scan_insn): Call add_non_frame_wild_read on non-const calls.
+       (scan_reads_nospill): Handle instructions with
+       non_frame_wild_read.
+       (dse_step5_nospill): Call scan_reads_nospill for instructions
+       marked as non_frame_wild_read.
+       (dse_step7): Free escaped_n, escaped_p and kill_on_calls
+       bitmaps.
+
+2011-06-14  Joseph Myers  <joseph@codesourcery.com>
+
+       * common/common-target-def.h, common/common-target.def,
+       common/common-target.h, common/config/default-common.c,
+       common/config/pa/pa-common.c: New files.
+       * Makefile.in (common_out_file, common_out_object_file,
+       COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
+       (OBJS-libcommon-target): Include $(common_out_object_file).
+       (prefix.o): Update dependencies.
+       ($(common_out_object_file), common/common-target-hooks-def.h,
+       s-common-target-hooks-def-h): New.
+       (s-tm-texi): Also check timestamp on common-target.def.
+       (build/genhooks.o): Update dependencies.
+       * config.gcc (common_out_file, target_has_targetm_common): Define.
+       * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
+       TARGET_ALWAYS_STRIP_DOTDOT.
+       * configure.ac (common_out_object_file): Define.
+       (common_out_file, common_out_object_file): Substitute.
+       (common): Create directory.
+       * configure: Regenerate.
+       * doc/tm.texi.in (targetm_common): Document.
+       (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
+       * doc/tm.texi: Regenerate.
+       * genhooks.c (hook_array): Also include common/common-target.def.
+       * prefix.c (tm.h): Don't include.
+       (common/common-target.h): Include.
+       (ALWAYS_STRIP_DOTDOT): Don't define.
+       (update_path): Use targetm_common.always_strip_dotdot instead of
+       ALWAYS_STRIP_DOTDOT.
+       * system.h (ALWAYS_STRIP_DOTDOT): Poison.
+
+2011-06-14  David Li  <davidxl@google.com>
+
+       * passes.c (execute_function_todo): Remove TODO_dump_func.
+       (execute_one_pass): Remove TODO_dump_func.
+       (execute_function_dump): New function.
+       * tree-vrp.c: Remove TODO_dump_func.
+       * regrename.c: Remove TODO_dump_func.
+       * fwprop.c: Remove TODO_dump_func.
+       * tree-into-ssa.c: Remove TODO_dump_func.
+       * tree-complex.c: Remove TODO_dump_func.
+       * tracer.c: Remove TODO_dump_func.
+       * tree-loop-distribution.c: Remove TODO_dump_func.
+       * postreload-gcse.c: Remove TODO_dump_func.
+       * postreload.c: Remove TODO_dump_func.
+       * tree-ssa-loop-ch.c: Remove TODO_dump_func.
+       * tree-tailcall.c: Remove TODO_dump_func.
+       * ipa-cp.c: Remove TODO_dump_func.
+       * final.c: Remove TODO_dump_func.
+       * tree-emutls.c: Remove TODO_dump_func.
+       * omp-low.c: Remove TODO_dump_func.
+       * tree-ssa-dse.c: Remove TODO_dump_func.
+       * tree-ssa-uncprop.c: Remove TODO_dump_func.
+       * auto-inc-dec.c: Remove TODO_dump_func.
+       * reorg.c: Remove TODO_dump_func.
+       * tree-ssa-copyrename.c: Remove TODO_dump_func.
+       * tree-ssa-ccp.c: Remove TODO_dump_func.
+       * compare-elim.c: Remove TODO_dump_func.
+       * mode-switching.c: Remove TODO_dump_func.
+       * modulo-sched.c: Remove TODO_dump_func.
+       * tree-call-cdce.c: Remove TODO_dump_func.
+       * cse.c: Remove TODO_dump_func.
+       * web.c: Remove TODO_dump_func.
+       * tree-stdarg.c: Remove TODO_dump_func.
+       * lto-streamer-out.c: Remove TODO_dump_func.
+       * tree-ssa-math-opts.c: Remove TODO_dump_func.
+       * tree-ssa-dom.c: Remove TODO_dump_func.
+       * tree-nrv.c: Remove TODO_dump_func.
+       * loop-init.c: Remove TODO_dump_func.
+       * gimple-low.c: Remove TODO_dump_func.
+       * ipa-inline.c: Remove TODO_dump_func.
+       * tree-ssa-sink.c: Remove TODO_dump_func.
+       * jump.c: Remove TODO_dump_func.
+       * ifcvt.c: Remove TODO_dump_func.
+       * tree-ssa-loop.c: Remove TODO_dump_func.
+       * recog.c: Remove TODO_dump_func.
+       * dse.c: Remove TODO_dump_func.
+       * tree-ssa-ifcombine.c: Remove TODO_dump_func.
+       * matrix-reorg.c: Remove TODO_dump_func.
+       * tree-eh.c: Remove TODO_dump_func.
+       * regmove.c: Remove TODO_dump_func.
+       * function.c: Remove TODO_dump_func.
+       * tree-vectorizer.c: Remove TODO_dump_func.
+       * ipa-split.c: Remove TODO_dump_func.
+       * gcse.c: Remove TODO_dump_func.
+       * tree-if-conv.c: Remove TODO_dump_func.
+       * init-regs.c: Remove TODO_dump_func.
+       * tree-ssa-phiopt.c: Remove TODO_dump_func.
+       * implicit-zee.c: Remove TODO_dump_func.
+       * lower-subreg.c: Remove TODO_dump_func.
+       * bt-load.c: Remove TODO_dump_func.
+       * tree-dfa.c: Remove TODO_dump_func.
+       * except.c: Remove TODO_dump_func.
+       * emit-rtl.c: Remove TODO_dump_func.
+       * store-motion.c: Remove TODO_dump_func.
+       * cfgexpand.c: Remove TODO_dump_func.
+       * tree-cfgcleanup.c: Remove TODO_dump_func.
+       * cfgcleanup.c: Remove TODO_dump_func.
+       * tree-ssa-pre.c: Remove TODO_dump_func.
+       * tree-sra.c: Remove TODO_dump_func.
+       * tree-mudflap.c: Remove TODO_dump_func.
+       * tree-ssa-copy.c: Remove TODO_dump_func.
+       * cfglayout.c: Remove TODO_dump_func.
+       * tree-ssa-forwprop.c: Remove TODO_dump_func.
+       * tree-ssa-dce.c: Remove TODO_dump_func.
+       * ira.c: Remove TODO_dump_func.
+       * tree-ssa.c: Remove TODO_dump_func.
+       * integrate.c: Remove TODO_dump_func.
+       * tree-optimize.c: Remove TODO_dump_func.
+       * tree-ssa-phiprop.c: Remove TODO_dump_func.
+       * tree-object-size.c: Remove TODO_dump_func.
+       * combine.c: Remove TODO_dump_func.
+       * bb-reorder.c: Remove TODO_dump_func.
+       * cprop.c: Remove TODO_dump_func.
+       * var-tracking.c: Remove TODO_dump_func.
+       * tree-profile.c: Remove TODO_dump_func.
+       * tree-vect-generic.c: Remove TODO_dump_func.
+       * reg-stack.c: Remove TODO_dump_func.
+       * sched-rgn.c: Remove TODO_dump_func.
+       * tree-ssa-structalias.c: Remove TODO_dump_func.
+       * tree-switch-conversion.c: Remove TODO_dump_func.
+       * tree-cfg.c: Remove TODO_dump_func.
+       * tree-ssa-reassoc.c: Remove TODO_dump_func.
+       * combine-stack-adj.c: Remove TODO_dump_func.
+       * dce.c: Remove TODO_dump_func.
+       * tree-ssanames.c: Remove TODO_dump_func.
+       * regcprop.c: Remove TODO_dump_func.
+
+2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR middle-end/47364
+       * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
+       and properly handle result not in Pmode.
+
+2011-06-14  Robert Millan  <rmh@gnu.org>
+
+       * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
+       * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
+       `config/linux.h'.
+
+       * config/i386/kfreebsd-gnu64.h: New file.
+       * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
+       with `i386/kfreebsd-gnu64.h'.
+
+       * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
+       (GNU_USER_LINK_EMULATION64): New macros.
+       * config/i386/gnu-user64.h (LINK_SPEC): Rely on
+       `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
+       of hardcoding `elf_i386' and `elf_x86_64'.
+
+2011-06-14  Nick Clifton  <nickc@redhat.com>
+
+       PR target/49403
+       * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
+
+       PR target/49402
+       * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
+
+2011-06-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/49103
+       * tree.h (DECL_NONSHAREABLE): Define.
+       (struct tree_decl_common): Change decl_common_unused to
+       decl_nonshareable_flag.
+       * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
+       Ignore vars with DECL_NONSHAREABLE bit set.
+       * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
+       on stores to automatic aggregate vars.
+
+       PR rtl-optimization/49390
+       Revert:
+       2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
+       MEM_ALIAS_SET.
+
+2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
+           Tom de Vries  <tom@codesourcery.com>
+
+       PR target/45098
+       * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
+       Document changed semantics.
+       (max_stmt_executions, max_stmt_executions_int): Declare.
+       * tree-data-ref.c (estimated_loop_iterations)
+       (estimated_loop_iterations_int): Move functions...
+       * tree-ssa-loop-niter.c (estimated_loop_iterations)
+       (estimated_loop_iterations_int): here.
+       (record_estimate): Change nb_iterations_upper_bound and
+       nb_iterations_estimate semantics.
+       (max_stmt_executions, max_stmt_executions_int): New function.
+       * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
+       (max_stmt_executions_tree): this.
+       (analyze_miv_subscript): Use max_stmt_executions_tree instead of
+       estimated_loop_iterations_tree.
+       tree-ssa-loop-ivopts.c (avg_loop_niter): Use
+       max_stmt_executions_int instead of estimated_loop_iterations_int.
+       * predict.c (predict_loops): Idem.
+       * tree-parloops.c (parallelize_loops): Idem.
+       * tree-data-ref.c (analyze_siv_subscript_cst_affine)
+       (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
+       (init_omega_for_ddr_1): Idem.
+       * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
+       (loop_prefetch_arrays): Idem
+       * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
+       max_stmt_executions instead of estimated_loop_iterations.
+       * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
+       * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
+       instead of nb_iterations_upper_bound.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
+
+2011-06-14  Richard Henderson  <rth@redhat.com>
+
+       PR debug/48459
+       * dwarf2out.c (frame_pointer_fb_offset_valid): New.
+       (based_loc_descr): Assert it's true.
+       (compute_frame_pointer_to_fb_displacement): Set it, rather than
+       aborting immediately.
+
+2011-06-14  Sanjin Liu <scliu@faraday-tech.com>
+           Mingfeng Wu  <mingfeng@faraday-tech.com>
+
+       * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
+       similarly to DECL_COMDAT.
+       * cgraphunit.c (cgraph_analyze_function): Likewise.
+       * ipa.c (function_and_variable_visibility): Likewise.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
+       BINFO_VIRTUALS when streaming for ltrans unit.
+
+2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
+
+       * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
+       (movdi_internal64): Same.
+
+2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
+
+       PR target/44618
+       * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
+       a set of similar patterns, where the MATCH_OPERAND for the function
+       argument is replaced with individual references to hardware registers.
+       (save_fpregs_<mode>): Ditto
+       (restore_gpregs_<mode>): Ditto
+       (return_and_restore_gpregs_<mode>): Ditto
+       (return_and_restore_fpregs_<mode>): Ditto
+       (return_and_restore_fpregs_aix_<mode>): Ditto
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-utils.c (postorder_stack): New structure.
+       (ipa_reverse_postorder): Handle aliases.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (reset_edge_caches): Walk aliases.
+       (update_caller_keys): Do not test inlinability of aliases.
+       * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
+       (do_estimate_growth): Fix typo.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
+       (can_remove_node_now_p): ... here; handle same comdat groups.
+       (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
+       (inline_call): Update use of can_remove_node_now_p.
+
+2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
+
+       * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
+       condition to disallow non-identical memory locations.
+       (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
+       preference to bit manipulation instructions.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_for_node_thunks_and_aliases,
+       cgraph_for_node_and_aliases): Fix thinko in recursive walking.
+       (nonremovable_p): New function.
+       (cgraph_can_remove_if_no_direct_calls_p): New function.
+       (used_from_object_file_p): New functoin.
+       (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
+       references from aliases.
+       * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
+       * ipa-inline.c (check_caller_edge): New function.
+       (want_inline_function_called_once_p): Use it; accept aliases called
+       once, too.
+       * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
+
+2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       PR target/48454
+       * config/arm/neon.md (vec_pack_trunc): Set the lengths
+       correctly for the case with Quad vectors.
+
+2011-06-13 Jakub Jelinek  <jakub@redhat.com>
+          Ira Rosen  <ira.rosen@linaro.org>
+
+       PR tree-optimization/49352
+       * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
+       all, make sure loop_use_stmt after the loop is a def stmt of a used
+       SSA_NAME that is the only one defined inside of the loop.  Don't
+       check for COND_EXPR and GIMPLE_BINARY_RHS.
+       (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
+       check_reduction is true.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/49373
+       * ipa.c (cgraph_externally_visible_p): Check resolution info.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/48836
+       * ipa-inline-transform.c: Include tree-pass.h
+       (inline_transform): Set TODO_update_ssa_only_virtuals.
+       * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/49378
+       * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
+       aliases and thunks.
+
+2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
+
+       * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
+       Take number of iterations to peel into account for equally frequent
+       misalignment values.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer-out.c (produce_symtab): Stream out the newly represented
+       aliases.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying
+       args.
+       (ipa_update_after_lto_read): Likewise.
+       (ipa_write_node_info): Do not sream call_with_var_arguments.
+       (ipa_read_node_info): Likewise.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
+       (lto_symtab_resolve_can_prevail_p): Likewise.
+       (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
+       * cgraph.c (same_body_aliases_done): New global var.
+       (cgraph_same_body_alias_1): Rename to ...
+       (cgraph_create_function_alias): ... this one; reorg to new
+       representation.
+       (cgraph_same_body_alias): Use cgraph_create_function_alias;
+       record references when asked to.
+       (cgraph_add_thunk): Fix formating.
+       (cgraph_get_node): Kill same body alias code.
+       (cgraph_node_for_asm): Likewise.
+       (cgraph_remove_same_body_alias): Remove.
+       (cgraph_remove_node): Kill same body alias code.
+       (cgraph_mark_address_taken_node): Mark also the aliased function
+       as having address taken.
+       (dump_cgraph_node): Dump same body aliases.
+       (cgraph_for_node_thunks_and_aliases): Update for new alias
+       representation.
+       (cgraph_for_node_and_aliases): Likewise.
+       * cgraph.h (same_body): Kll pointer.
+       (same_body_alias): Update comment.
+       (same_body_aliases_done): Declare.
+       (cgraph_remove_same_body_alias): Remove declaration.
+       (cgraph_create_function_alias): Declare.
+       (cgraph_process_same_body_aliases): Declare.
+       (cgraph_function_with_gimple_body_p): Check for alias.
+       (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
+       (cgraph_alias_aliased_node): New function.
+       (cgraph_function_node): Update for new aliases.
+       (cgraph_function_or_thunk_node): Likewise.
+       * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
+       (inline_call): Remove dead aliases.
+       * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
+       name hack for same body aliases.
+       (clone_of_p): Look through aliases.
+       (verify_cgraph_node): Verify aliases.
+       (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
+       (cgraph_process_same_body_aliases): New function.
+       (process_function_and_variable_attributes): Disable weakref warning on
+       alias.
+       (cgraph_analyze_functions): Handle aliases.
+       (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
+       (assemble_thunks): Rename to ...
+       (assemble_thunks_and_aliases): ... this one; handle aliases, too.
+       (cgraph_expand_function): Remove alias output code.
+       (cgraph_output_in_order): Skip aliases.
+       (cgraph_preserve_function_body_p): Aliases don't need preserving.
+       * ipa-ref.c (ipa_ref_use_name): Add alias reference.
+       (ipa_record_reference): Do not assert on alias references.
+       (ipa_ref_has_aliases_p): New function.
+       * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
+       (ipa_ref_has_aliases_p): Declare.
+       * lto-cgraph.c (lto_output_node): Handle aliases.
+       (input_node): Likewise.
+       * lto-streamer-out.c (lto_output): Skip aliases.
+       (produce_symtab): Kill same_body_alias code.
+       * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
+       (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
+       * ipa-inline.c (update_caller_keys): Walk aliases.
+       (inline_small_functions): Fix thinko in previous patch.
+       * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
+       (function_and_variable_visibility): Do not walk same body aliases.
+       * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
+       (ipa_pta_execute): Use it.
+
+2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
+       (*vec_dupv2df): Rename from vec_dupv2df.
+       (vec_dupv2df): New expander.
+
+2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
+
+2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md: Use default value in "isa" attribute.
+       * config/i386/sse.md: Ditto.
+       * config/i386/mmx.md: Ditto.
+
+2011-06-10  Wei Guozhi  <carrot@google.com>
+
+       PR target/45335
+       * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
+       stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
+       (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
+       related peephole2.
+       (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
+       related peephole2.
+       * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
+       (arm_legitimate_ldrd_p): New prototype.
+       (arm_output_ldrd): New prototype.
+       * config/arm/arm.c (arm_check_ldrd_operands): New function.
+       (arm_legitimate_ldrd_p): New function.
+       (arm_output_ldrd): New function.
+
+2011-06-10  David Li  <davidxl@google.com>
+
+       * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
+       * passes.c (passr_eq): New function.
+       (create_pass_tab): New function.
+       (pass_traverse): New function.
+       (dump_one_pass): New function.
+       (dump_pass_list): New function.
+       (dump_passes): New function.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
+       setting the nothrow flag.
+       * ipa-reference.c (propagate): Skip aliases.
+       * ipa-pure-const.c (propagate_pure_const): Skip aliases.
+       (propagate_nothrow): Skip aliases; do not update cgraph.
+       (local_pure_const): Do not update cgraph.
+       * tree-profile.c (tree_profiling): Do fixup_cfg.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
+       (cgraph_local_node_p): ... here; handle aliases.
+       (has_addr_references_p): Break out from ...;
+       (cgraph_remove_unreachable_nodes) ... here.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * opts.c (default_options): Enlist OPT_finline_functions_called_once.
+       * common.opt (flag_inline_functions_called_once): Do not
+       initialize to 1.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
+       (ipcp_initialize_node_lattices): Do not deal with aliases;
+       Do not try to propagate through thunks.
+       (ipcp_change_tops_to_bottom): Do not deal with aliases.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-prop.c (ipa_write_node_info): Stream jump functions
+       for indirect calls.
+       (ipa_read_node_info): Likewise.
+
+2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR lto/49302
+       * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
+       (build_and_insert_call): Likewise.
+       (build_and_insert_ref): New.
+       (gimple_expand_builtin_pow): Minor cleanup.
+       (gimple_expand_builtin_cabs): New.
+       (execute_cse_sincos): Add case for BUILT_IN_CABS.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
+       (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
+       (ipcp_initialize_node_lattices): We don't propagate through an aliases.
+       (ipcp_propagate_stage): Skip aliases when propagating.
+       (ipcp_need_redirect_p): Skip aliases.
+       (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
+       collect_callers_of_node.
+       * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
+       for aliases.
+       (ipa_compute_jump_functions): Look through aliases.
+
+2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
+
+2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
+
+       * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
+       Adjust comments.
+       * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_process_devirtualization_opportunities):
+       Update call of gimple_get_virt_method_for_binfo.
+       * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
+       refuse_thunks parameter.
+       (gimple_fold_call): Update.
+       * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
+       (not_all_callers_have_enough_arguments_p): ... this one; turn into
+       worker for cgraph_for_node_and_aliases.
+       (convert_callers_for_node): Break out from ...
+       (convert_callers): ... here.
+       (modify_function): Use collect_callers_of_node.
+       (ipa_early_sra): Use cgraph_for_node_and_aliases.
+
+2011-06-10  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/49361
+       * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
+       when not already in gimple form.
+
+2011-06-10  Richard Guenther  <rguenther@suse.de>
+
+       PR bootstrap/49344
+       * tree-ssa-math-opts.c (convert_mult_to_fma): Use
+       FOR_EACH_PHI_OR_STMT_USE.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
+       (clone_inlined_nodes): ... here.
+       (inline_call): Use cgraph_function_or_thunk_node; redirect edge
+       to real destination prior inlining.
+       * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
+       can_early_inline_edge_p, want_early_inline_function_p,
+       want_early_inline_function_p, want_inline_small_function_p,
+       want_inline_self_recursive_call_p, want_inline_function_called_once_p,
+       edge_badness, update_all_callee_keys, lookup_recursive_calls,
+       add_new_edges_to_heap, inline_small_functions, flatten_function,
+       inline_always_inline_functions, early_inline_small_functions): Use
+       cgraph_function_or_thunk_node.
+       * ipa-inline-analysis.c (evaluate_conditions_for_edge,
+       dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
+       (do_estimate_edge_growth_1): Break out from ...
+       (do_estimate_growth) ... here; walk aliases.
+       (inline_generate_summary): Skip aliases.
+
+2011-06-10  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
+       forward when combining, visit inserted stmts when a stmt was changed.
+
+2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * tree.h (error_operand_p): Add.
+       * dbxout.c (dbxout_type_fields): Use the latter.
+       * c-decl.c (add_stmt): Likewise.
+       * gimplify.c (omp_add_variable, omp_notice_variable,
+       gimplify_scan_omp_clauses): Likewise.
+
+2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
+       when a value is actually passed in regs.
+
+2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+           Laurent RougĂ©  <laurent.rouge@menta.fr>
+
+       * doc/invoke.texi (SPARC options): Add -mflat.
+       * config/sparc/sparc.opt: Likewise.
+       * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
+       (sparc_flat_expand_prologue): Declare.
+       (sparc_flat_expand_epilogue): Likewise.
+       * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
+       (CPP_ENDIAN_SPEC): Replace with...
+       (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
+       (CPP_SPEC): Adjust to above change.
+       (EXTRA_SPECS): Likewise.
+       (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
+       (INCOMING_REGNO): Likewise.
+       (OUTGOING_REGNO): Likewise.
+       (LOCAL_REGNO): Likewise.
+       (SETUP_FRAME_ADDRESSES): Likewise.
+       (FIXED_REGISTERS): Set 0 for %fp.
+       (CALL_USED_REGISTERS): Likewise.
+       (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
+       (EXIT_IGNORE_STACK): Define to 1 unconditionally.
+       (RETURN_ADDR_REGNUM): Define.
+       (RETURN_ADDR_RTX): Use it.
+       (INCOMING_RETURN_ADDR_REGNUM): Define.
+       (INCOMING_RETURN_ADDR_RTX): Use it.
+       (DWARF_FRAME_RETURN_COLUMN): Likewise.
+       (EH_RETURN_REGNUM): Define.
+       (EH_RETURN_STACKADJ_RTX): Use it.
+       (EH_RETURN_HANDLER_RTX): Delete.
+       (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
+       * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
+       Delete.
+       (struct machine_function): Add frame_size, apparent_frame_size,
+       frame_base_reg, frame_base_offset, n_global_fp_regs and
+       save_local_in_regs_p fields.
+       (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
+       sparc_frame_base_offset, sparc_n_global_fp_regs,
+       sparc_save_local_in_regs_p): New macros.
+       (sparc_option_override): Error out if -fcall-saved-REG is specified
+       for Out registers.
+       (eligible_for_restore_insn): Fix formatting.
+       (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
+       (eligible_for_sibcall_delay): Likewise.
+       (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
+       (sparc_legitimate_address_p): Adjust to above change.
+       (save_global_or_fp_reg_p): New predicate.
+       (return_addr_reg_needed_p): Likewise.
+       (save_local_or_in_reg_p): Likewise.
+       (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
+       (SORR_SAVE, SORR_RESTORE): Delete.
+       (sorr_pred_t): New typedef.
+       (sorr_act_t): New enum.
+       (save_or_restore_regs): Rename to...
+       (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
+       parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
+       ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
+       mechanism.  Add CFI information for double-word saves in 32-bit mode.
+       (emit_adjust_base_to_offset): New function extracted from...
+       (emit_save_or_restore_regs): ...this.  Rename the rest to...
+       (emit_save_or_restore_regs_global_fp_regs): ...this.
+       (emit_save_or_restore_regs_local_in_regs): New function.
+       (gen_create_flat_frame_[123]): New functions.
+       (sparc_expand_prologue): Use SIZE local variable.  Adjust.
+       (sparc_flat_expand_prologue): New function.
+       (sparc_asm_function_prologue): Add TARGET_FLAT handling.
+       (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
+       (sparc_flat_expand_epilogue): New function.
+       (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
+       (output_return): Likewise.
+       (output_sibcall): Likewise.
+       (sparc_output_mi_thunk): Likewise.
+       (sparc_frame_pointer_required): Likewise.
+       (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
+       function optimization.
+       * config/sparc/sparc.md (flat): New attribute.
+       (prologue): Add TARGET_FLAT handling.
+       (save_register_window): Disable if TARGET_FLAT.
+       (create_flat_frame_[123]): New patterns.
+       (epilogue): Add TARGET_FLAT handling.
+       (sibcall_epilogue): Likewise.
+       (eh_return): New expander.
+       (eh_return_internal): New insn and splitter.
+       (return_internal): Add TARGET_FLAT handling.
+       (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
+       (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
+       (nonlocal_goto): Add TARGET_FLAT handling.
+       * config/sparc/t-elf: Add -mflat multilib.
+       * config/sparc/t-leon: Likewise.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
+       * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
+       (self_recursive_p): Use cgraph_function_node.
+       (propagate_pure_const): Likewise.
+       (propagate_nothrow): Likewise.
+       * ipa-reference.c (ipa_reference_get_not_read_global): Use
+       cgraph_function_node.
+       (propagate_bits): Likewise.
+       (propagate): Likewise.
+
+2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+           Richard Earnshaw  <rearnsha@arm.com>
+
+       * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
+       * config/arm/vfp.md (*arm_movdi_vfp): Delete.
+       (*thumb2_movdi_vfp): Delete.
+       (*arm_movdi_vfp_cortexa8): Delete.
+       (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
+       (*movdi_vfp_cortexa8): Likewise.
+
+2011-06-10  Richard Guenther  <rguenther@suse.de>
+
+       * stor-layout.c (initialize_sizetypes): Give names to all
+       sizetype kinds.
+
+2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
+
+       PR tree-optimization/49318
+       * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
+       irrelevant pattern statements.
+
+2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
+
+       * system.h (SETJMP_VIA_SAVE_AREA): Poison.
+
+       PR bootstrap/49354
+       * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
+       to last assignment.
+
+2011-06-09  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
+       do not recompute reachable flag.
+       (cgraph_finalize_function, cgraph_analyze_functions): Set
+       redefined_extern_inline here.
+
+2011-06-09  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
+       (cgraph_only_called_directly_p): ... this one; bring offline.
+       (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
+       varpool_used_from_object_file_p): Drop names from the declaratoin.
+       (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
+       collect_callers_of_node): New.
+       (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
+       (cgraph_edge_recursive_p): Use cgraph_function_node.
+       * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
+       (cgraph_node_cannot_be_local_p_1): Break out from ...
+       (cgraph_node_can_be_local_p): ... here; walk aliases.
+       (cgraph_for_node_thunks_and_aliases): New function.
+       (cgraph_for_node_and_aliases): New function.
+       (cgraph_make_node_local_1): Break out from ...
+       (cgraph_make_node_local) ... here; use
+       cgraph_for_node_thunks_and_aliases.
+       (cgraph_set_nothrow_flag_1): Break out from ...
+       (cgraph_set_nothrow_flag) ... here;
+       use cgraph_for_node_thunks_and_aliases.
+       (cgraph_set_const_flag_1): Break out from ...
+       (cgraph_set_const_flag) ... here;
+       use cgraph_for_node_thunks_and_aliases.
+       (cgraph_set_pure_flag_1): Break out from ...
+       (cgraph_set_pure_flag) ... here;
+       use cgraph_for_node_thunks_and_aliases.
+       (cgraph_propagate_frequency_1): Break out from ...
+       (cgraph_propagate_frequency) ... here; use
+       cgraph_for_node_thunks_and_aliases.
+       (cgraph_used_from_object_file_p): Do not care about aliases.
+       (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
+       New functions.
+       (collect_callers_of_node_1, collect_callers_of_node): New functions.
+
+2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR rtl-optimization/49154
+       * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
+       (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
+       (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
+       (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
+       * config/cris/cris.h (cris_register_move_cost): Remove
+       !TARGET_V32 code.  Tweak comments.
+
 2011-06-09  Jan Hubicka  <jh@suse.cz>
 
        * cgraphbuild.c (record_eh_tables): Mark personality function as having
 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
 
        PR rtl-optimization/49154
-       * ira-costs.c (setup_regno_cost_classes_by_mode): If there
-       already is a matching slot in the hashtable, assign it to
-       classes_ptr.
+       * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
+       is a matching slot in the hashtable, assign it to classes_ptr.
 
        PR rtl-optimization/49154
        * doc/tm.texi.in (Register Classes): Document rule for the narrowest
        * config/ia64/unwind-ia64.c: Likewise.
        * config/xtensa/unwind-dw2-xtensa.c: Likewise.
 
-2011-06-03  Jack Howarth <howarth@bromo.med.uc.edu>
+2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
 
        * varpool.c (varpool_extra_name_alias): Return NULL, not false.