+2011-06-21 Richard Guenther <rguenther@suse.de>
+
+ * ipa-inline-transform.c (inline_transform): Fix previous
+ change.
+
+2011-06-21 Ira Rosen <ira.rosen@linaro.org>
+
+ PR tree-optimization/49478
+ * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
+ with constant operand.
+
+2011-06-21 Richard Guenther <rguenther@suse.de>
+
+ * ipa-inline-transform.c (inline_transform): Fix typo.
+
+2011-06-21 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/49483
+ * tree-vect-stmts.c (vectorizable_assignment): Also handle
+ VIEW_CONVERT_EXPR conversions.
+
+2011-06-21 Joseph Myers <joseph@codesourcery.com>
+
+ * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
+ * config/avr/avr-tables.opt: New file (generated).
+ * config.gcc (avr-*-*): Use avr/avr-tables.opt.
+ * config/avr/avr-devices.c (avr_mcu_types): Move contents to
+ avr-mcus.def.
+ * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
+ (avr_option_override): Don't process -mmcu= argument here. Set
+ avr_current_device using avr_mcu_index.
+ (avr_file_start): Use avr_current_device->name instead of
+ avr_mcu_name.
+ * config/avr/avr.opt (mmcu=): Use Enum.
+ * config/avr/t-avr (avr-devices.o): Update dependencies.
+ ($(srcdir)/config/avr/avr-tables.opt): New.
+ * target.def (help): Remove.
+ * doc/tm.texi.in (TARGET_HELP): Remove.
+ * doc/tm.texi: Regenerate.
+ * opts.c: Don't include target.h.
+ (common_handle_option): Don't call targetm.help.
+ * system.h (TARGET_HELP): Poison.
+ * Makefile.in (opts.o): Update dependencies.
+
+2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/usegld.h: New file.
+ * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
+ (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
+ (LIB_SPEC): Likewise.
+ Search /lib.
+ (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
+ (RDYNAMIC_SPEC): Handle GNU ld.
+ [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC): Define.
+ (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
+ (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
+ [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
+ (STACK_CHECK_STATIC_BUILTIN): Define.
+ * config/sol2.opt (compat-bsd): Remove.
+ * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
+ * config/sol2-bi.h: New file.
+ * config/sol2-gld.h: Remove.
+ * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
+ (NO_DBX_BNSYM_ENSYM): Remove.
+ (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
+ (STACK_CHECK_STATIC_BUILTIN): Remove.
+ Test USE_GLD instead of TARGET_GNU_LD.
+ * config/i386/sol2-10.h: Rename to ...
+ * config/i386/sol2-bi.h .. this.
+ (SUBTARGET_EXTRA_SPECS): Redefine.
+ (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
+ (MULTILIB_DEFAULTS): Remove.
+ (DEFAULT_ARCH32_P): Define.
+ (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
+ (ARCH64_SUBDIR): Define.
+ Test USE_GLD instead of TARGET_GNU_LD.
+ (I386_EMULATION): Rename to ...
+ (ARCH32_EMULATION): ... this.
+ (X86_64_EMULATION): Rename to ...
+ (ARCH64_EMULATION): ... this.
+ (TARGET_LD_EMULATION): Remove.
+ (LINK_ARCH_SPEC): Remove.
+ * config/i386/sol2-gas.h: Remove.
+ * config/i386/t-sol2-10: Rename to ...
+ * config/i386/t-sol2-64: ... this.
+ * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
+ (AS_SPARC64_FLAG): Define.
+ (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
+ (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
+ depending on TARGET_CPU_DEFAULT.
+ (CPP_CPU_SPEC): Redefine.
+ (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
+ (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
+ (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
+ (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
+ ASM_ARCH_DEFAULT_SPEC): Redefine.
+ (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
+ LINK_ARCH_DEFAULT_SPEC.
+ [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
+ [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
+ (ARCH64_SUBDIR): Define.
+ (LINK_ARCH64_SPEC): Redefine.
+ (CC1_SPEC): Redefine.
+ (OPTION_DEFAULT_SPECS): Redefine.
+ (MULTILIB_DEFAULTS): Define.
+ (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
+ [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
+ [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
+ (NO_DBX_BNSYM_ENSYM): Remove.
+ (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
+ (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
+ (TARGET_ASM_NAMED_SECTION): Likewise.
+ (STACK_CHECK_STATIC_BUILTIN): Remove.
+ * config/sparc/sol2-bi.h: Remove.
+ * config/sparc/sol2-gas-bi.h: Remove.
+ * config/sparc/sol2-gas.h: Remove.
+ * config/sparc/sol2-gld-bi.h: Remove.
+ * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
+ common parts ...
+ (*-*-solaris2*): ... here.
+
+2011-06-21 Christian Bruel <christian.bruel@st.com>
+
+ PR other/43564
+ * ipa-inline.c (can_inline_edge_p): Check !DECL_DISREGARD_INLINE_LIMITS.
+
+2011-06-21 Christian Bruel <christian.bruel@st.com>
+
+ PR middle-end/49139
+ * cgraphunit.c (process_function_and_variable_attributes): warn when
+ always_inline functions that are not inline.
+ * ipa-inline-transform.c (inline_transform): Always call optimize_inline.
+ * tree-inline.c (tree_inlinable_function_p): Use error instead of sorry.
+ (expand_call_inline): Likewise.
+
+2011-06-21 Jakub Jelinek <jakub@redhat.com>
+
+ * Makefile.in (dg_target_exps): Set.
+ (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
+ instead of 7, try to divide it more evenly.
+
+2011-06-20 Changpeng Fang <changpeng.fang@amd.com>
+
+ PR i386/49089
+ * config/i386/i386.c (avx256_split_unaligned_load): New definition.
+ (avx256_split_unaligned_store): New definition.
+ (ix86_option_override_internal): Enable avx256 unaligned load/store
+ splitting only when avx256_split_unaligned_load/store is set.
+
+2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
+
+ * regrename.c (scan_rtx_reg): Handle the case where we write to an
+ open chain in a smaller mode without failing the entire block.
+
+2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/47725
+ * combine.c (cant_combine_insn_p): Don't check zero/sign
+ extended hard registers.
+
+2011-06-21 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
+ CONST high part large-toc address.
+ (rs6000_tls_referenced_p): Make static.
+ * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
+
+2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/47725
+ * combine.c (cant_combine_insn_p): Check zero/sign extended
+ hard registers.
+
+2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
+
+ PR target/49385
+ * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
+ one of the operands is a register.
+
+2011-06-20 Kai Tietz <ktietz@redhat.com>
+
+ * fold-const.c (fold_binary_loc): Add missing
+ folding for truth-not operations in combination
+ with binary and.
+
+2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
+
+ * regrename.c (do_replace): Don't update notes.
+
+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
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.