OSDN Git Service

2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 2ce7bb7..1f191ee 100644 (file)
@@ -1,3 +1,922 @@
+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 stimated_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 hre 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
+       containing union type only with -fstrict-aliasing.
+
+2011-04-20  Jim Meyering  <meyering@redhat.com>
+
+       Remove useless if-before-free tests.
+       * calls.c (expand_call, save_area): Likewise.
+       * cfgcleanup.c (try_forward_edges): Likewise.
+       * collect2.c (collect_execute): Likewise.
+       * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
+       * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
+       * coverage.c (coverage_checksum_string): Likewise.
+       * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
+       * cselib.c (cselib_init): Likewise.
+       * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
+       (df_set_clean_cfg): Likewise.
+       * function.c (free_after_compilation): Likewise.
+       * gcc.c (do_spec_1, main): Likewise.
+       * gcov.c (create_file_names): Likewise.
+       * gensupport.c (identify_predicable_attribute): Likewise.
+       * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
+       * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
+       * haifa-sched.c (haifa_finish_h_i_d): Likewise.
+       * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
+       * ipa-pure-const.c (local_pure_const): Likewise.
+       * ipa-reference.c (propagate): Likewise.
+       * ira-costs.c (free_ira_costs): Likewise.
+       * ira.c (free_register_move_costs, build_insn_chain): Likewise.
+       * matrix-reorg.c (mat_free): Likewise.
+       * prefix.c (get_key_value): Likewise.
+       * profile.c (compute_value_histograms): Likewise.
+       * reload1.c (free_reg_equiv): Likewise.
+       * sched-deps.c (free_deps): Likewise.
+       * sel-sched-ir.c (fence_clear): Likewise.
+       * sese.c (set_rename, if_region_set_false_region): Likewise.
+       * tree-data-ref.c (free_rdg): Likewise.
+       * tree-eh.c (lower_try_finally): Likewise.
+       * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
+       * tree-ssa-live.c (delete_var_map): Likewise.
+       * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
+       * tree-ssa-pre.c (phi_trans_add): Likewise.
+
+2011-04-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/48611
+       * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
+       beyond ERT_MUST_NOT_THROW region.
+
+2011-04-20  Catherine Moore  <clm@codesourcery.com>
+
+       * config/mips/mips.opt (mfix-24k): New.
+       * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
+       * config/mips/mips.md (length): Increase by 4 for stores if
+       fixing 24K errata.
+       * config/mips/mips.c (mips_reorg_process_insns): Do not allow
+       all noreorder if fixing 24K errata.
+       * doc/invoke.texi: Document mfix-24k.
+
+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.
+
+2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/arm/arm.c (arm_gen_constant): Move movw support ....
+       (const_ok_for_op): ... to here.
+
+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).
+
+2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
+
+2011-04-20  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/47892
+       * tree-if-conv.c (if_convertible_stmt_p): Const builtins
+       are if-convertible.
+
+2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
+
+2011-04-20  Tristan Gingold  <gingold@adacore.com>
+
+       * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
+
+2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/18145
+
+       * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
+       (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
+       (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
+       (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
+       (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
+
+       * config/avr/avr-protos.h (avr_asm_output_aligned_common):
+       New prototype.
+
+       * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
+       (avr_asm_named_section, avr_asm_output_aligned_common,
+       avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
+       New functions to update...
+       (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
+       (avr_asm_init_sections): Overwrite section callbacks for
+       data_section, bss_section.
+       (avr_file_start): Move output of __do_copy_data, __do_clear_bss
+       from here to...
+       (avr_file_end): ...here.
+
+2011-04-20  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/48695
+       * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
+       objects and types here.  Adjust for their offset before comparing.
+
+2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * tree-vect-stmts.c (vectorizable_store): Only chain one related
+       statement per copy.
+
+2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
+       (GIMPLE_H): Include $(INTERNAL_FN_H).
+       (OBJS-common): Add internal-fn.o.
+       (internal-fn.o): New rule.
+       * internal-fn.def: New file.
+       * internal-fn.h: Likewise.
+       * internal-fn.c: Likewise.
+       * gimple.h: Include internal-fn.h.
+       (GF_CALL_INTERNAL): New gf_mask.
+       (gimple_statement_call): Put fntype into a union with a new
+       internal_fn field.
+       (gimple_build_call_internal): Declare.
+       (gimple_build_call_internal_vec): Likewise.
+       (gimple_call_same_target_p): Likewise.
+       (gimple_call_internal_p): New function.
+       (gimple_call_internal_fn): Likewise.
+       (gimple_call_fntype): Return null for internal calls.
+       (gimple_call_set_fntype): Assert that the function is not internal.
+       (gimple_call_set_fn): Likewise.
+       (gimple_call_set_fndecl): Likewise.
+       (gimple_call_set_internal_fn): New function.
+       (gimple_call_addr_fndecl): Handle null functions.
+       (gimple_call_return_type): Likewise null types.
+       * gimple.c (gimple_build_call_internal_1): New function.
+       (gimple_build_call_internal): Likewise.
+       (gimple_build_call_internal_vec): Likewise.
+       (gimple_call_same_target_p): Likewise.
+       (gimple_call_flags): Handle calls to internal functions.
+       (gimple_call_fnspec): New function.
+       (gimple_call_arg_flags, gimple_call_return_flags): Use it.
+       (gimple_has_side_effects): Handle null functions.
+       (gimple_rhs_has_side_effects): Likewise.
+       (gimple_call_copy_skip_args): Handle calls to internal functions.
+       * cfgexpand.c (expand_call_stmt): Likewise.
+       * expr.c (expand_expr_real_1): Assert that the call isn't internal.
+       * gimple-fold.c (gimple_fold_call): Handle null functions.
+       (gimple_fold_stmt_to_constant_1): Don't fold
+       calls to internal functions.
+       * gimple-low.c (gimple_check_call_args): Handle calls to internal
+       functions.
+       * gimple-pretty-print.c (dump_gimple_call): Likewise.
+       * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
+       * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
+       (do_warn_unused_result): Likewise.
+       * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
+       * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
+       * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
+       the target of a call.
+       (initialize_hash_element): Update accordingly.
+       (hashable_expr_equal_p): Use gimple_call_same_target_p.
+       (iterative_hash_hashable_expr): Handle calls to internal functions.
+       (print_expr_hash_elt): Likewise.
+       * tree-ssa-pre.c (can_value_number_call): Likewise.
+       (eliminate): Handle null functions.
+       * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
+       * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
+       (find_func_aliases): Likewise.
+       * value-prof.c (gimple_ic_transform): Likewise.
+       (gimple_indirect_call_to_profile): Likewise.
+       * lto-streamer-in.c (input_gimple_stmt): Likewise.
+       * lto-streamer-out.c (output_gimple_stmt): Likewise.
+
+2011-04-19  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-transform.c (save_inline_function_body): Add comments.
+       * ipa-inline.c (inline_small_functions): Compute summaries first,
+       populate heap later.
+
+2011-04-19  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.h (save_inline_function_body): Remove.
+       * ipa-inline-transform.c: New file, broke out of...
+       * ipa-inline.c: ... this one; Update toplevel comment.
+       (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
+       make global.
+       (update_noncloned_frequencies): Move to ipa-inline-transform.c
+       (cgraph_mark_inline_edge): Rename to inline_call; move to
+       ipa-inline-transform.c.
+       (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
+       move to ipa-inline-transform.c
+       (recursive_inlining, inline_small_functions, flatten_function,
+       ipa_inline, inline_always_inline_functions,
+       early_inline_small_functions): Update.
+       (inline_transform): Move to ipa-inline-transform.c.
+       * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
+       Declare.
+       * Makefile.in (ipa-inline-transform.o): New file.
+       * cgraphunit.c (save_inline_function_body): Move to
+       ipa-inline-transform.c
+
+2011-04-19  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
+       registers if we already know there aren't any.
+       (m32c_emit_epilogue): Don't emit a barrier here.
+       (m32c_emit_eh_epilogue): Likewise.
+       * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
+       operands at expand time.
+       * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
+       int" wchar type.
+       (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
+       duplicates.  Provide aliases instead.
+       * config/m32c/prologue.md (eh_return): Emit a barrier here.
+       (eh_epilogue): Add a "(return)" here as a hint to other parts of
+       the compiler.
+
+2011-04-19  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
+       * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
+       (general_or_i64_p, sparc_register_move_cost): New function.
+
+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): Assert that 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
        * 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.
 
 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