OSDN Git Service

* dwarf2out.c (loc_descr_plus_const): New function.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index fccf2c0..251d78f 100644 (file)
@@ -1,3 +1,539 @@
+2009-04-26  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (loc_descr_plus_const): New function.
+       (build_cfa_aligned_loc, tls_mem_loc_descriptor,
+       mem_loc_descriptor, loc_descriptor_from_tree_1,
+       descr_info_loc, gen_variable_die): Use it.
+
+       * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
+       !TREE_STATIC VAR_DECLs.
+       * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
+       DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
+       (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
+       DECL_BY_REFERENCE is valid.
+       * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
+       for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
+       * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
+       Copy DECL_BY_REFERENCE.
+       (struct nesting_copy_body_data): New type.
+       (nesting_copy_decl): New function.
+       (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
+       if they have variable length.
+
+2009-04-26  Michael Matz  <matz@suse.de>
+
+       * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
+       mark new temporaries for renaming.
+
+2009-04-26  Joseph Myers  <joseph@codesourcery.com>
+
+       PR c/39581
+       * c-decl.c (global_bindings_p): Return negative value.
+       (c_variable_size): New.  Based on variable_size from
+       stor-layout.c.
+       (grokdeclarator): Call c_variable_size not variable_size.
+
+2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (print_operand) ['z']: Fix typo.
+
+2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
+       Redefine it to just use mingw/include.
+       (ASM_SPEC): Rules for -m32 and -m64.
+       (LINK_SPEC): Use Likewise.
+       (SPEC_32): New define.
+       (SPEC_64): Likewise.
+       (SUB_LINK_SPEC): Likewise.
+       (MULTILIB_DEFAULTS): New define.
+       * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
+       Add multilib options.
+       (MULTILIB_DIRNAMES): Likewise.
+       (MULTILIB_OSDIRNAMES): Likewise.
+       (LIBGCC): Likewise.
+       (INSTALL_LIBGCC): Likewise.
+
+2009-04-26  Joseph Myers  <joseph@codesourcery.com>
+
+       PR c/39556
+       * c-tree.h (enum c_inline_static_type): New.
+       (record_inline_static): Declare.
+       * c-decl.c (struct c_inline_static, c_inline_statics,
+       record_inline_static, check_inline_statics): New.
+       (pop_file_scope): Call check_inline_statics.
+       (start_decl): Call record_inline_static instead of pedwarning
+       directly for static in inline function.
+       * c-typeck.c (build_external_ref): Call record_inline_static
+       instead of pedwarning directly for static referenced in inline
+       function.
+
+2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
+       not new but only being rescanned.
+       * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
+       reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
+       alloc_reg_set_mem, free_reg_set_mem, record_one_set,
+       record_set_info, compute_set, grealloc): Remove.
+       (recompute_all_luids): New function.
+       (gcse_main): Don't compute sets, and don't do related memory
+       allocations/free-ing.  If something changed before the end of the
+       pass, update LUIDs using recompute_all_luids.
+       (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
+       (free_gcse_mem): Don't free it either.
+       (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
+       Use the df insn LUIDs.
+       (load_killed_in_block): Likewise.
+       (compute_hash_table_work): Don't compute reg_set_in_block.
+       (compute_transp): Use DF_REG_DEF_CHAINs.
+       (local_cprop_pass): Don't use compute_sets and related functions.
+       (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
+       Use get_max_uid() instead of max_cuid.
+       (insert_insn_end_basic_block, pre_insert_copy_insn,
+       update_ld_motion_stores): Don't try to
+       keep reg_set tables up to date.
+       (pre_insert_copies): Use df insn LUIDs.
+       (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
+       (reg_set_info): Don't use extra bitmap argument.
+       (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
+       information to compute regs_set_in_block.
+       (free_store_memory, store_motion): Don't nullify reg_set_in_block.
+       (bypass_jumps): Don't use compute_sets and friends.
+
+2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       PR testsuite/39710
+       * opts.c (undocumented_msg): Do not leave blank even with
+       ENABLE_CHECKING.
+
+2009-04-25  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-decl.c (build_enumerator): Allow values folding to integer
+       constants but not integer constant expressions with a pedwarn if
+       pedantic.
+
+2009-04-25  Joseph Myers  <joseph@codesourcery.com>
+
+       PR c/39582
+       * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
+       with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
+       type is an integer constant.
+
+2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/39897
+       * config/i386/i386.c (print_operand) ['z']: Revert handling of
+       HImode operands.
+
+2009-04-25  Joseph Myers  <joseph@codesourcery.com>
+
+       PR c/39564
+       * c-decl.c (grokdeclarator): Diagnose declarations of functions
+       with variably modified return type and no storage class
+       specifiers, except for the case of nested functions.  Distinguish
+       extern declarations of functions with variably modified return
+       types from those of objects with variably modified types.
+
+2009-04-25  Jan Hubicka  <jh@suse.cz>
+
+       * tree.c (list_equal_p): New function.
+       * tree.h (list_equal_p): Declare.
+       * coretypes.h (edge_def, edge, const_edge, basic_block_def
+       basic_block_def, basic_block, const_basic_block): New.
+       * tree-eh.c (make_eh_edge): EH edges are not abnormal.
+       (redirect_eh_edge): New function.
+       (make_eh_edge_update_phi): EH edges are not abnormal.
+       * except.c: Include tree-flow.h.
+       (list_match): New function.
+       (eh_region_replaceable_by_p): New function.
+       (replace_region): New function.
+       (hash_type_list): New function.
+       (hash_eh_region): New function.
+       (eh_regions_equal_p): New function.
+       (merge_peers): New function.
+       (remove_unreachable_regions): Verify EH tree when checking;
+       merge peers.
+       (copy_eh_region_1): New function.
+       (copy_eh_region): New function.
+       (push_reachable_handler): New function.
+       (build_post_landing_pads, dw2_build_landing_pads): Be ready for
+       regions without label but with live RESX.
+       * except.h (redirect_eh_edge_to_label): New.
+       * tree-flow.h (redirect_eh_edge): New.
+       * coretypes.h (edge_def, edge, const_edge, basic_block_def
+       basic_block_def, basic_block, const_basic_block): Remove.
+       * Makefile.in (except.o): Add dependency on tree-flow.h
+       * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
+       * basic-block.h (edge, const_edge, basic_block, const_basic_block):
+       Remove.
+
+2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR bootstrap/39645
+       * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
+       on the destination of memcpy.
+
+2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
+
+       * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
+       REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
+       REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
+
+2009-04-25  Jan Hubicka  <jh@suse.cz>
+
+       * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
+       (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
+       to be reached by different label than left.
+       (update_eh_edges): Update comment; remove edge_to_remove if possible
+       and return true if suceeded.
+       (cleanup_empty_eh): Accept sharing map; handle shared regions.
+       (cleanup_eh): Compute sharing map.
+       * except.c (remove_eh_handler_and_replace): Add argument if we should
+       update regions.
+       (remove_unreachable_regions): Update for label sharing.
+       (label_to_region_map): Likewise.
+       (get_next_region_sharing_label): New function.
+       (remove_eh_handler_and_replace): Add update_catch_try parameter; update
+       prev_try pointers.
+       (remove_eh_handler): Update.
+       (remove_eh_region_and_replace_by_outer_of): New function.
+       * except.h (struct eh_region): Add next_region_sharing_label.
+       (remove_eh_region_and_replace_by_outer_of,
+       get_next_region_sharing_label): Declare.
+       * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
+
+2009-04-25  Jan Hubicka  <jh@suse.cz>
+
+       * tree-cfg.c (split_critical_edges): Split also edges where we can't
+       insert code even if they are not critical.
+
+2009-04-25  Jan Hubicka  <jh@suse.cz>
+
+       * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
+       (gimple_can_remove_branch_p): EH edges won't remove branch by
+       redirection.
+       * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
+       updating of non-abnormal EH edges.
+       * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
+       (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
+       (split_critical_edges): Split also edges where emitting code on them
+       will lead to splitting later.
+
+2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
+           H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/39590
+       * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
+       the configured assembler supports fildq and fistpq mnemonics.
+       (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
+       * configure: Regenerated.
+       * config.in: Ditto.
+
+       * config/i386/i386.c (print_operand): Handle 'Z'.
+       ['z']: Remove handling of special fild/fist suffixes.
+       (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
+       * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
+       suffix of fild insn.
+       (*floatsi<mode>2_vector_mixed): Ditto.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
+       (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
+       (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
+       * config/i386/gas.h (GAS_MNEMONICS): Remove.
+
+2009-04-25  Ben Elliston  <bje@au.ibm.com>
+       * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
+       the source of a set operation.
+
+2009-04-25  Anatoly Sokolov  <aesok@post.ru>
+
+       * target.h (struct gcc_target): Add case_values_threshold field.
+       * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
+       (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
+       * targhooks.c (default_case_values_threshold): New function.
+       * targhooks.h (default_case_values_threshold): Declare function.
+       * stmt.c (expand_case): Use case_values_threshold target hook.
+       * expr.h (case_values_threshold): Remove declartation.
+       * expr.c (case_values_threshold): Remove function.
+       * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
+
+       * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
+       * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
+       (avr_case_values_threshold): Declare as static.
+       * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
+
+       * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
+       * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
+       (mn10300_case_values_threshold): New function.
+
+2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ira.c (setup_cover_and_important_classes): Add enum cast.
+
+2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * genpreds.c (write_enum_constraint_num): Output definition of
+       CONSTRAINT_NUM_DEFINED_P macro.
+       * ira.c (setup_cover_and_important_classes): Use
+       CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
+       
+2009-04-24  DJ Delorie  <dj@redhat.com>
+
+       * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
+       __SH2A_SINGLE_ONLY__ also.
+
+2009-04-24  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/ia64.md (movfs_internal): Allow flt constants.
+       (movdf_internal): Ditto.
+       * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
+       SFmode and DFmode constants.
+       (ia64_print_operand): Add 'G' format for printing
+       floating point constants.
+
+2009-04-24  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
+       from unsigned additions.
+
+2009-04-24  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-typeck.c (set_init_index): Allow array designators that are
+       not integer constant expressions with a pedwarn if pedantic.
+
+2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
+       zero if no overlap in nonzero bits between the operands.
+
+2009-04-24  Ian Lance Taylor  <iant@google.com>
+
+       * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
+       (record_dead_and_set_regs): Likewise.
+       * df.h (struct df_mw_hardreg): Change flags field to int.
+       (struct df_base_ref): Likewise.
+       (struct df): Change changeable_flags field to int.
+       * df-scan.c (df_defs_record): Change clobber_flags to int.
+       * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
+       constants rather than #define macros.
+       (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
+       (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
+       (enum dwarf_calling_convention): Likewise.
+       (enum dwarf_line_number_x_ops): Likewise.
+       (enum dwarf_call_frame_info): Likewise.
+       (enum dwarf_source_language): Likewise.
+       * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
+       (add_calling_convention_attribute): Likewise.
+       * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
+       (combine_comparisons): Change compcode to int.  Add cast to enum type.
+       * genrecog.c (maybe_both_true_2): Change c to int.
+       (write_switch): Likewise.  Add cast to enum type.
+       * gimplify.c (gimplify_omp_for): Handle return values from
+       gimplify_expr using MIN rather than bitwise or.
+       (gimplify_expr): Add cast to enum type.
+       * ipa-prop.c (update_jump_functions_after_inlining): Change
+       IPA_BOTTOM to IPA_JF_UNKNOWN.
+       * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
+       Add casts to enum type.
+       (setup_cover_and_important_classes): Change cl to int.  Add casts
+       to enum type.
+       (setup_class_translate): Change cl and mode to int.
+       (ira_init_once): Change mode to int.
+       (free_register_move_costs): Likewise.
+       (setup_prohibited_mode_move_regs): Add casts to enum type.
+       * langhooks.c (add_builtin_function_common): Rework assertion that
+       value fits bitfield.
+       * mcf.c (add_fixup_edge): Change type parameter to edge_type.
+       * omega.c (omega_do_elimination): Avoid math on enum types.
+       * optabs.c (expand_vec_shift_expr): Remove casts to int.
+       * opts.c (set_debug_level): Change 2 to enum constant.  Use new
+       int local to handle integral_argment value.
+       * regmove.c (try_auto_increment): Change PUT_MODE to
+       PUT_REG_NOTE_KIND.
+       * reload.c (push_secondary_reload): Add casts to enum type.
+       (secondary_reload_class, find_valid_class): Likewise.
+       * reload1.c (emit_input_reload_insns): Likewise.
+       * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
+       * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
+       * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
+       constant.
+       * tree.c (build_common_builtin_nodes): Add casts to enum type.
+       * tree-complex.c (complex_lattice_t): Typedef to int rather than
+       enum type.
+       (expand_complex_libcall): Add casts to enum type.
+       * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
+       * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
+       with ERROR_MARK, not NUM_TREE_CODES.
+       (vect_create_epilog_for_reduction): Likewise.
+       (vectorizable_reduction): Don't initialize epiloc_reduc_code.
+       When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
+       * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
+       enum machine_mode.
+       * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
+       vect_unused_in_loop.  Change 0 to loop_vect.
+       * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
+       * var-tracking.c (get_init_value): Change return type to enum
+       var_init_status.
+       * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
+       * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
+       arm_fp_model.
+       (arm_override_options): Add casts to enum type.
+       (arm_emit_tls_decoration): Likewise.
+       * config/i386/i386.c (ix86_function_specific_restore): Add casts
+       to enum type.
+       * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
+       * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
+       * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
+       enum type.
+       * config/s390/s390.c (code_for_builtin_64): Change to array of
+       enum insn_code.
+       (code_for_builtin_31): Likewise.
+       (s390_expand_builtin): Change code_for_builtin to enum insn_code
+       const *.
+       * config/sparc/sparc.c (sparc_override_options): Change value
+       field in struct code_model to enum cmodel.  In initializer change
+       0 to NULL and add cast to enum type.
+
+       * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
+       Change all callers.  Issue a -Wc++-compat warning using
+       lhs_origtype if necessary.
+       (convert_for_assignment): Issue -Wc++-compat warnings about
+       invalid conversions to enum type on assignment.
+       * c-common.h (build_modify_expr): Update declaration.
+
+2009-04-24  Nick Clifton  <nickc@redhat.com>
+
+       * config/iq2000/iq2000.c (function_arg): Handle TImode values.
+       (function_arg_advance): Likewise.
+       * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
+       5th alternative.
+
+2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/constraints.md ('I', 'J'): Fix condition.
+
+2009-04-24  Diego Novillo  <dnovillo@google.com>
+
+       * gengtype-parse.c (parse_error): Add newline after message.
+
+2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (avxmodesuffixs): Removed.
+       (*avx_pinsr<avxmodesuffixs>): Renamed to ...
+       (*avx_pinsr<ssevecsize>): This.
+
+2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
+       follow chains of regs with a single definition, and allow expressions
+       that are function_invariant_p.
+       (simple_rhs_p): Allow expressions that are function_invariant_p.
+
+2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR middle-end/39867
+       * fold-const.c (fold_cond_expr_with_comparison): When folding
+       > and >= to MAX, make sure the MAX uses the same type as the
+       comparison's operands.
+
+2009-04-24  Nick Clifton  <nickc@redhat.com>
+
+       * config/frv/frv.c (frv_frame_access): Do not use reg+reg
+       addressing for DImode accesses.
+       (frv_print_operand_address): Handle PLUS case.
+       * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
+
+2009-04-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/39794
+       * alias.c (canon_true_dependence): Add x_addr argument.
+       * rtl.h (canon_true_dependence): Adjust prototype.
+       * cse.c (check_dependence): Adjust canon_true_dependence callers.
+       * cselib.c (cselib_invalidate_mem): Likewise.
+       * gcse.c (compute_transp): Likewise.
+       * dse.c (scan_reads_nospill): Likewise.
+       (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
+       addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
+       canon_base_addr of the group, plus optional offset.
+       (struct group_info): Rename canon_base_mem to
+       canon_base_addr.
+       (get_group_info): Set canon_base_addr to canon_rtx of base, not
+       canon_rtx of base_mem.
+
+2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
+       Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
+
+2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * config/spu/spu-builtins.h: Delete file.
+
+       * config/spu/spu.h (enum spu_builtin_type): Move here from
+       spu-builtins.h.
+       (struct spu_builtin_description): Likewise.  Add GTY marker.
+       Do not use enum spu_function_code or enum insn_code.
+       (spu_builtins): Add extern declaration.
+
+       * config/spu/spu.c: Do not include "spu-builtins.h".
+       (enum spu_function_code, enum spu_builtin_type_index,
+       V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
+       V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
+       unsigned_V8HI_type_node, unsigned_V4SI_type_node,
+       unsigned_V2DI_type_node): Move here from spu-builtins.h.
+       (spu_builtin_types): Make static.  Add GTY marker.
+       (spu_builtins): Add extern declaration with GTY marker.
+       Include "gt-spu.h".
+
+       * config/spu/spu-c.c: Do not include "spu-builtins.h".
+       (spu_resolve_overloaded_builtin): Do not use spu_function_code.
+       Check programmatically whether all parameters are scalar.
+
+       * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
+
+2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
+       assignment from the constructor either if the target is volatile.
+
+2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/arm/arm.md (insv): Do not share operands[0].
+
+2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/vxlib-tls.c (active_tls_threads): Delete.
+       (delete_hook_installed): New.
+       (tls_delete_hook): Don't delete the delete hook.
+       (tls_destructor): Delete it here.
+       (__gthread_set_specific): Adjust installing the delete hook.
+       (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
+       __gthread_leave_tsd_dtor_context.
+
+2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
+
+       * c-format.c (gcc_tdiag_char_table): Add support for %E.
+
+2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
+       enum type.
+       (alpha_rtx_costs): Ditto.
+       (emit_unlikely_jump): Use add_reg_note.
+       (emit_frame_store_1): Ditto.
+       (alpha_expand_prologue): Ditto.
+       (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
+       * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
+
+2009-04-23  Nick Clifton  <nickc@redhat.com>
+
+       * config/v850/v850.md (epilogue): Remove suppressed code.
+       (return): Rename to return_simple and remove test of frame size.
+       * config/v850/v850.c (expand_epilogue): Rename call to gen_return
+       to gen_return_simple.
+
 2009-04-22  Jing Yu  <jingyu@google.com>
 
        PR testsuite/39781
        * varasm.c: Likewise.
        * varray.h: Likewise.
        * vec.h: Likewise.
-       * coretypes.h: Do not define GTY macro if it is already
-       defined.
+       * coretypes.h: Do not define GTY macro if it is already defined.
        * doc/gty.texi: Update GTY documentation to new syntax.
        * gengtype-lex.l: Enforce attribute-like syntax for GTY
        annotations on structs.
 
 2009-04-22  Mark Heffernan  <meheff@google.com>
 
-       * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
+       * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
 
 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
 
 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        * Makefile.in: Update dependencies.
-       * errors.c (warning): Remove unused parameter 'opt'. Returns
-       'void'.
+       * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
        * errors.h: Remove bogus comment about compatibility.
        (warning): Update declaration.
        * genautomata.c: Update all calls to warning.