+2011-04-28 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take nonconstant_names
+ array.
+ (estimate_function_body_sizes): Build nonconstant_names array; handle
+ BUILT_IN_CONSTANT_P.
+
+2011-04-28 Richard Guenther <rguenther@suse.de>
+
+ PR bootstrap/48804
+ Revert
+ 2011-04-28 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (solve_constraints): Build succ graph
+ as late as possible.
+
+2011-04-28 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (dump_constraint): Don't end the line.
+ (debug_constraint): Do it here.
+ (dump_constraints): And here.
+ (rewrite_constraints): And here.
+ (dump_constraint_edge): Remove.
+ (dump_constraint_graph): Rewrite to produce DOT output.
+ (solve_constraints): Build succ graph as late as possible.
+ Dump constraint graphs before and after solving.
+
+2011-04-28 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
+ New function split out from ...
+ (find_func_aliases): ... here. Call it.
+ (find_func_aliases_for_call): Likewise.
+
+2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * internal-fn.h (internal_fn_name_array): Declare.
+ (internal_fn_flags_array): Likewise.
+
+2011-04-27 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
+ ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
+ Move from sse.md.
+ (ssemodefsuffix): Remove.
+ (ssevecmodesuffix): New mode attribute.
+ (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
+ *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
+ *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
+ *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
+ *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
+ *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
+ *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
+ ssemodesuffix mode attribute.
+ (float splitters): Use ssevecmodesuffix mode attribute.
+ * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
+ (sseinsmode): Rename from avxvecmode.
+ (avxsizesuffix): Rename from avxmodesuffix.
+ (sseintvecmode): Rename from avxpermvecmode.
+ (ssedoublevecmode): Rename from ssedoublesizemode.
+ (ssehalfvecmode): Rename from avxhalfvecmode.
+ (ssescalarmode): Rename from avxscalarmode.
+ (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
+ templates for ssemodesuffix mode attribute.
+ (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
+ mode attribute.
+
+ Adjust RTX patterns globally for renamed mode attributes.
+
+2011-04-27 Jan Hubcika <jh@suse.cz>
+
+ * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
+ * ipa-inline-analysis.c: Include alloc-pool.h.
+ (edge_predicate_pool): New.
+ (trye_predicate_p): New function
+ (false_predicate_p): New function.
+ (add_clause): Sanity check that false clauses are "optimized";
+ never add clauses to predicate that is already known to be false.
+ (and_predicate): Use flase_predicate_p.
+ (evaulate_predicate): Rename to ...
+ (evaluate_predicate): ... this one; update all callers; assert
+ that false is not listed among possible truths.
+ (dump_predicate): Use true_predicate_p.
+ (account_size_time): Use false_predicate_p.
+ (evaulate_conditions_for_edge): Rename to ...
+ (evaluate_conditions_for_edge) ... this one.
+ (edge_set_predicate): New function.
+ (inline_edge_duplication_hook): Duplicate edge predicates.
+ (inline_edge_removal_hook): Free edge predicates.
+ (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
+ (dump_inline_summary): Update.
+ (estimate_function_body_sizes): Set edge predicates.
+ (estimate_calls_size_and_time): Handle predicates.
+ (estimate_callee_size_and_time): Update.
+ (remap_predicate): Add toplev_predicate; update comment.
+ (remap_edge_predicates): New function.
+ (inline_merge_summary): Compute toplev predicate; update.
+ (read_predicate): New function.
+ (read_inline_edge_summary): Use it.
+ (inline_read_section): Likewise.
+ (write_predicate): New function.
+ (write_inline_edge_summary): Use it.
+ (inline_write_summary): Likewise.
+ (inline_free_summary): Free alloc pool and edge summary vec.
+
+2011-04-27 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (changed_count): Remove.
+ (changed): Use a bitmap.
+ (unify_nodes): Adjust.
+ (do_sd_constraint): Likewise.
+ (do_ds_constraint): Likewise.
+ (do_complex_constraint): Likewise.
+ (solve_graph): Likewise.
+
+2011-04-27 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
+
+2011-04-27 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
+ (avx_vperm2f128_*_operand): Ditto.
+ * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
+ Use avx_vpermilp_parallel in insn condition.
+ (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
+ Use avx_vperm2f128_parallel in insn condition.
+
+2011-04-27 Richard Guenther <rguenther@suse.de>
+
+ * Makefile.in (tree-ssa-structalias.o): Remove
+ gt-tree-ssa-structalias.h dependency.
+ (GTFILES): Remove tree-ssa-structalias.c.
+ * tree.c (allocate_decl_uid): New function.
+ (make_node_stat): Use it.
+ (copy_node_stat): Likewise.
+ * tree.h (allocate_decl_uid): Declare.
+ * tree-ssa-alias.h (delete_alias_heapvars): Remove.
+ * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
+ * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
+ * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
+ * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
+ (struct heapvar_map): Likewise.
+ (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
+ heapvar_insert): Likewise.
+ (make_heapvar_for): Rename to ...
+ (make_heapvar): ... this. Simplify.
+ (fake_var_decl_obstack): New global var.
+ (build_fake_var_decl): New function.
+ (make_constraint_from_heapvar): Adjust.
+ (handle_lhs_call): Likewise.
+ (create_function_info_for): Likewise.
+ (intra_create_variable_infos): Likewise.
+ (init_alias_vars): Allocate fake_var_decl_obstack.
+ (init_alias_heapvars, delete_alias_heapvars): Remove.
+ (compute_points_to_sets): Do not call init_alias_heapvars.
+ (ipa_pta_execute): Likewise.
+ (delete_points_to_sets): Free fake_var_decl_obstack.
+
+2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/divmovti4.c (union qword_UTItype): New data type.
+ (si_from_UTItype, si_to_UTItype): New functions.
+ (__udivmodti4): Use them to implement type-punning.
+ * config/spu/multi3.c (union qword_TItype): New data type.
+ (si_from_TItype, si_to_TItype): New functions.
+ (__multi3): Use them to implement type-punning.
+
+2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
+
+2011-04-27 Jan Hubicka <jh@suse.cz>
+
+ * ipa-prop.c (function_insertion_hook_holder): New holder.
+ (ipa_add_new_function): New function.
+ (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
+ Register/deregister holder.
+
+2011-04-27 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/48772
+ * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
+
+2011-04-27 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
+ TARGET_MEM_REF handling.
+
+2011-04-27 Nick Clifton <nickc@redhat.com>
+
+ * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
+ ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
+ (REG_CLASS_NAMES): Likewise.
+ (REG_CLASS_CONTENTS): Likewise.
+ (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
+ (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
+ (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
+ (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
+ (EVEN_REGS): New macro. Alias for QUAD_REGS.
+ * config/frv/frv.c (frv_secondary_reload_class): Remove use of
+ duplicate register classes.
+ (frv_class_likely_spilled_p): Likewise.
+ (frv_register_move_cost): Likewise.
+
+ * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
+ end of the regno_reg_class array.
+
+2011-04-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/48742
+ * c-typeck.c (build_binary_op): Don't wrap arguments if
+ int_operands is true.
+
+2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/48767
+ * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
+ targetm.calls.must_pass_in_stack for void type.
+
+2011-04-26 Jan Hubicka <jh@suse.cz>
+
+ * cgraphbuild.c (build_cgraph_edges): Update call
+ of cgraph_create_edge and cgraph_create_indirect_edge.
+ * cgraph.c (cgraph_create_edge_including_clones,
+ cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
+ cgraph_update_edges_for_call_stmt_node): Do not take nest
+ argument; do not initialize call_stmt_size/time.
+ (dump_cgraph_node): Do not dump nest.
+ (cgraph_clone_edge): Do not take loop_nest argument;
+ do not propagate it; do not clone call_stmt_size/time.
+ (cgraph_clone_node): Likewise.
+ (cgraph_create_virtual_clone): Update.
+ * cgraph.h (struct cgraph_edge): Remove
+ call_stmt_size/call_stmt_time/loop_nest.
+ (cgraph_create_edge, cgraph_create_indirect_edge,
+ cgraph_create_edge_including_clones, cgraph_clone_node): Update
+ prototype.
+ * tree-emutls.c (gen_emutls_addr): Update.
+ * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
+ loop_nest; handle indirect calls, too.
+ (clone_inlined_nodes): Do not care about updating inline summaries.
+ * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
+ * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
+ stream call_stmt_size/call_stmt_time/loop_nest.
+ * ipa-inline.c (edge_badness): Update.
+ (ipa_inline): dump summaries after inlining.
+ * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
+ New.
+ (inline_edge_summary): New function.
+ * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
+ (inline_edge_removal_hook): Handle edge summaries.
+ (inline_edge_duplication_hook): New hook.
+ (inline_summary_alloc): Alloc hooks.
+ (initialize_growth_caches): Do not register removal hooks.
+ (free_growth_caches); Do not free removal hook.
+ (dump_inline_edge_summary): New function.
+ (dump_inline_summary): Use it.
+ (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
+ (inline_update_callee_summaries): New function.
+ (inline_merge_summary): Use it.
+ (do_estimate_edge_time, do_estimate_edge_growth): Update.
+ (read_inline_edge_summary): New function.
+ (inline_read_section): Use it.
+ (write_inline_edge_summary): New function.
+ (inline_write_summary): Use it.
+ (inline_free_summary): Free edge new holders.
+ * tree-inline.c (copy_bb): Update.
+
+2011-04-26 Jason Merrill <jason@redhat.com>
+
+ * tree-eh.c (lower_try_finally_switch): Create the label along with
+ the CASE_LABEL_EXPR.
+
+2011-04-26 David S. Miller <davem@davemloft.net>
+ Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
+ * configure: Regenerate.
+
+2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/48258
+ * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
+ reduction.
+ (VEC_reduc): New code iterator and splitters for vector reduction.
+ (VEC_reduc_name): Ditto.
+ (VEC_reduc_rtx): Ditto.
+ (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
+ (reduc_<VEC_reduc_name>_v4sf): Ditto.
+
+ * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
+ support for extracting SF on VSX.
+
+ * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
+ generating xscvspdp.
+ (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
+ (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
+ double add, minimum, maximum vector reduction.
+ (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
+ (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
+ optimize double vector reduction.
+ (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
+
+2011-04-26 Joseph Myers <joseph@codesourcery.com>
+
+ * config/fr30/fr30.h (inhibit_libc): Don't define.
+ * config/m32r/m32r-protos.h: Correct comment.
+ * config/v850/v850.h (GHS_default_section_names,
+ GHS_current_section_names): Use tree, not union tree_node *.
+
+2011-04-26 Xinliang David Li <davidxl@google.com>
+
+ * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
+ * c-family/c-opts.c (c_common_handle_option): Set
+ warn_maybe_uninitialized.
+ * opts.c (common_handle_option): Ditto.
+ * common.opt: New option.
+ * tree-ssa.c (warn_uninit): Add one more parameter.
+ (warn_uninitialized_var): Pass warning code.
+ * tree-flow.h: Interface change.
+
+
+2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
+ (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
+ (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
+
+2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
+ * config/mips/mips.opt (mmips-tfile): Remove.
+
+ * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
+ mips-tdump reference to ...
+ (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
+ * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
+ reference by Tru64 UNIX.
+
+2011-04-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/48768
+ * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
+ is error_mark_node, set value to NULL.
+
+ PR tree-optimization/48734
+ * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
+ if return value from maybe_fold_*_comparsions isn't something
+ the code is prepared to handle.
+
+2011-04-26 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/predicates.md (ext_QIreg_operand): Remove extra
+ mode check.
+ (ext_QIreg_nomode_operands): Remove.
+ * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
+ (*andsi_1): Ditto.
+ (*andhi_1): Ditto.
+
+2011-04-26 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
+
+2011-04-26 Richard Guenther <rguenther@suse.de>
+
+ * c-typeck.c (build_unary_op): Do not expand array-refs via
+ pointer arithmetic. Only adjust qualifiers for function types.
+
+2011-04-26 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/48694
+ * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
+ * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
+ compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
+ with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
+
+2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
+ * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
+ * doc/extend.texi: Document __underlying_type.
+
+2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/titan.md (automata_option "progress"): Remove.
+
+2011-04-25 Jeff Law <law@redhat.com>
+
+ * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
+
+2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * system.h (ENUM_BITFIELD): Remove.
+
+2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+
+ * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
+ for STORE_FLAG_VALUE==-1 case.
+
+2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
+
+ PR target/43804
+ * config/m68k/constraints.md (T): Allow PIC operands that satisfy
+ LEGITIMATE_PIC_OPERAND_P.
+
+2011-04-24 Jan Hubicka <jh@suse.cz>
+
+ * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
+ WPA hack.
+ * ipa-prop.h (ipa_get_param, ipa_is_param_used,
+ ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
+ ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
+ * ipa-inline-analysis.c (add_clause): Fix clause ordering.
+ (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
+ Sanity check predicate length.
+ (remap_predicate): Likewise; sanity check jump functions.
+ (inline_read_section, inline_write_summary): Sanity check
+ predicate length.
+
+2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR other/48748
+ * doc/extend.texi (Type Traits): Document __is_standard_layout,
+ __is_literal_type, and __is_trivial; update throughout about
+ possibly cv-qualified void types.
+
+2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
+ testsuite and make it version agnostic.
+
+2011-04-22 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
+
+2011-04-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/48685
+ * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
+ to VOID_TYPE even around MODIFY_EXPR.
+
+2011-04-22 Mike Stump <mikestump@comcast.net>
+
+ * gensupport.c (read_md_rtx): Fix typo in comment.
+ * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
+ comment.
+
+2011-04-22 Jan Hubicka <jh@suse.cz>
+
+ * gengtype.c (open_base_files): Add ipa-inline.h include.
+ * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
+ ipa-prop.c; update all uses.
+ * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
+ * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
+ merge summary of inlined function into former caller.
+ * ipa-inline.c (max_benefit): Remove.
+ (edge_badness): Compensate for removal of benefits.
+ (update_caller_keys): Use
+ reset_node_growth_cache/reset_edge_growth_cache.
+ (update_callee_keys): Likewise.
+ (update_all_callee_keys): Likewise.
+ (inline_small_functions): Do not collect max_benefit; do not reset
+ estimated_growth; call free_growth_caches and initialize_growth_caches.
+ * ipa-inline.h (struct condition, type clause_t, struct predicate,
+ struct size_time_entry): New structures.
+ (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
+ (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
+ and estimated_growth.
+ (edge_growth_cache_entry): New structure.
+ (node_growth_cache, edge_growth_cache): New global vars.
+ (estimate_growth): Turn into inline.
+ (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
+ initialize_growth_caches, free_growth_caches): Declare.
+ (estimate_edge_growth): Rewrite.
+ (estimate_edge_time): Implement as inline cache lookup.
+ (reset_node_growth_cache, reset_edge_growth_cache): New inline
+ functions.
+ (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
+ (NUM_CONDITIONS): New constant.
+ (predicate_conditions): New enum.
+ (IS_NOT_CONSTANT): New constant.
+ (edge_removal_hook_holder): New var.
+ (node_growth_cache, edge_growth_cache): New global vars.
+ (true_predicate, single_cond_predicate, false_predicate,
+ not_inlined_predicate, add_condition, add_clause, and_predicates,
+ or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
+ dump_clause, dump_predicate, account_size_time,
+ evaulate_conditions_for_edge): New functions.
+ (inline_summary_alloc): Move to heap.
+ (inline_node_removal_hook): Clear condition and entry vectors.
+ (inline_edge_removal_hook): New function.
+ (initialize_growth_caches, free_growth_caches): New function.
+ (dump_inline_summary): Update.
+ (edge_execution_predicate): New function.
+ (will_be_nonconstant_predicate): New function.
+ (estimate_function_body_sizes): Compute BB and constantness predicates.
+ (compute_inline_parameters): Do not clear estimated_growth.
+ (estimate_edge_size_and_time): New function.
+ (estimate_calls_size_and_time): New function.
+ (estimate_callee_size_and_time): New function.
+ (remap_predicate): New function.
+ (inline_merge_summary): New function.
+ (do_estimate_edge_time): New function based on...
+ (estimate_edge_time): ... this one.
+ (do_estimate_edge_growth): New function.
+ (do_estimate_growth): New function based on....
+ (estimate_growth): ... this one.
+ (inline_analyze_function): Analyze after deciding on jump functions.
+ (inline_read_section): New function.
+ (inline_read_summary): Use it.
+ (inline_write_summary): Write all the new data.
+ * ipa-prop.c (ipa_get_param_decl_index): Export.
+ (ipa_lattice_from_jfunc): Move here from ipa-cp.c
+ * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
+ Declare.
+ (ipa_get_lattice): Move here from ipa-cp.c
+ * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
+ * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
+ * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
+ cgraph_edge_inlinable_p): Remove.
+ * cgraphunit.c: Include ipainline.h
+ (cgraph_process_new_functions): Update call of
+ compute_inline_parameters.
+
+2011-04-22 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (build_int_cst): Properly create canonicalized integer
+ constants.
+ (build_int_cst_type): Remove scary comments.
+
+2011-04-22 Xinliang David Li <davidxl@google.com>
+
+ * toplev.c (process_options): Enable -Werror=coverage-mismatch
+ by default when -Wno-error is not specified.
+ * opts-global.c (decode_options): Remove call to
+ control_warning_options.
+
+2011-04-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/48717
+ * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
+ ~A + A optimizations use build_int_cst_type instead of build_int_cst.
+
+2011-04-22 Joseph Myers <joseph@codesourcery.com>
+
+ * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
+ definition where used.
+
+2011-04-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/48716
+ * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
+ TREE_STATIC variables declared inside of some OpenMP construct.
+
+2011-04-22 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/48585
+ * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
+
+2011-04-22 Alexander Monakov <amonakov@ispras.ru>
+
+ PR c/36750
+ * c-typeck.c (pop_init_level): Do not warn about initializing
+ with ` = {0}'.
+
+2011-04-22 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
+ when returning call_cookie.
+ (rs6000_function_ok_for_sibcall): Allow sibcalls via function
+ pointers, to functions with no more vector args than the current
+ function, and some non-local calls for ABI_V4.
+ * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
+ sibcall_nonlocal_aix64): Combine to ..
+ (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
+ (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
+ (sibcall_value_nonlocal_aix<mode>): ..likewise.
+ (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
+ (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
+ operand.
+ * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
+ sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
+ sibcall_value_symbolic_64): Delete.
+
+2011-04-21 Xinliang David Li <davidxl@google.com>
+
+ * cgraph.h: Remove pid.
+ * cgraph.c: Remove pid.
+ * value-prof.c (init_node_map): New function.
+ (del_node_map): New function.
+ (find_func_by_funcdef_no): New function.
+ (gimple_ic_transform): Call new function.
+ * cgraphunit.c (cgraph_finalize_function): Remove pid.
+ * function.c (get_last_funcdef_no): New function.
+ * function.h (get_last_funcdef_no): New function.
+ * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
+ to libgcov function.
+ (tree-profiling): Call node map init and delete function.
+
+2011-04-21 Ian Lance Taylor <iant@google.com>
+
+ * godump.c (go_format_type): Use exported Go name for anonymous
+ field name.
+
+2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
+ Call builtin_function_type_list instead of builtin_function_type.
+ (UNARY, BINARY, TRINARY, QUAD): Likewise.
+
+2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
+ build_function_type_list instead of build_function_type.
+ Delete variable `endlink'.
+
+2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/s390/s390.c (s390_init_builtins): Call
+ build_function_type_list instead of build_function_type.
+
+2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/ia64/ia64.c (ia64_init_builtins): Call
+ build_function_type_list instead of builtin_function_type.
+
+2011-04-21 Easwaran Raman <eraman@google.com>
+
+ * cfgexpand.c (stack_var): Remove OFFSET...
+ (add_stack_var): ...and its reference here...
+ (expand_stack_vars): ...and here.
+ (stack_var_cmp): Sort by descending order of size.
+ (partition_stack_vars): Change heuristic.
+ (union_stack_vars): Fix to reflect changes in partition_stack_vars.
+ (dump_stack_var_partition): Add newline after each partition.
+
+2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
+ Jeff Law <law@redhat.com>
+
+ * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
+ * gengtype.c (matching_file_name_substitute): Likewise.
+
+2011-04-21 Richard Guenther <rguenther@suse.de>
+
+ PR lto/48703
+ * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
+
+2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
+
+2011-04-21 Richard Guenther <rguenther@suse.de>
+
+ * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
+ file name.
+
+2011-04-21 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
+ MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
+ Use DECL_P, not SSA_VAR_P.
+ (ptr_derefs_may_alias_p): Likewise.
+ (ptr_deref_may_alias_ref_p_1): Likewise.
+ (decl_refs_may_alias_p): Likewise.
+ (refs_may_alias_p_1): Likewise.
+ (ref_maybe_used_by_call_p_1): Likewise.
+ (call_may_clobber_ref_p_1): Likewise.
+ (indirect_ref_may_alias_decl_p): Assume indirect refrences
+ are either MEM_REF or TARGET_MEM_REF.
+ (indirect_refs_may_alias_p): Likewise.
+ * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
+ for MEM_EXPR of indirect calls.
+
+2011-04-21 Tristan Gingold <gingold@adacore.com>
+
+ * vmsdbgout.c (write_srccorr): Compute file length from the string.
+ (dst_file_info_struct): Remove flen field.
+ (lookup_filename): Remove code that set flen field.
+
+2011-04-21 Tristan Gingold <gingold@adacore.com>
+
+ * config/ia64/ia64.c (ia64_start_function): Add a guard.
+
+2011-04-21 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/48708
+ * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
+ vec_extract and vec_concat for non-SSE4_1 targets.
+
+2011-04-21 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
+ return statements.
+
+2011-04-21 Joseph Myers <joseph@codesourcery.com>
+
+ * config/i386/cygming.h (union tree_node, TREE): Don't define or
+ undefine.
+ (FILE): Don't undefine.
+
+2011-04-21 Joseph Myers <joseph@codesourcery.com>
+
+ * config/alpha/alpha.c (struct machine_function): Use rtx, not
+ struct rtx_def *.
+ * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
+ struct rtx_def *.
+ * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
+ * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
+ * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
+ rtx_def *.
+ * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
+ definitions where used.
+ * config/microblaze/microblaze.h (struct microblaze_args): Use
+ rtx, not struct rtx_def *.
+ * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
+ rtx_def *.
+ * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
+ * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
+ * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
+ not struct rtx_def *.
+ * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
+ struct rtx_def *.
+ * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
+ rtx_def *.
+ * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
+
+2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
+ operand_equal_p to compare DR_BASE_ADDRESSes.
+ (vect_check_interleaving): Likewise.
+
+2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
+
+ PR target/46329
+ * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
+ for all Neon struct constants.
+
+2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * target.def (legitimate_constant_p): New hook.
+ * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
+ (TARGET_LEGITIMATE_CONSTANT_P): ...this.
+ * doc/tm.texi: Regenerate.
+ * hooks.h (hook_bool_mode_rtx_true): Declare.
+ * hooks.c (hook_bool_mode_rtx_true): Define.
+ * system.h (LEGITIMATE_CONSTANT_P): Poison.
+ * calls.c (precompute_register_parameters): Replace uses of
+ LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
+ (emit_library_call_value_1): Likewise.
+ * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
+ (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
+ * ira-costs.c (scan_one_insn): Likewise.
+ * recog.c (general_operand, immediate_operand): Likewise.
+ * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
+ * reload1.c (init_eliminable_invariants): Likewise.
+
+ * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
+ mode argument.
+ * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
+ argument.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ * config/alpha/predicates.md (input_operand): Update call to
+ alpha_legitimate_constant_p.
+
+ * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
+ * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
+ (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
+ * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
+ (arm_legitimate_constant_p): New functions.
+ (arm_cannot_force_const_mem): Make static.
+
+ * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
+
+ * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
+ * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
+ instead of bfin_legitimate_constant_p.
+ (bfin_legitimate_constant_p): Make static. Add a mode argument.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+
+ * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
+
+ * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
+
+ * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
+ * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (frv_legitimate_constant_p): Make static. Add a mode argument.
+
+ * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
+ * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
+
+ * config/i386/i386-protos.h (legitimate_constant_p): Delete.
+ * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/i386/i386.c (legitimate_constant_p): Rename to...
+ (ix86_legitimate_constant_p): ...this. Make static. Add a mode
+ argument.
+ (ix86_cannot_force_const_mem): Update accordingly.
+ (ix86_legitimate_address_p): Likewise.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ * config/i386/i386.md: Update commentary.
+
+ * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
+ * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (ia64_legitimate_constant_p): Make static. Add a mode argument.
+
+ * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
+
+ * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
+ * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (lm32_legitimate_constant_p): Make static. Add a mode argument.
+
+ * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
+ * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
+
+ * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (m32r_legitimate_constant_p): New function.
+
+ * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
+ * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
+ LEGITIMATE_CONSTANT_P.
+ (LEGITIMATE_CONSTANT_P): Delete.
+ * config/m68k/m68k.c (m68k_expand_prologue): Call
+ m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
+ (m68k_legitimate_constant_p): New function.
+ * config/m68k/m68k.md: Update comments.
+
+ * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (mcore_legitimate_constant_p): New function.
+
+ * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
+ * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/mep/mep.c (mep_legitimate_constant_p): Make static.
+ Add a mode argument.
+ (mep_legitimate_address): Update accordingly.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+
+ * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
+ Delete.
+ * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
+ static. Check OP's mode for VOIDmode.
+ (microblaze_legitimate_constant_p): New function.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+
+ * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/mips/mips.c (mips_legitimate_constant_p): New function.
+ (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ * config/mips/predicates.md: Update comments.
+
+ * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
+ * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (mmix_legitimate_constant_p): Make static, return a bool, and take
+ a mode argument.
+ (mmix_print_operand_address): Update accordingly.
+
+ * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
+ Delete.
+ * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
+ static. Add a mode argument.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+
+ * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
+
+ * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (pa_legitimate_constant_p): New function.
+
+ * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
+
+ * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (pdp11_legitimate_constant_p): New function.
+
+ * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (rs6000_legitimate_constant_p): New function.
+
+ * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
+ (rx_legitimate_constant_p): ...this.
+ * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
+ (rx_legitimate_constant_p): ...this.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
+
+ * config/s390/s390-protos.h (legitimate_constant_p): Delete.
+ * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/s390/s390.c (legitimate_constant_p): Rename to...
+ (s390_legitimate_constant_p): ...this. Make static, return a bool,
+ and add a mode argument.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+
+ * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
+
+ * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (sh_legitimate_constant_p): New function.
+
+ * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
+ * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (legitimate_constant_p): Rename to...
+ (sparc_legitimate_constant_p): ...this. Make static. Add a mode
+ argument.
+ (constant_address_p): Update accordingly.
+
+ * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
+ argument and return a bool.
+ * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (spu_legitimate_constant_p): Add a mode argument and return a bool.
+ (spu_rtx_costs): Update accordingly.
+ * config/spu/predicates.md (vec_imm_operand): Likewise.
+
+ * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
+
+ * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/v850/v850.c (v850_legitimate_constant_p): New function.
+ (TARGET_LEGITIMATE_CONSTANT_P): Define.
+
+ * config/vax/vax-protos.h (legitimate_constant_p): Delete.
+ * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
+ * config/vax/vax.c (legitimate_constant_p): Likewise.
+
+ * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
+ * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
+ (xtensa_legitimate_constant_p): New function.
+
+2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * target.def (cannot_force_const_mem): Add a mode argument.
+ * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
+ * doc/tm.texi: Regenerate.
+ * hooks.h (hook_bool_mode_rtx_false): Declare.
+ * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
+ (hook_bool_mode_const_rtx_true): Likewise.
+ (hook_bool_mode_rtx_false): New function.
+ * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
+ to be non-VOID. Update call to cannot_force_const_mem.
+ (find_reloads): Update accordingly.
+ * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
+ * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
+ argument.
+ * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
+ * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
+ * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
+ * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
+ * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
+ * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
+ * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
+ * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
+ (m68k_cannot_force_const_mem): ...this new function.
+ * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
+ argument.
+ (mips_const_insns, mips_legitimize_const_move): Update calls.
+ (mips_secondary_reload_class): Likewise.
+ * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
+ (pa_cannot_force_const_mem): ...this new function.
+ * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
+ (rs6000_cannot_force_const_mem): ...this new function.
+ * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
+ argument.
+ * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
+ * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
+ to...
+ (xtensa_cannot_force_const_mem): ...this new function.
+
+2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/mips/mips.c (mips16_build_function_stub): Call
+ build_function_type_list instead of build_function_type.
+ (mips16_build_call_stub): Likewise.
+
+2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
+ instead of build_function_type.
+
+2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
+ instead of build_function_type.
+
+2011-04-20 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/48678
+ * config/i386/i386.md (insv): Change operand 0 constraint to
+ "register_operand". Change operand 1 and 2 constraint to
+ "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
+ * config/i386/sse.md (sse4_1_pinsrb): Export.
+ (sse2_pinsrw): Ditto.
+ (sse4_1_pinsrd): Ditto.
+ (sse4_1_pinsrq): Ditto.
+ * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
+ * config/i386/i386.c (ix86_expand_pinsr): New.
+
2011-04-20 Easwaran Raman <eraman@google.com>
* cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
* config/arm/arm.c (arm_legitimize_reload_address): For NEON
- quad-word modes, reduce to 9-bit index range when above 1016
- limit.
+ quad-word modes, reduce to 9-bit index range when above 1016 limit.
2011-04-20 Andrew Stubbs <ams@codesourcery.com>
2011-04-20 Kai Tietz <ktietz@redhat.com>
- * fold-const.c (fold_binary_loc): Add handling for
- (X & ~Y) | (~X & Y) and (X && !Y) | (!X && Y) optimization
- to (X ^ Y).
+ * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
+ and (X && !Y) | (!X && Y) optimization to (X ^ Y).
2011-04-20 Andrew Stubbs <ams@codesourcery.com>
PR middle-end/48695
* tree-ssa-alias.c (aliasing_component_refs_p): Compute base
- objects and types here. Adjust for their offset before
- comparing.
+ objects and types here. Adjust for their offset before comparing.
2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* doc/install.texi (Configuration, --enable-threads): Remove mach.
- Add lynx, mipssde.
- Sort table.
+ Add lynx, mipssde. Sort table.
2011-04-19 Xinliang David Li <davidxl@google.com>
-
+
* ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
not negative.