+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
+ * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
+
+2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR C/31499
+ * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
+ and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
+ value is a VECTOR_CST, the element type is the element type of the
+ vector.
+
+2009-04-22 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.h: Update GTY annotations to new syntax.
+
+2009-04-22 Jakub Jelinek <jakub@redhat.com>
+
+ * alias.c (find_base_term): Move around LO_SUM case, so that
+ CONST falls through into PLUS/MINUS handling.
+
+ PR c/39855
+ * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
+ into 0, use omit_one_operand.
+
+2009-04-23 Ben Elliston <bje@au.ibm.com>
+
+ * config/rs6000/linux-unwind.h (get_regs): Remove type
+ puns. Change the type of `pc' to an array of unsigned ints and
+ update all users. Constify frame24.
+
+2009-04-22 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.c (m32c_special_page_vector_p): Move
+ declarations before code.
+ (current_function_special_page_vector): Likewise.
+ (m32c_expand_insv): Silence a warning.
+
+2009-04-21 Taras Glek <tglek@mozilla.com>
+
+ * alias.c: Update GTY annotations to new syntax.
+ * basic-block.h: Likewise.
+ * bitmap.h: Likewise.
+ * c-common.h: Likewise.
+ * c-decl.c: Likewise.
+ * c-parser.c: Likewise.
+ * c-pragma.c: Likewise.
+ * c-tree.h: Likewise.
+ * cfgloop.h: Likewise.
+ * cgraph.h: Likewise.
+ * config/alpha/alpha.c: Likewise.
+ * config/arm/arm.h: Likewise.
+ * config/avr/avr.h: Likewise.
+ * config/bfin/bfin.c: Likewise.
+ * config/cris/cris.c: Likewise.
+ * config/darwin.c: Likewise.
+ * config/frv/frv.c: Likewise.
+ * config/i386/i386.c: Likewise.
+ * config/i386/i386.h: Likewise.
+ * config/i386/winnt.c: Likewise.
+ * config/ia64/ia64.h: Likewise.
+ * config/iq2000/iq2000.c: Likewise.
+ * config/mips/mips.c: Likewise.
+ * config/mmix/mmix.h: Likewise.
+ * config/pa/pa.c: Likewise.
+ * config/pa/pa.h: Likewise.
+ * config/rs6000/rs6000.c: Likewise.
+ * config/s390/s390.c: Likewise.
+ * config/sparc/sparc.c: Likewise.
+ * config/xtensa/xtensa.c: Likewise.
+ * cselib.h: Likewise.
+ * dbxout.c: Likewise.
+ * dwarf2out.c: Likewise.
+ * except.c: Likewise.
+ * except.h: Likewise.
+ * fixed-value.h: Likewise.
+ * function.c: Likewise.
+ * function.h: Likewise.
+ * gimple.h: Likewise.
+ * integrate.c: Likewise.
+ * optabs.c: Likewise.
+ * output.h: Likewise.
+ * real.h: Likewise.
+ * rtl.h: Likewise.
+ * stringpool.c: Likewise.
+ * tree-data-ref.c: Likewise.
+ * tree-flow.h: Likewise.
+ * tree-scalar-evolution.c: Likewise.
+ * tree-ssa-address.c: Likewise.
+ * tree-ssa-alias.h: Likewise.
+ * tree-ssa-operands.h: Likewise.
+ * tree.c: Likewise.
+ * tree.h: Likewise.
+ * varasm.c: Likewise.
+ * varray.h: Likewise.
+ * vec.h: Likewise.
+ * 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.
+ * gengtype-parse.c: Likewise.
+
+2009-04-22 Mark Heffernan <meheff@google.com>
+
+ * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
+
+2009-04-22 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
+ where appropriate.
+
+2009-04-22 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
+ the same as a PLUS without a shift. Increase the cost of a
+ CONST_INT in MULT.
+
+2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * Makefile.in: Update dependencies.
+ * 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.
+ * gimple.c: Do not include errors.h. Include toplev.h.
+ * tree-ssa-structalias.c: Do not include errors.h.
+ * omega.c: Likewise.
+ * tree-ssa-reassoc.c: Likewise.
+ * config/spu/spu-c.c: Likewise.
+ * config/spu/t-spu-elf: Update dependencies.
+
2009-04-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39824