OSDN Git Service

gcc:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 0aa3fab..210d7b0 100644 (file)
+2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * doc/install.texi (Configuration, --enable-threads): Remove mach.
+       Add lynx, mipssde.
+       Sort table.
+
+2011-04-19  Xinliang David Li  <davidxl@google.com>
+       
+       * ipa-cp.c (ipcp_update_profiling): asserting
+       scale_completement is not negative.
+
+2011-04-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/48678
+       * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
+       is a SUBREG with non-MODE_INT mode inside of it.
+
+2011-04-19  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
+       also according to actual contants.
+       * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
+       (gimple_fold_call): Use it.
+       * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
+
+2011-04-19  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
+       non-pointer assignments.
+
+2011-04-19  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
+       account anc_offset and otr_type from the indirect edge info.
+       * ipa-prop.c (get_ancestor_addr_info): New function.
+       (compute_complex_ancestor_jump_func): Assignment analysis moved to
+       get_ancestor_addr_info, call it.
+       (ipa_note_param_call): Do not initialize information about polymorphic
+       calls, return the indirect call graph edge.  Remove the last
+       parameter, adjust all callers.
+       (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
+       parameters.  Initialize polymorphic information in the indirect edge.
+
+2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR lto/48148
+       * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
+       the types if they have different enumeration identifiers.
+
+2011-04-19  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.h (cgraph_optimize_for_size_p): Declare.
+       * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
+       * predict.c (cgraph_optimize_for_size_p): Break out from ...
+       (optimize_function_for_size_p) ... here.
+
+2011-04-19  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/48207
+       * tree.c (free_lang_data): Do not reset the decl-assembler-name
+       langhook.
+
+2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
+       if DECL_NO_INLINE_WARNING_P is set on the function.
+
+2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR fortran/47976
+       * reload1.c (inc_for_reload): Return void. All callers changed.
+       (emit_input_reload_insns): Don't try to delete previous output
+       reloads to a register, or record spill_reg_store for autoincs.
+
+2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
+
+       * gengtype.h: Updated copyright year.
+       (struct input_file_st): Add inpisplugin field.
+       (type_fileloc): New function.
+       * gengtype.c
+       (write_typed_struct_alloc_def): Add gcc_assert.
+       (write_typed_alloc_defns): Ditto. Don't output for plugin files.
+       (write_typed_alloc_defns): Don't output for plugin files.
+       (input_file_by_name): Clear inpisplugin field.
+       (main): Set inpisplugin field for plugin files.
+
+2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * gengtype-state.c (string_eq): New.
+       (read_state): Use string_eq instead of strcmp when creating the
+       state_ident_tab.
+
+2011-04-19  Wei Guozhi  <carrot@google.com>
+
+       PR target/47855
+       * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
+       * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
+       linkage.
+       * config/arm/constraints.md (Uu): New constraint.
+       * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
+
+2011-04-19  Tristan Gingold  <gingold@adacore.com>
+
+       * config.gcc (-*-*-*vms): Added.
+       (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
+       definitions moved.
+       * config/vms/vms-ld.c: New file.
+       * config/vms/vms-ar.c: New file.
+       * config/vms/t-vmsnative: New file.
+
+2011-04-18  Xinliang David Li  <davidxl@google.com>
+
+       * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
+
+2011-04-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/48661
+       * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
+       if TREE_TYPE (v) is non-NULL.
+
+       * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
+       gimple_get_virt_mehtod_for_binfo.
+       * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
+       * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
+       callers.
+       * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
+
+2011-04-18  Michael Matz  <matz@suse.de>
+           Steve Ellcey  <sje@cup.hp.com>
+
+       * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
+       use its mode as source mode if it isn't VOIDmode.
+
+2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
+
+       * doc/passes.texi: Fill crossref nodes.
+
+2011-04-18  Jim Meyering  <meyering@redhat.com>
+
+       Fix doubled-word typos in comments and strings
+       * config/alpha/vms-unwind.h: s/for for/for/
+       * config/arm/unwind-arm.h: Likewise.
+       * config/microblaze/microblaze.c: Likewise.
+       * config/sh/constraints.md: s/in in/in/
+       * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
+
+2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
+       (AVX_FLOAT_MODE_P): Ditto.
+       (AVX128_VEC_FLOAT_MODE_P): Ditto.
+       (AVX256_VEC_FLOAT_MODE_P): Ditto.
+       (AVX_VEC_FLOAT_MODE_P): Ditto.
+       * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
+       (UNSPEC_MASKSTORE): Ditto.
+       * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
+       Merge from <sse>_movmsk<ssemodesuffix> and
+       avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
+       (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
+       iterator.
+       (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
+       (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
+       (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
+
+2011-04-18  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
+
+       * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
+       (want_inline_function_called_once_p): Break out the logic from
+       ipa_inline.
+       (edge_badness): Ensure that profile is not misupdated.
+       (lookup_recursive_calls): Prioritize by call frequencies.
+       (inline_small_functions): Move program size estimates here;
+       actually process whole queue even when unit growth has been
+       met. (to properly compute inline_failed reasons and for the
+       case unit size decrease.) Revisit comments on recursive inlining.
+       (ipa_inline): Remove unit summary code; first inline hot calls
+       of functions called once, cold calls next.
+       (order, nnodes): Remove unused variables.
+       * Makefile.in (ipa-inline.o): No longer depent on ggc files.
+       (GTFILES): Remove ipa-inline.c
+       * sel-sched.c (fill_insns): Silence uninitialized var warning.
+
+2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
+
+2011-04-18  Jie Zhang  <jie@codesourcery.com>
+           Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (neon_builtin_type_bits): Remove.
+       (typedef enum neon_builtin_mode): New.
+       (T_MAX): Don't define.
+       (typedef enum neon_builtin_datum): Remove bits, codes[],
+       num_vars and base_fcode.  Add mode, code and fcode.
+       (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
+       VAR10): Change accordingly.
+       (neon_builtin_data[]): Change accordingly
+       (arm_init_neon_builtins): Change accordingly.
+       (neon_builtin_compare): Remove.
+       (locate_neon_builtin_icode): Remove.
+       (arm_expand_neon_builtin): Change accordingly.
+
+       * arm.h (enum arm_builtins): Move to ...
+       * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
+
+       * arm.c (arm_builtin_decl): Declare.
+       (TARGET_BUILTIN_DECL): Define.
+       (enum arm_builtins): Correct ARM_BUILTIN_MAX.
+       (arm_builtin_decls[]): New.
+       (arm_init_neon_builtins): Store builtin declarations in
+       arm_builtin_decls[].
+       (arm_init_tls_builtins): Likewise.
+       (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
+       (arm_builtin_decl): New.
+
+2011-04-18  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (upper_bound_in_type): Build properly canonicalized
+       INTEGER_CSTs.
+       (lower_bound_in_type): Likewise.
+
+2011-04-18  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.h (gimple_call_addr_fndecl): New function.
+       (gimple_call_fndecl): Use it.
+       * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
+       for direct calls.
+       * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
+       * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
+
+2011-04-18  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/48650
+       * tree.c (build_string): STRING_CST is now derived from tree_typed.
+
+2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR lto/48492
+       * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
+       DECL_IN_CONSTANT_POOL without RTL.
+
+2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
+           Ira Rosen  <ira.rosen@linaro.org>
+
+       PR target/48252
+       * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
+       to match neon_vzip/vuzp/vtrn_internal.
+       * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
+       outputs explicitly dependent on both inputs.
+       (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
+
+2011-04-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/48616
+       * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
+       whether the shift is by scalar or vector based on whether all SLP
+       scalar stmts have the same rhs.
+
+2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
+       memory operands.
+
+2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
+       registers.
+
+2011-04-17  Jan Hubicka  <jh@suse.cz>
+
+       * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
+       * cgrpahunit.c (cgraph_finalize_function): Do not set
+       finalized_by_frontend.
+       * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
+       finalized_by_frontend.
+
+2011-04-17  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_clone_node): Do not handle vtable_method
+       * cgraph.h (struct cgraph_local_info): Drop vtable_method.
+       * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
+       * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
+       method.
+       * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
+       gimple-fold.c
+       * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
+
+2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR lto/48538
+       * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
+       is non-null before accessing it.
+       (input_cgraph): Remove trailing spaces.
+
+2011-04-17  Revital Eres  <revital.eres@linaro.org>
+
+       * params.def (sms-min-sc): New param flag.
+       * modulo-sched.c (sms_schedule): Use it.
+       * doc/invoke.texi (sms-min-sc): Document it.
+
+2011-04-17  Jan Hubicka  <jh@suse.cz>
+
+       * lto-symtab.c (lto_cgraph_replace_node): When call statement is
+       present, also set gimple_call_set_cannot_inline.
+       * ipa-inline.c: Update toplevel comment.
+       (MAX_TIME): Remove.
+       (cgraph_clone_inlined_nodes): Fix linebreaks.
+       (cgraph_check_inline_limits): Restructure to ...
+       (caller_growth_limits): ... this one; be more tolerant
+       on growth in nested inline chains; add explanatory comment;
+       fix stack accounting thinko introduced by previous patch.
+       (cgraph_default_inline_p): Remove.
+       (report_inline_failed_reason): New function.
+       (can_inline_edge_p): New function.
+       (can_early_inline_edge_p): New function.
+       (leaf_node_p): Move upwards in file.
+       (want_early_inline_function_p): New function.
+       (want_inline_small_function_p): New function.
+       (want_inline_self_recursive_call_p): New function.
+       (cgraph_edge_badness): Rename to ...
+       (edge_badness) ... this one; fix linebreaks.
+       (update_edge_key): Update call of edge_baddness; add
+       detailed dump about queue updates.
+       (update_caller_keys): Use can_inline_edge_p and
+       want_inline_small_function_p.
+       (cgraph_decide_recursive_inlining): Rename to...
+       (recursive_inlining): Use can_inline_edge_p and
+       want_inline_self_recursive_call_p; simplify and remove no longer
+       valid FIXME.
+       (cgraph_set_inline_failed): Remove.
+       (add_new_edges_to_heap): Use can_inline_edge_p and
+       want_inline_small_function_p.
+       (cgraph_decide_inlining_of_small_functions): Rename to ...
+       (inline_small_functions): ... this one; cleanup; use
+       can/want predicates; cleanup debug ouput; work edges till fibheap
+       is exhausted and do not stop once unit growth is reached; remove
+       later loop processing remaining edges.
+       (cgraph_flatten): Rename to ...
+       (flatten_function): ... this one; use can_inline_edge_p
+       and can_early_inline_edge_p predicates.
+       (cgraph_decide_inlining): Rename to ...
+       (ipa_inline): ... this one; remove unreachable nodes before
+       inlining functions called once; simplify the pass.
+       (cgraph_perform_always_inlining): Rename to ...
+       (inline_always_inline_functions): ... this one; use
+       DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
+       (cgraph_decide_inlining_incrementally): Rename to ...
+       (early_inline_small_functions): ... this one; simplify
+       using new predicates; cleanup; make dumps prettier.
+       (cgraph_early_inlining): Rename to ...
+       (early_inliner): newer inline regular functions into always-inlines;
+       fix updating of call stmt summaries.
+       (pass_early_inline): Update for new names.
+       (inline_transform): Fix formating.
+       (gate_cgraph_decide_inlining): Rename to ...
+       (pass_ipa_inline): ... this one.
+       * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
+       * ipa-inline-analysis.c (dump_inline_summary): Update.
+       (compute_inline_parameters): Do not compute disregard_inline_limits;
+       look for mismatching arguments.
+       (estimate_growth): Fix handlig of non-trivial self recursion.
+       (inline_read_summary): Do not read info->disregard_inline_limits.
+       (inline_write_summary): Do not write info->disregard_inline_limits.
+       * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
+       and move all checks into can_inline_edge_p predicate; re-enable code
+       comparing optimization levels.
+       (expand_call_inline): Do not test inline_forbidden_into_p.
+       * Makefile.in (ipa-inline.o): Update arguments.
+
+2011-04-17  Revital Eres  <revital.eres@linaro.org>
+
+       * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
+
+2011-04-17  Revital Eres  <revital.eres@linaro.org>
+
+       * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
+
+2011-04-17  Michael Matz  <matz@suse.de>
+
+       PR tree-optimization/48622
+       PR lto/48645
+       * ipa-inline-analysis.c (inline_read_summary): Read size/time
+       in same order as they're written.
+
+2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * config/pa/predicates.md: Reorganize and simplify predicates.
+       Eliminate duplicate code checks.
+       (arith_operand): Rename to arith14_operand
+       (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
+       * config/pa/pa.md: Use renamed operands.
+       * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
+       (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
+       arith11_operand, adddi3_operand, indexed_memory_operand,
+       symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
+       arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
+       borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
+       move_dest_operand, move_src_operand, prefetch_cc_operand,
+       prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
+       uint32_operand, reg_before_reload_operand, reg_or_0_operand,
+       reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
+       div_operand, int5_operand, movb_comparison_operator,
+       ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
+       arith_double_operand, ireg_operand, lhs_lshift_operand,
+       pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
+       integer_store_memory_operand): Likewise.
+       * config/pa/pa.c (adddi3_operand): Move to predicates.md.
+       (integer_store_memory_operand, read_only_operand,
+       function_label_operand, borx_reg_operand,
+       non_hard_reg_operand): Likewise.
+       (eq_neq_comparison_operator): Delete unused operator.
+       (legitimize_pic_address): Use VOIDmode for mode argument in calls to
+       function_label_operand.
+       (emit_move_sequence): Likewise.
+
+2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (sseunpackmode): New mode attribute.
+       (ssepackmode): Ditto.
+       (vec_pack_trunc_<mode>): Macroize expander from
+       vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
+       (vec_unpacks_lo_<mode>): Macroize expander from
+       vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
+       (vec_unpacks_hi_<mode>): Macroize expander from
+       vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
+       (vec_unpacku_lo_<mode>): Macroize expander from
+       vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
+       (vec_unpacku_hi_<mode>): Macroize expander from
+       vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
+       * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
+       ix86_expand_sse4_unpack.
+       * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
+
+2011-04-16  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphbuild.c: Include ipa-inline.h.
+       (reset_inline_failed): Use initialize_inline_failed.
+       * cgraph.c: Include ipa-inline.h.
+       (cgraph_create_node_1): Do not initialize estimated_growth.
+       (initialize_inline_failed): More to ipa-inline-analysis.c
+       (dump_cgraph_node): Do not dump inline flags.
+       * cgraph.h (cgraph_local_info): Remove inlineable, versionable
+       and disregard_inline_limits flags.
+       (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
+       time, size, estimated_growth.
+       * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
+       Update.
+       * cgraphunit.c (cgraph_decide_is_function_needed): Use
+       DECL_DISREGARD_INLINE_LIMITS.
+       (cgraph_analyze_function): Do not initialize
+       node->local.disregard_inline_limits.
+       * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
+       inlinable, versionable and disregard_inline_limits.
+       * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
+       cgraph_check_inline_limits, cgraph_default_inline_p,
+       cgraph_edge_badness, update_caller_keys, update_callee_keys,
+       add_new_edges_to_heap): Update.
+       (cgraph_decide_inlining_of_small_function): Update; set
+       CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
+       (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
+       cgraph_decide_inlining_incrementally): Update.
+       * ipa-inline.h (inline_summary): Add inlinable, versionable,
+       disregard_inline_limits, estimated_stack_size, stack_frame_offset,
+       time, size and estimated_growth parameters.
+       (estimate_edge_growth): Update.
+       (initialize_inline_failed): Declare.
+       * ipa-split.c: Include ipa-inline.h
+       (execute_split_functions): Update.
+       * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
+       (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
+       (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
+       * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
+       estimated_growth to INT_MIN.
+       (inline_node_duplication_hook): Likewise.
+       (dump_inline_summary): Dump new fields.
+       (compute_inline_parameters): Update.
+       (estimate_edge_time, estimate_time_after_inlining,
+       estimate_size_after_inlining, estimate_growth, inline_read_summary,
+       inline_write_summary):
+       (initialize_inline_failed): Move here from cgraph.c.
+       * tree-sra.c: Include ipa-inline.h.
+       (ipa_sra_preliminary_function_checks): Update.
+       * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
+       ipa-inline.h.
+
+2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (V16): New mode iterator.
+       (VI1, VI8): Ditto.
+       (AVXMODEQI, AVXMODEDI): Remove.
+       (sse2, sse3): New mode attribute.
+       (mov<mode>): Use V16 mode iterator.
+       (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
+       (push<mode>1): Use V16 mode iterator.
+       (movmisalign<mode>): Ditto.
+       (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
+       <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
+       (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
+       *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
+       (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
+       avx_movdqu<avxmodesuffix>.
+       (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
+       *avx_movdqu<avxmodesuffix>.
+       (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
+       avx_lddqu<avxmodesuffix>.
+       (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
+       (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
+       avx_movnt<AVXMODEDI:mode>.
+       * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
+       renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
+
+2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR target/48629
+       * haifa-sched.c (prune_ready_list, schedule_block): Use
+       sched_pressure_p rather than flag_sched_pressure.
+
+2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
+
+       * config/rs6000/rs6000.c (call_ABI_of_interest): Call
+       cgraph_get_node instead of cgraph_get_create_node.
+
+2011-04-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * cfgexpand.c (expand_debug_expr): Use
+       simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
+
+2011-04-15  Michael Matz  <matz@suse.de>
+
+       * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
+       * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
+       * function.c (gimplify_parameters): Ditto.
+       * gimplify.c (gimplify_vla_decl): Ditto.
+
+       * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
+       (gimple_call_set_alloca_for_var): New inline function.
+       (gimple_call_alloca_for_var_p): Ditto.
+       * gimple.c (gimple_build_call_from_tree): Remember
+       CALL_ALLOCA_FOR_VAR_P state.
+       * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
+
+       * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
+       calls if they were for VLA objects.
+
+2011-04-15  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
+       of ADR_EXPRs.
+
+2011-04-15  Martin Jambor  <mjambor@suse.cz>
+
+       PR middle-end/48601
+       * tree-emutls.c (lower_emutls_function_body): Call
+       cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
+       result is non-NULL.
+
+2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * c-decl.c (detect_field_duplicates): Call
+       objc_detect_field_duplicates instead of objc_get_interface_ivars.
+
+2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * gimple.h (gimple_asm_clobbers_memory_p): Declare.
+       * gimple.c (gimple_asm_clobbers_memory_p): Define.
+       * ipa-pure-const.c (check_stmt): Call it.
+       * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
+
+2011-04-15  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/48290
+       * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
+       Properly decide inhibiting propagation based on the valueized
+       operand.  Do loop-closed SSA form preserving here ...
+       (init_copy_prop): ... not here.
+
+2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/48612
+       * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
+       (*ieee_smax<mode>3): Likewise.
+
+2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
+       Replace match_operand with match_dup for the third operand in
+       these expanders.
+
+2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * combine.c (subst, combine_simlify_rtx): Add new argument, use it
+       to track processing of conditionals.  Update all callers.
+       (try_combine, simplify_if_then_else): Update.
+
+2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
+       -fsched-pressure.
+
+2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
+       instead of match_operand for operand 3.
+
+2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * recog.h (insn_operand_data): Add an "allows_mem" field.
+       * genoutput.c (output_operand_data): Initialize it.
+       * optabs.c (maybe_legitimize_operand_same_code): New function.
+       (maybe_legitimize_operand): Use it when matching the original
+       op->value.
+
+2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimplify.c: Fix issues in comments throughout.
+       (voidify_wrapper_expr): Fix long line.
+       (build_stack_save_restore): Likewise.
+       (gimplify_loop_expr): Likewise.
+       (gimplify_compound_lval): Likewise.
+       (gimplify_init_ctor_eval): Likewise.
+       (gimplify_modify_expr_rhs): Likewise.
+       (omp_notice_threadprivate_variable): Likewise.
+
+2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cfgexpand.c (expand_call_stmt): Convert the function type to the
+       original one if this is not a builtin function.
+
+2011-04-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/48605
+       * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
+       offset it as needed based on top 2 bits in operands[3], change
+       MEM mode to SFmode and mask those 2 bits away from operands[3].
+
+2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * c-parser.c (c_parser_objc_protocol_definition): Updated for
+       change from objc_declare_protocols() to objc_declare_protocol().
+
+2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (sse4_1): New mode attribute.
+       (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
+       avx_blend<ssemodesuffix><avxmodesuffix> and
+       sse4_1_blend<ssemodesuffix> using VF mode iterator.
+       (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
+       avx_blendv<ssemodesuffix><avxmodesuffix> and
+       sse4_1_blendv<ssemodesuffix> using VF mode iterator.
+       (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
+       avx_dp<ssemodesuffix><avxmodesuffix> and
+       sse4_1_dp<ssemodesuffix> using VF mode iterator.
+       (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
+       (sse4_1_packusdw): Merge with *avx_packusdw.
+       (sse4_1_pblendvb): Merge with *avx_pblendvb.
+       (sse4_1_pblendw): Merge with *avx_pblendw.
+       (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
+       (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
+       avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
+       VF mode iterator.
+       (sse4_1_round<ssescalarmodesuffix>): Merge with
+       *avx_round<ssescalarmodesuffix>.
+       (aesenc): Merge with *avx_aesenc.
+       (aesenclast): Merge with *avx_aesenclast.
+       (aesdec): Merge with *avx_aesdec.
+       (aesdeclast): Merge with *avx_aesdeclast.
+       (pclmulqdq): Merge with *pclmulqdq.
+       * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
+       New predicate.
+       (nonimm_not_xmm0_operand_maybe_avx): Ditto.
+
+2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR middle-end/48608
+       * cfgexpand.c (get_decl_align_unit): Renamed to ...
+       (align_local_variable): This.  Update DECL_ALIGN.
+       (add_stack_var): Updated.
+       (expand_one_stack_var): Likewise.
+
+2011-04-14  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
+       Remove.
+       (dse_initialize_block_local_data, dse_leave_block,
+       record_voperand_set, get_stmt_uid): Likewise.
+       (dse_possible_dead_store_p): Allow any kind of killing stmt.
+       (dse_optimize_stmt): Remove voperand set handling code.
+       Simplify and improve to handle any kind of killing stmt.
+       (dse_record_phi): Remove.
+       (dse_enter_block): Simplify.
+       (tree_ssa_dse): Likewise.
+       * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
+
+2011-04-14  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
+       * cgraph.h (struct inline_summary): Move to ipa-inline.h
+       (cgraph_local_info): Remove inline_summary.
+       * ipa-cp.c: Include ipa-inline.h.
+       (ipcp_cloning_candidate_p, ipcp_estimate_growth,
+       ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
+       accesor.
+       * lto-cgraph.c (lto_output_node): Do not stream inline summary.
+       (input_overwrite_node): Do not set inline summary.
+       (input_node): Do not stream inline summary.
+       * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
+       (cgraph_decide_inlining_incrementally): Do not try to estimate overall
+       growth; we do not have inline parameters computed for that anyway.
+       (cgraph_early_inlining): After inlining compute call_stmt_sizes.
+       * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
+       (inline_summary_t): New type and VECtor.
+       (debug_inline_summary, dump_inline_summaries): Declare.
+       (inline_summary): Use VOCtor.
+       (estimate_edge_growth): Kill hack computing call stmt size directly.
+       * lto-section-in.c (lto_section_name): Add inline section.
+       * ipa-inline-analysis.c: Include lto-streamer.h
+       (node_removal_hook_holder, node_duplication_hook_holder): New holders
+       (inline_node_removal_hook, inline_node_duplication_hook): New functions.
+       (inline_summary_vec): Define.
+       (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
+       dump_inline_summaries): New functions.
+       (estimate_function_body_sizes): Properly compute size/time of outgoing
+       calls.
+       (compute_inline_parameters): Alloc inline_summary; do not compute
+       size/time of incomming calls.
+       (estimate_edge_time): Avoid missing time summary hack.
+       (inline_read_summary): Read inline summary info.
+       (inline_write_summary): Write inline summary info.
+       (inline_free_summary): Free all hooks and inline summary vector.
+       * lto-streamer.h: Add LTO_section_inline_summary section.
+       * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
+       * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
+
+2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * tree-vectorizer.h (vect_strided_store_supported): Add a
+       HOST_WIDE_INT argument.
+       (vect_strided_load_supported): Likewise.
+       (vect_permute_store_chain): Return void.
+       (vect_transform_strided_load): Likewise.
+       (vect_permute_load_chain): Delete.
+       * tree-vect-data-refs.c (vect_strided_store_supported): Take a
+       count argument.  Check that the count is a power of two.
+       (vect_strided_load_supported): Likewise.
+       (vect_permute_store_chain): Return void.  Update after above changes.
+       Assert that the access is supported.
+       (vect_permute_load_chain): Likewise.
+       (vect_transform_strided_load): Return void.
+       * tree-vect-stmts.c (vectorizable_store): Update calls after
+       above interface changes.
+       (vectorizable_load): Likewise.
+       (vect_analyze_stmt): Don't check for strided powers of two here.
+
+2011-04-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/48590
+       * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
+       BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
+       (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
+       BUILT_IN_STACK_SAVE.
+       * tree-ssa-dce.c (propagate_necessity): Handle
+       BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
+
+2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * c-parser.c (c_parser_objc_class_declaration): Updated call to
+       objc_declare_class.
+
+2011-04-14  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (get_object_alignment_1): Declare.
+       * builtins.c (get_object_alignment_1): Split out worker from ...
+       (get_object_alignment): ... here.
+       * fold-const.c (get_pointer_modulus_and_residue): Use
+       get_object_alignment_1.
+
+2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
+       type parameter.
+       * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
+       parameter.  Generalise code to handle arrays as well as vectors.
+       (vect_setup_realignment): Update accordingly.
+       * tree-vect-stmts.c (vectorizable_store): Likewise.
+       (vectorizable_load): Likewise.
+
+2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
+       within the per-copy loop.
+
+2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * tree-vect-stmts.c (vectorizable_load): Print the number of copies
+       in the dump file.
+
+2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * doc/options.texi (Negative): Explicitly mention that the
+       Negative chain must be circular.
+
 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
 
        * function.h (block_chainon): Declare.
        * function.c (block_chainon): Define.
 
 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
-            Eric Weddington  <eric.weddington@atmel.com>
-            Georg-Johann Lay <avr@gjlay.de> 
-       
-       * config/avr/avr.c: ("insn-codes.h", "optabs.h", "langhooks.h"):
+           Eric Weddington  <eric.weddington@atmel.com>
+           Georg-Johann Lay <avr@gjlay.de>
+
+       * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
        New Includes
        (avr_init_builtins, avr_expand_builtin,
        avr_expand_delay_cycles, avr_expand_unop_builtin,
        (struct avr_builtin_description): New struct
        (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
        (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
-       
+
        * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
-       UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR, 
+       UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
        UNSPECV_DELAY_CYCLES): new enumeration values
        (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
        ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
        ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
        "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
        "fmulsu"): New insns
-       
+
        * config/avr/avr-c.c: fix line endings
        (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
        __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
        __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
        __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
        __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
-       
+
        * doc/extend.texi (AVR Built-in Functions): New node
        (Target Builtins): Add documentation of AVR
        built-in functions.
        * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
        TS_TYPED instead of TS_COMMON.
 
-2011-04-12  Uros Bizjak  <ubizjak@gmail.com>
+2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
        (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
        (inline_summary): Move to ipa-inline.h
        (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
        ipa-inline-analysis.c.
-       (cgraph_estimate_time_after_inlining): Rename to estiamte_time_after_inlining;
-       move to ipa-inline-analysis.c
+       (cgraph_estimate_time_after_inlining): Rename to
+       estiamte_time_after_inlining; move to ipa-inline-analysis.c
        (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
        to estimate_edge_growth.
        (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
        (cgraph_decide_recursive_inlining): Likewise.
        (cgraph_decide_inlining_of_small_functions): Likewise.
        (cgraph_decide_inlining_incrementally): Likewise.
-       (cgraph_estimate_growth): Rename to estimate_growth; move to ipa-inline-analysis.c.
+       (cgraph_estimate_growth): Rename to estimate_growth; move to
+       ipa-inline-analysis.c.
        (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
        (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
        (compute_inline_parameters): Likewise.
 
 2011-04-08  Xinliang David Li  <davidxl@google.com>
 
+       * ipa-cp.c (ipcp_update_profiling): Correct
+        negative scale factor due to insane profile data.
+
+2011-04-08  Xinliang David Li  <davidxl@google.com>
+
        * final.c (dump_basic_block_info): New function.
        (final): Dump basic block.
        (final_scan_insn): Remove old dump.
 
        PR target/48366
        * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
-       move from floating point to shift amount register .
+       move from floating point to shift amount register.
        (emit_move_sequence): Remove secondary reload support for floating
        point to shift amount amount register copies.
        (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
 
        2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
 
-       * ira-build.c: (ira_create_object): Remove initialization of
+       * ira-build.c (ira_create_object): Remove initialization of
        OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
        (ira_create_allocno): Remove initialization of
        ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
        ira_object_conflict_iter_cond.
        (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
 
-       * ira-live.c: (process_single_reg_class_operands): Call
+       * ira-live.c (process_single_reg_class_operands): Call
        ira_init_register_move_cost_if_necessary.  Use
        ira_register_move_cost instead of ira_get_register_move_cost.
 
 
 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
 
-       * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
+       * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
        terms of target_flags_explicit. Adjust copyright year.
 
        * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
 
 2011-01-07  Jan Hubicka  <jh@suse.cz>
 
-       * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
+       * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
        and no longer claim that gold is required for linker plugin.
        * configure: Regenerate.
        * gcc.c (PLUGIN_COND): New macro.