OSDN Git Service

* config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 3e7eaa3..f4f535b 100644 (file)
+2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
+       "unused" with attribute "used".
+       (__JCR_END__): Likewise.
+       * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
+       "used" attribute.
+       (__JCR_LIST__): Replace attribute "unused" with attribute "used".
+
+2010-07-14  Richard Guenther  <rguenther@suse.de>
+
+       * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
+       (maybe_fixup_decls): Likewise.
+       (input_gimple_stmt): Do not fixup anything.
+       * lto-streamer-out.c (output_gimple_stmt): Make sure all
+       non-automatic variable uses are wrapped inside a MEM_REF.
+
+2010-07-14  Richard Henderson  <rth@redhat.com>
+
+       * passes.c (rest_of_decl_compilation): Do not call assemble_variable
+       for functions.
+       * varasm.c (assemble_variable): Remove early exit for functions;
+       assert that we're given a variable.
+
+2010-07-14  Jie Zhang  <jie@codesourcery.com>
+
+       * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
+       cortex_a8_default when neon_type is not none.
+
+2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * lower-subreg.c (subreg_context): New static bitmap.
+       (decompose_multiword_subregs): Allocate and free it.
+       (find_decomposable_subregs): Set a bit in it for a register that
+       occurs in a subreg that changes mode but not size.
+       (can_decompose_p): Test it instead of non_decomposable_context.
+
+2010-07-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44824
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
+       is_gimple_mem_ref_addr.
+       (tree_ssa_forward_propagate_single_use_vars): Do not propagate
+       non-decl_address_invariant_p addresses.
+
+2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * reload.c (find_reloads): Revert code to penalize small register
+       classes that was brought in with the IRA merge.
+
+2010-07-14  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
+       as base of ARRAY_REFs.
+
+2010-07-14  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/44930
+       * tree-pretty-print.c (do_niy): Do not print a newline.
+
+2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * ira-int.h (struct ira_object): New.
+       (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P
+       for it.
+       (struct ira_allocno): Remove members min, max,
+       conflict_allocno_array, conflict_id, conflict_allocno_array_size,
+       conflict_allocnos_num and conflict_vec_p.  Add new member object.
+       (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
+       OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
+       OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
+       OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
+       ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
+       ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
+       ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
+       ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
+       an ira_object_t rather than ira_allocno_t.  All uses changed.
+       (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
+       contains a vector of ira_object_t; all uses changed.
+       (ira_objects_num): Declare variable.
+       (ira_create_allocno_object): Declare function.
+       (ira_conflict_vector_profitable_p): Adjust prototype.
+       (ira_allocate_conflict_vec): Renamed from
+       ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
+       (ira_allocate_object_conflicts): Renamed from
+       ira_allocate_allocno_conflicts; first arg now ira_object_t.
+       (struct ira_object_iterator): New.
+       (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
+       (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
+       to conflict_vec_p.  All uses changed.
+       (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
+       Changed to take into account that conflicts are now tracked for
+       objects.
+       * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from
+       CONFLICT_ALLOCNO_P.  Args changed to accept ira_object_t.  All
+       uses changed.
+       (allocnos_conflict_p): New static function.
+       (collected_conflict_objects): Renamed from collected_allocno_objects;
+       now a vector of ira_object_t.  All uses changed.
+       (build_conflict_bit_table): Changed to take into account that
+       conflicts are now tracked for objects.
+       (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
+       (print_allocno_conflicts, ira_build_conflicts): Likewise.
+       * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
+       setup_allocno_left_conflicts_size, allocno_reload_assign,
+       fast_allocation): Likewise.
+       * ira-lives.c (make_hard_regno_born, make_allocno_born)
+       process_single_reg_class_operands, process_bb_node_lives): Likewise.
+       * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
+       Likewise.
+       * ira-build.c (ira_objects_num): New variable.
+       (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
+       contains a vector of ira_object_t; all uses changed.
+       (ira_object_id_map_vec): Corresponding change.
+       (object_pool): New static variable.
+       (initiate_allocnos): Initialize it.
+       (finish_allocnos): Free it.
+       (ira_create_object, ira_create_allocno_object, create_allocno_objects):
+       New functions.
+       (ira_create_allocno): Don't set members that were removed.
+       (ira_set_allocno_cover_class): Don't change conflict hard regs.
+       (merge_hard_reg_conflicts): Changed to take into account that
+       conflicts are now tracked for objects.
+       (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
+       allocate_conflict_bit_vec, ira_allocate_object_conflicts,
+       compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
+       setup_min_max_allocno_live_range_point, allocno_range_compare_func,
+       setup_min_max_conflict_allocno_ids, ):  Likewise.
+       ((add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
+       to ira_object_t; all callers changed.
+       (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
+       to ira_object_t, all callers changed.
+       (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
+       to ira_object_t, all callers changed.
+       (conflict_check, curr_conflict_check_tick): Renamed from
+       allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
+       changed.
+       (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
+       arg changed to ira_object_t, all callers changed.
+       (create_cap_allocno): Call ira_create_allocno_object.
+       (finish_allocno): Free the corresponding object.
+       (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
+       callers changed.  Adjusted for dealing with objects.
+       (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
+       dealing with objects.
+       * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
+
+       * ira-int.h (struct live_range): Rename allocno member to object and change
+       type to ira_object_t.
+       (struct ira_object): New member live_ranges.
+       (struct ira_allocno): Remove member live_ranges.
+       (ALLOCNO_LIVE_RANGES): Remove.
+       (OBJECT_LIVE_RANGES): New macro.
+       (ira_create_live_range, ira_copy_live_range_list,
+       ira_merge_live_range_list, ira_live_ranges_intersect_p,
+       ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
+       * ira-build.c (ira_create_object): Initialize live ranges here.
+       (ira_create_allocno): Not here.
+       (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
+       changed to ira_object_t, all callers changed.
+       (copy_live_range): Rename from copy_allocno_live_range, all callers
+       changed.
+       (ira_copy_live_range_list): Rename from ira_copy_allocno_live_range_list,
+       all callers changed.
+       (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
+       all callers changed.
+       (ira_live_ranges_intersect_p): Rename from
+       ira_allocno_live_ranges_intersect_p, all callers changed.
+       (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
+       callers changed.
+       (ira_finish_live_range_list): Rename from
+       ira_finish_allocno_live_range_list, all callers changed.
+       (change_object_in_range_list): Rename from change_allocno_in_range_list,
+       last arg changed to ira_object_t, all callers changed.
+       (finish_allocno): Changed to expect live ranges in the allocno's object.
+       (move_allocno_live_ranges, copy_allocno_live_ranges,
+       update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
+       ira_flattening, ira_build): Likewise.
+       * ira-color.c (allocnos_have_intersected_live_ranges_p,
+       slot_coalesced_allocno_live_ranges_intersect,
+       setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
+       * ira-conflicts.c (build_conflict_bit_table): Likewise.
+       * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
+       * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
+       make_allocno_dead, create_start_finish_chains,
+       remove_some_program_points_and_update_live_ranges,
+       ira_debug_live_range_list): Likewise.
+
+       * ira-int.h (ira_object_conflict_iterator): Rename from
+       ira_allocno_conflict_iterator.
+       (ira_object_conflict_iter_init): Rename from
+       ira_allocno_conflict_iter_init, second arg changed to
+       * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
+       FOR_EACH_ALLOCNO_CONFLICT.
+       * ira-color.c (assign_hard_reg, push_allocno_to_stack)
+       setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
+       ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
+       * ira-conflicts.c (print_allocno_conflicts): Likewise.
+
+2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       PR other/44874
+       * tree-dump.c (dump_options): Add enumerate_locals entry.
+       Add TDF_NOID exclusion to all entry.
+       * tree-dump.h (dump_enumerated_decls): Declare.
+       * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
+       Don't display type uid.
+       (print_declaration): Don't crash on TREE_TYPE (t) == 0.
+       * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
+       * tree-ssa-live.c: Include gimple.h.
+       (numbered_tree_d): New struct.
+       (numbered_tree): New typedef.
+       (DEF_VEC_O (numbered_tree): New.
+       (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
+       (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
+       (dump_enumerated_decls): Likewise.
+       * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
+       debug info and flag_dump_final_insns, call dump_enumerated_decls.
+       * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
+       * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
+
+2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * expmed.h (MAX_BITS_PER_WORD): Move to...
+       * defaults.h (MAX_BITS_PER_WORD): ...here.
+
+2010-07-13  DJ Delorie  <dj@redhat.com>
+
+       * config/h8300/h8300.c (h8300_init_once): Default to
+       -fstrict_volatile_bitfields.
+
+       * config/sh/sh.c (sh_override_options): Default to
+       -fstrict_volatile_bitfields.
+
+       * config/rx/rx.c (rx_option_override): New.
+
+       * config/m32c/m32c.c (m32c_override_options): Default to
+       -fstrict_volatile_bitfields.
+
+2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * tree.h (build_function_call_expr): Delete.
+       (build_call_expr_loc_array): New function.
+       (build_call_expr_loc_vec): New function.
+       * tree-flow.h (struct omp_region): Change type of ws_args field
+       to a VEC.
+       * builtins.c (build_function_call_expr): Delete.
+       (build_call_expr_loc_array): New function.
+       (build_call_expr_loc): Call it.  Use XALLOCAVEC.
+       (build_call_expr): Likewise.
+       (build_call_expr_loc_vec): New function.
+       * cgraphunit.c (build_cdtor): Call build_call_expr instead of
+       build_function_call_expr.
+       * expr.c (emutls_var_address): Likewise.
+       * varasm.c (emutls_common_1): Likewise.
+       * omp-low.c (expand_omp_atomic_mutex): Likewise.
+       (expand_omp_taskreg): Adjust for new type of region->ws_args.
+       (get_ws_args_for): Return a VEC instead of a tree.
+       (expand_parallel_call): Call build_call_expr_loc_vec instead of
+       build_function_call_expr.
+       * stor-layout.c (self_referential_size): Likewise.
+
+2010-07-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR testsuite/44701
+       * recog.c (constrain_operands): Allow side-effects in memory
+       operands if either < or > constraint is used, rather than if
+       both < and > is used.
+
+2010-07-13  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/44911
+       * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
+       MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
+       without name.
+
+2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/44761
+       * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
+       to variable emited.
+       * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
+       * config/sh/sh.md (symGOT_load): Likewise.
+       (symDTPOFF2reg): Likewise.
+       (symTPOFF2reg): Likewise.
+
+2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
+       * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
+
+2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
+       explanation.
+       Find ucontext_t * on Solaris 11.
+       (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
+       Handle new Solaris 11 __sighndlr patterns.
+
+2010-07-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/44901
+       * vec.h (VEC_block_remove): Fix comment.
+       * tree-ssa-live.c (remove_unused_locals): Don't use
+       VEC_unordered_remove on local_decls, instead replace a single
+       vector element in each iteration if at least one element had
+       to be removed and VEC_truncate at the end.
+       * omp-low.c (expand_omp_taskreg): Likewise.
+
+2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * c-decl.c (finish_function): Fix typo in comment.
+       
+2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR bootstrap/44921
+       * postreload.c (move2add_use_add3_insn): Silence gcc warning
+       on min_regno.
+
+2010-07-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
+       (simplify_stmt_using_ranges): Use it.
+
+2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
+       member.  Do not mark as GTY(()).
+       * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
+       (spu_builtin_decls): New static variable.
+       (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
+       (spu_init_builtins): Likewise.
+       (spu_builtin_mul_widen_even): Likewise.
+       (spu_builtin_mul_widen_odd): Likewise.
+       (spu_builtin_mask_for_load): Likewise.
+       (spu_builtin_vec_perm): Likewise.
+       * config/spu/spu-c.c: Include "target.h".
+       (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
+       of using spu_builtins[].fndecl.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.c (mips_override_options): Make -mflip-mips16
+       imply -minterlink-mips16.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.h (mips16_globals): Declare.
+       (SWITCHABLE_TARGET): Define.
+       * config/mips/mips.c: Include target-globals.h.
+       (mips16_globals): New variable.
+       (mips_set_mips16_mode): Use save_target_globals and
+       restore_target_globals instead of target_reinit.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
+       to say that the function can be called more than once.
+       * target-globals.c (save_target_globals): Call init_reg_sets.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
+       * bb-reorder.h: New file.
+       * bb-reorder.c (default_target_bb_reorder): New variable.
+       (this_target_bb_reorder): New conditional variable.
+       (uncond_jump_length): Redefine as a macro.
+       * target-globals.h (this_target_bb_reorder): Declare.
+       (target_globals): Add a bb_reorder field.
+       (restore_target_globals): Copy the bb_reorder field to
+       this_target_bb-reorder.
+       * target-globals.c: Include bb-reorder.h.
+       (default_target_globals): Initialize the bb_reorder field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
+       * gcse.h: New file.
+       * gcse.c: Include gcse.h.
+       (default_target_gcse): New variable.
+       (this_target_gcse): New conditional variable.
+       (can_copy): Redefine as a macro.
+       (can_copy_init_p): New macro.
+       (can_copy_p): Remove can_copy_init_p.
+       * target-globals.h (this_target_gcse): Declare.
+       (target_globals): Add a gcse field.
+       (restore_target_globals): Copy the gcse field to
+       this_target_gcse.
+       * target-globals.c: Include gcse.h.
+       (default_target_globals): Initialize the gcse field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
+       and x_ira_prohibited_mode_move_regs_initialized_p.
+       (ira_prohibited_mode_move_regs): Redefine as a macro.
+       * ira.c (ira_prohibited_mode_move_regs): Delete.
+       (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * reload.h (target_reload): Add x_cached_reg_save_code and
+       x_cached_reg_restore_code.
+       * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
+       Redefine as macros.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (target-globals.o): Depend on builtins.h.
+       * builtins.h: New file.
+       * builtins.c: Include builtins.h.
+       (default_target_builtins): New variable.
+       (this_target_builtins): New conditional variable.
+       (apply_args_mode, apply_result_mode): Redefine as macros.
+       * target-globals.h (this_target_builtins): Declare.
+       (target_globals): Add a builtins field.
+       (restore_target_globals): Copy the builtins field to
+       this_target_builtins.
+       * target-globals.c: Include builtins.h.
+       (default_target_globals): Initialize the builtins field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
+       (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
+       from expmed.c.
+       (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
+       (alg_hash, alg_hash_used_p): New macros.
+       * expmed.c (init_expmed): Clear alg_hash if reinitializing.
+       (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
+       (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
+       x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
+       * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
+       (this_op_costs, costs_classes): Redefine as macros.
+       (record_reg_classes): Don't take op_costs as a parameter.
+       (record_operand_costs): Likewise.  Update calls to record_reg_classes.
+       (scan_one_insn): Update call to record_operand_costs.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
+       * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
+       (target_ira_int): New structure.
+       (default_target_ira_int): Declare.
+       (this_target_ira_int): Declare as a variable or define as a macro.
+       (ira_reg_mode_hard_regset, ira_register_move_cost)
+       (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
+       (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
+       (prohibited_class_mode_regs, ira_important_classes_num)
+       (ira_important_classes, ira_reg_class_intersect)
+       (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
+       (ira_reg_class_union): Redefine as macros.
+       * ira.h (target_ira): New structure.
+       (default_target_ira): Declare.
+       (this_target_ira): Declare as a variable or define as a macro.
+       (ira_available_class_regs, ira_hard_regno_cover_class)
+       (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
+       (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
+       (ira_class_hard_regs_num): Redefine as macros.
+       * ira.c (default_target_ira, default_target_ira_int): New variables.
+       (this_target_ira, this_target_ira_int): New conditional variables.
+       (ira_reg_mode_hard_regset, ira_memory_move_cost)
+       (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
+       (ira_class_subset_p): Delete.
+       (no_unit_alloc_regs): Redefine as a macro.
+       (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
+       (ira_class_hard_regs_num, ira_class_hard_reg_index)
+       (ira_available_class_regs): Delete.
+       (alloc_reg_class_subclasses): Redefine as a macro.
+       (ira_reg_class_cover_size, ira_reg_class_cover)
+       (ira_important_classes_num, ira_important_classes)
+       (ira_important_class_nums, ira_class_translate): Delete.
+       (cover_class_order): Document the variable's lifetime.
+       (reorder_important_classes): Don't set ira_important_class_nums.
+       (ira_reg_class_intersect, ira_reg_classes_intersect_p)
+       (ira_reg_class_super_classes, ira_reg_class_union)
+       (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
+       Delete.
+       (setup_reg_class_nregs): Don't set ira_max_regs.
+       (prohibited_class_mode_regs): Delete.
+       * target-globals.h (this_target_ira, this_target_ira_int): Declare.
+       (target_globals): Add ira and ira_int fields.
+       (restore_target_globals): Copy the ira field to this_target_ira
+       and the ira_int field to this_target_ira_int.
+       * target-globals.c: Include ira-int.h.
+       (default_target_globals): Initialize the ira and ira_int fields.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
+       * cfgloop.h (target_cfgloop): New structure.
+       (default_target_cfgloop): Declare.
+       (this_target_cfgloop): Declare as a variable or define as a macro.
+       (target_avail_regs, target_clobbered_regs, target_res_regs)
+       (target_reg_cost, target_spill_cost): Redefine as macros.
+       * cfgloopanal.c (default_target_cfgloop): New variable.
+       (this_target_cfgloop): New conditional variable.
+       (target_avail_regs, target_clobbered_regs, target_res_regs)
+       (target_reg_cost, target_spill_cost): Delete.
+       * target-globals.h (this_target_cfgloop): Declare.
+       (target_globals): Add a cfgloop field.
+       (restore_target_globals): Copy the cfgloop field to
+       this_target_cfgloop.
+       * target-globals.c: Include cfgloop.h.
+       (default_target_globals): Initialize the cfgloop field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * regs.h (target_regs): Add x_direct_load, x_direct_store and
+       x_float_extend_from_mem.
+       (direct_load, direct_store, float_extend_from_mem): New macros.
+       * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
+       (target-globals.o): Depend on $(LIBFUNCS_H).
+       * libfuncs.h: Include hashtab.h.
+       (libfunc_entry): Moved from optabs.c.
+       (target_libfuncs): New structure.
+       (default_target_libfuncs): Declare.
+       (this_target_libfuncs): Declare as a variable or define as a macro.
+       (libfunc_table): Redefine as a macro.
+       * optabs.c (default_target_libfuncs): New variable.
+       (this_target_libfuncs): New conditional variable.
+       (libfunc_table): Delete.
+       (libfunc_entry): Moved to optabs.h.
+       (libfunc_hash): Redefine as a macro.
+       (hash_libfunc, eq_libfunc): Fix comments.
+       (init_optabs): Use libfunc_hash to detect cases where the function
+       has already been called.  Clear the hash table instead of
+       recreating it.
+       * target-globals.h (this_target_libfuncs): Declare.
+       (target_globals): Add a libfuncs field.
+       (restore_target_globals): Copy the libfuncs field to
+       this_target_libfuncs.
+       * target-globals.c: Include libfuncs.h.
+       (default_target_globals): Initialize the libfuncs field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
+       in all dependency lists.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
+       * optabs.h (target_optabs): New structure.
+       (default_target_optabs): Declare.
+       (this_target_optabs): Declare as a variable or define as a macro.
+       (optab_table, convert_optab_table, direct_optab_table): Redefine
+       as macros.
+       * optabs.c (default_target_optabs): New variable.
+       (this_target_optabs): New conditional variable.
+       (optab_table, convert_optab_table, direct_optab_table): Delete.
+       * target-globals.h (this_target_optabs): Declare.
+       (target_globals): Add a optabs field.
+       (restore_target_globals): Copy the optabs field to
+       this_target_optabs.
+       * target-globals.c: Include expr.h and optabs.h.
+       (default_target_globals): Initialize the optabs field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * flags.h (target_flagstate): Add x_flag_excess_precision.
+       (flag_excess_precision): Redefine as a macro.
+       * toplev.c (flag_excess_precision): Delete.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
+       * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
+       * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
+       (no_caller_save_reg_set): Redefine as a macro.
+       * reload.h (target_reload): Add x_caller_save_initialized_p and
+       x_regno_save_mode.
+       (caller_save_initialized_p): Redefine as a macro.
+       * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
+       (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
+       (regno_save_mode): Redefine as a macro.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
+       * expmed.h: New file.
+       * expmed.c (default_target_costs): New variable.
+       (this_target_costs): New conditional variable.
+       (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
+       (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
+       (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
+       * target-globals.h (this_target_expmed): Declare.
+       (target_globals): Add a expmed field.
+       (restore_target_globals): Copy the expmed field to
+       this_target_expmed.
+       * target-globals.c: Include expmed.h.
+       (default_target_globals): Initialize the expmed field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (target-globals.o): Depend on reload.h.
+       * reload.h (target_reload): New structure.
+       (default_target_reload): Declare.
+       (this_target_reload): Declare as a variable or define as a macro.
+       (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
+       * reload1.c (default_target_reload): New variable
+       (this_target_reload): New conditional variable.
+       (indirect_symref_ok, double_reg_address_ok): Delete.
+       (spill_indirect_levels): Redefine as a macro.
+       * target-globals.h (this_target_reload): Declare.
+       (target_globals): Add a reload field.
+       (restore_target_globals): Copy the reload field to
+       this_target_reload.
+       * target-globals.c: Include hard-reg-set.h.
+       (default_target_globals): Initialize the reload field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * rtl.h (target_rtl): Add x_static_reg_base_value.
+       * alias.c (static_reg_base_value): Redefine as a macro.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
+       (GTFILES): Remove reginfo.c.
+       * rtl.h (target_rtl): Add x_top_of_stack.
+       (top_of_stack): New macro.
+       * reginfo.c: Don't include ggc.h or gt-reginfo.h.
+       (top_of_stack): Delete.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * regs.h (target_regs): Add x_hard_regs_of_mode, x_contains_reg_of_mode,
+       x_move_cost, x_may_move_in_cost, x_may_move_out_cost and
+       x_last_mode_for_init_move_cost.
+       (have_regs_of_mode, contains_reg_of_mode, move_cost)
+       (may_move_in_cost, may_move_out_cost): Redefine as macros.
+       * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
+       (may_move_in_cost, may_move_out_cost): Delete.
+       (last_mode_for_init_move_cost): Redefine as a macro.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * hard-reg-set.h (target_hard_regs): New structure.
+       (default_target_hard_regs): Declare.
+       (this_target_hard_regs): Declare as a variable or define as a macro.
+       (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
+       (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
+       (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
+       (reg_class_size, reg_class_subclasses, reg_class_subunion)
+       (reg_class_superunion, reg_names): Redefine as macros.
+       * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
+       (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
+       (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
+       (reg_class_contents, reg_class_size, reg_class_subclasses)
+       (reg_class_subunion, reg_class_superunion, reg_names): Delete.
+       (default_target_hard_regs): New variable
+       (this_target_hard_regs, initial_call_really_used_regs)
+       (initial_reg_alloc_order): New conditional variables.
+       (initial_reg_names): New variable.
+       (init_reg_sets): Assert that initial_call_really_used_regs,
+       initial_reg_alloc_order and initial_reg_names
+       are all the same size as their variable counterparts.  Use them to
+       initialize those counterparts.
+       * target-globals.h (this_target_hard_regs): Declare.
+       (target_globals): Add a hard_regs field.
+       (restore_target_globals): Copy the hard_regs field to
+       this_target_hard_regs.
+       * target-globals.c: Include hard-reg-set.h.
+       (default_target_globals): Initialize the hard_regs field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (target-globals.o): Depend on $(RTL_H).
+       * rtl.h: (target_rtl): New structure.
+       (default_target_rtl): Declare.
+       (this_target_rtl): Declare as a variable or define as a macro.
+       (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
+       Redefine as macros.
+       * emit-rtl.c (default_target_rtl): New variable.
+       (this_target_rtl): New conditional variable.
+       (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
+       (return_address_pointer_rtx): Delete.
+       (initial_regno_reg_rtx): New macro.
+       (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
+       (init_emit_regs): Likewise.
+       * target-globals.h (this_target_rtl): Declare.
+       (target_globals): Add a rtl field.
+       (restore_target_globals): Copy the rtl field to this_target_rtl.
+       * target-globals.c: Include rtl.h.
+       (default_target_globals): Initialize the rtl field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * Makefile.in (target-globals.o): Depend on $(REGS_H).
+       * regs.h (target_reg_modes): New structure.
+       (default_target_reg_modes): Declare.
+       (this_target_reg_modes): Declare as a variable or define as a macro.
+       (hard_regno_nregs, reg_raw_mode): Redefine as macros.
+       * reginfo.c (default_target_reg_modes): New variable.
+       (this_target_reg_modes): New conditional variable.
+       (hard_regno_nregs, reg_raw_mode): Delete.
+       * target-globals.h (this_target_regs): Declare.
+       (target_globals): Add a regs field.
+       (restore_target_globals): Copy the regs field to this_target_regs.
+       * target-globals.c: Include regs.h.
+       (default_target_globals): Initialize the regs field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
+       * doc/tm.texi: Regenerate.
+       * Makefile.in (OBJS-common): Add target-globals.o.
+       (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
+       and target-globals.h.
+       (target-globals.o): New rule.
+       (GTFILES): Include $(srcdir)/target-globals.h.
+       * defaults.h (SWITCHABLE_TARGET): Define.
+       * gengtype.c (open_base_files): Add target-globals.h to the
+       list of includes.
+       * target-globals.h: New file.
+       * target-globals.c: Likewise.
+
+       * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
+       * flags.h (target_flag_state): New structure.
+       (default_target_flag_state): Declare.
+       (this_target_flag_state): Declare as a variable or define as a macro.
+       (align_loops_log): Redefine as a macro.
+       (align_loops_max_skip, align_jumps_log): Likewise.
+       (align_jumps_max_skip, align_labels_log): Likewise.
+       (align_labels_max_skip, align_functions_log): Likewise.
+       * toplev.c (default_target_flag_state): New variable.
+       (this_target_flag_state): New conditional variable.
+       (align_loops_log): Delete.
+       (align_loops_max_skip, align_jumps_log): Likewise.
+       (align_jumps_max_skip, align_labels_log): Likewise.
+       (align_labels_max_skip, align_functions_log): Likewise.
+       * target-globals.h (this_target_flag_state): Declare.
+       (target_globals): Add a flag_state field.
+       (restore_target_globals): Copy the flag_state field to
+       this_target_flag_state.
+       * target-globals.c: Include flags.h.
+       (default_target_globals): Initialize the flag_state field.
+       (save_target_globals): Likewise.
+
+2010-07-12  Jie Zhang  <jie@codesourcery.com>
+
+       * postreload.c (reg_symbol_ref[]): New.
+       (move2add_use_add2_insn): New.
+       (move2add_use_add3_insn): New.
+       (reload_cse_move2add): Handle SYMBOL + OFFSET case.
+       (move2add_note_store): Likewise.
+
+2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       PR rtl-optimization/44752
+       * genautomata.c (main): Don't emit an empty file even if there
+       is no automaton.
+
+2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
+       ix86_solaris_return_in_memory.
+       * config/i386-protos.h: Reflect this.
+       * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
+       * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
+       Move ...
+       * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
+
+2010-07-12  Jie Zhang  <jie@codesourcery.com>
+
+       * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
+       align the stack when it's going to be saved.
+
+2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR pch/14940
+       * config/host-solaris.c (mmap_fixed): New function.
+       (sol_gt_pch_get_address): Use it.
+       (sol_gt_pch_use_address): Likewise.
+
+2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
+       pentiumpro on Solaris 8 and 9/x86.
+       * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
+       Document SSE/SSE2 support.
+       * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
+
+2010-07-12  Andi Kleen  <ak@linux.intel.com>
+
+       * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
+       instead of gcc_assert to print better error message for multiple
+       prevailing defs.
+
+2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_asm_output_function_label): Change format
+       string placeholder from 0x%x to %#x.
+       (ix86_code_end): Use putc to output '\n'.
+       (ix86_print_operand) <case ';'>: Use putc to output ';'.
+
+2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
+       in directive -export.
+
+2010-07-10  Anatoly Sokolov  <aesok@post.ru>
+
+       * reginfo.h (reg_classes_intersect_p): Change arguments type to
+       reg_class_t.
+       * rtl.h (reg_classes_intersect_p): Adjust prototype.
+
+       * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
+       Remove macros.
+       * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
+       rs6000_memory_move_cost): Remove
+       * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
+       TARGET_MEMORY_MOVE_COST): Define.
+       (rs6000_register_move_cost): Make static. Change arguments type from
+       enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
+       (rs6000_memory_move_cost): Make static. Change arguments type from
+       'enum reg_class' to reg_class_t.
+
+2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
+
+       PR middle-end/42505
+       * tree-inline.c (estimate_num_insns): Refactor builtin complexity
+       lookup code into....
+       * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
+       new functions.
+       * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
+       * cfgloopanal.c (target_clobbered_regs): Define.
+       (init_set_costs): Initialize target_clobbered_regs.
+       (estimate_reg_pressure_cost): Add call_p argument.  When true,
+       adjust the number of available registers to exclude the
+       call-clobbered registers.
+       * cfgloop.h (target_clobbered_regs): Declare.
+       (estimate_reg_pressure_cost): Adjust declaration.
+       * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
+       (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
+       (determine_set_costs): Dump target_clobbered_regs.
+       (loop_body_includes_call): New function.
+       (tree_ssa_iv_optimize_loop): Use it to initialize new field.
+       * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
+       call_p flag through.
+       (best_gain_for_invariant): Likewise.
+       (find_invariants_to_move): Likewise.
+       (move_single_loop_invariants): Likewise, using already-computed
+       has_call field.
+
+2010-07-10  Richard Guenther  <rguenther@suse.de>
+           Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       PR debug/44832
+       * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
+       (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
+       unless they have DECL_IGNORED_P set.
+
+2010-07-10  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/44889
+       * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
+       helper function.
+       (gimple_types_compatible_p): Similar to pointed-to
+       types allow and merge a mix of complete and incomplete aggregate.
+       Use gimple_fixup_complete_and_incomplete_subtype_p for that.
+       (iterative_hash_gimple_type): Adjust for that.
+
+2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
+
+2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
+
+       PR objc/44140
+       * config/darwin.c (output_objc_section_asm_op): Save and restore
+       section when outputting ObjC section list.
+
+2010-07-09  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer-out.c (produce_symtab): Do not write alias
+       cgraph/varpool nodes.
+
+2010-07-09  Jan Hubicka  <jh@suse.cz>
+
+       * tree-inline.c (declare_return_variable): Fix ICE while
+       inlining DECL_BY_VALUE function not in SSA form
+
+2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
+
+       PR tree-optimization/44576
+       * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
+       New.  Pull out from is_loop_prefetching_profitable to implement
+       the trip count to ahead ratio heuristic.
+       (mem_ref_count_reasonable_p): New.  Pull out from
+       is_loop_prefetching_profitable to implement the instruction to
+       memory reference ratio heuristic.  Also consider not reasonable if
+       the memory reference count is above a threshold (to avoid
+       explosive compilation time.
+       (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
+       is_loop_prefetching_profitable to implement the instruction to
+       prefetch ratio heuristic.
+       (is_loop_prefetching_profitable): Removed.
+       (loop_prefetch_arrays): Distribute the cost analysis across the
+       function to allow early exit of the prefetch analysis.
+       is_loop_prefetching_profitable is splitted into three functions,
+       with each one called as early as possible.
+       (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
+       number of memory references in a loop is considered too many.
+
+2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * reload.c (find_reloads): Don't clear badop if we have a winreg
+       alternative, but not win, and the class only has fixed regs.
+       * hard-reg-set.h (class_only_fixed_regs): Declare.
+       * reginfo.c (class_only_fixed_regs): New array.
+       (init_reg_sets_1): Initialize it.
+       * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
+       discourage alternatives using the stack pointer.
+
+       * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
+
+       * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
+
+       * config/arm/arm.md (cbranchqi4): Fix array size.
+       (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
+       calculating length.
+
+2010-07-09  Richard Guenther  <rguenther@suse.de>
+
+       * gimple.c (struct type_fixup_s): New struct and VEC type.
+       (gimple_register_type_fixups): New static global.
+       (gimple_queue_type_fixup): New function.
+       (gimple_types_compatible_p): Queue type fixups instead of
+       applying them here.
+       (gimple_register_type): Apply queued fixups for the
+       canonical type.  Empty the type fixup queue.
+
+2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
+       * configure: Regenerate.
+       * config.in: Ditto.
+
+2010-07-09  Jakub Jelinek  <jakub@redhat.com>
+           Denys Vlasenko  <dvlasenk@redhat.com>
+           Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
+
+       PR tree-optimization/28632
+       * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
+       (extract_range_from_binary_expr): Further optimize
+       BIT_AND_EXPR and BIT_IOR_EXPR.
+
+2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-if-conv.c (fold_or_predicates): New.
+       (add_to_predicate_list): Call it.
+
+2010-07-09  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/44890
+       * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
+       if base is a pointer.
+       * tree-cfg.c (verify_expr): Update MEM_REF checking.
+
+2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/44877
+       * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
+       POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
+       builtin mask for load/store builtins.
+
+2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
+       for "lock addl".
+       * configure: Regenerate.
+       * config/i386/i386.c (ix86_print_operand) <case ';'>:
+       Remove TARGET_MACHO.
+
+2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
+       default ISA flags.
+       * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
+
+2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
+
+       * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
+
+2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
+
+       * config/picochip/picochip.md (commsTestPort): Emit more
+       efficient sequence for tstport instruction.
+
+2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_veclib_handler): Make static.
+
+2010-07-09  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44852
+       * tree-ssa-alias.c: Include toplev.h for exact_log2.
+       (indirect_ref_may_alias_decl_p): Properly handle negative offsets
+       in MEM_REF.
+       (indirect_refs_may_alias_p): Likewise.
+       * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
+
+2010-07-09  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44882
+       * tree-vect-stmts.c (vectorizable_store): Do not assert alias
+       sets do conflict.
+       (vectorizable_load): Likewise.
+
+2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR target/40657
+       * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
+       All callers changed.
+       Handle the case when we're called for the epilogue.
+       (thumb_unexpanded_epilogue): Use it.
+       (thumb1_expand_epilogue): Likewise.
+
+2010-07-09  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
+       both ranges are range_int_cst_p with non-negative minimum,
+       try harder to derive smaller range.
+
+2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * genrecog.c: Include diagnostic-core.h before toplev.h.
+       * genoutput.c: Likewise.
+       * genextract.c: Likewise.
+       * genautomata.c: Likewise.
+       * genemit.c: Likewise.
+       * genpeep.c: Likewise.
+       * genattrtab.c: Likewise.
+       * genconditions.c: Likewise.
+       * genpreds.c: Likewise.
+
+2010-07-08  Andi Kleen  <ak@linux.intel.com>
+
+       * lto-section-in.c (lto_section_name): Add missing comma.
+
+2010-07-08  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
+       * config/ia64/ia64-protos.h (ia64_override_options): Remove.
+       * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
+       (ia64_override_options): Rename to...
+       (ia64_option_override): ... this one. Make static.
+
+2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/44843
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
+       pointed-to type of the offset in a MEM_REF to compute the alignment.
+
+2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
+
+       * final.c (final_scan_insn): Replace
+       TARGET_UNWIND_INFO macro check by unwind_emit
+       hook NULL check.
+       * targhooks.c (default_unwind_emit): Removed.
+       * targhooks.h (default_unwind_emit): Likewise.
+       * target.def (unwind_emit): Set default value to NULL.
+
+       * config/i386/i386-protos.h (ix86_asm_output_function_label):
+       New prototype.
+       * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
+       for NULL fntype argument and allow 64-bit targets.
+       (ix86_asm_output_function_label): New function.
+       (ix86_expand_prologue): Handle 64-bit ms hook prologue.
+       (ix86_handle_fndecl_attribute): Likewise.
+       * doc/extend.texi (ms_hook_prologue): Adjust documentation.
+       * doc/doc/tm.texi: Regenerated.
+       * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
+       (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
+       * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
+       * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
+       ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
+       * config/elfos.h: Likewise.
+       * config/i386/cygming.h: Likewise.
+       * config/netbsd-aout.h: Likewise.
+       * config/openbsd.h: Likewise.
+       * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
+       by ix86_asm_output_function_label function call.
+       * varasm.c (assemble_start_function): Use
+       ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
+
+2010-07-08  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
+       New function.
+       * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
+       Declare.
+       * ipa-cp.c (ipcp_estimate_growth): Use it.
+       * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
+       Likewise.
+
+2010-07-08  Jan Hubicka  <jh@suse.cz>
+
+       * tree-inline.c (declare_return_variable): Allocate annotation for new
+       temporary.
+
+2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       PR tree-optimization/44710
+       * tree-if-conv.c (parse_predicate): New.
+       (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
+       Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
+
+2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * common.opt (ftree-loop-if-convert): New flag.
+       * doc/invoke.texi (ftree-loop-if-convert): Documented.
+       * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
+       when flag_tree_loop_if_convert is set.
+
+2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c: Use short syntax for function calls
+       through function pointers.
+       * config/i386/i386.md: Ditto.
+
+2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
+
+2010-07-08  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
+       stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
+
+2010-07-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
+       instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
+       (loc_list_from_tree): Likewise.
+       (output_loc_operands): Handle outputting DW_OP_const[48]u
+       with loc->dtprel set.
+       (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
+
+2010-07-08  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c: Include pointer-set.h
+       (cgraph_externally_visible_p): New attribute ALIASED;
+       when in LTO, hidden symbols are local unless they are aliased.
+       (function_and_variable_visibility): Compute aliased nodes;
+       handle LTO and hidden symbol on functions and vars.
+       * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
+       for COMDAT symbols; handle COMDAT_GROUPS also at vars.
+
+2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
+       * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+       * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+       * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+       * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+       * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
+       (ix86_gen_probe_stack_range): Likewise.
+       (override_options): Set them.
+       (ix86_target_stack_probe): New function.
+       (ix86_compute_frame_layout): Force use of push instructions to
+       save registers if stack checking with probes is enabled.
+       (get_scratch_register_on_entry): New function.
+       (release_scratch_register_on_entry): Likewise.
+       (ix86_adjust_stack_and_probe): Likewise.
+       (output_adjust_stack_and_probe): Likewise.
+       (ix86_emit_probe_stack_range): Likewise.
+       (output_probe_stack_range): Likewise.
+       (ix86_expand_prologue): Emit stack checking code if static built-in
+       stack checking is enabled.
+       Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
+       * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
+       (output_adjust_stack_and_probe): Likewise.
+       (output_probe_stack_range): Likewise.
+       * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
+       (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
+       TARGET_STACK_PROBE.
+       (allocate_stack_worker_64): Likewise.
+       (allocate_stack): Likewise.
+       (adjust_stack_and_probe): New insn.
+       (probe_stack_range): Likewise.
+
+2010-07-08  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44831
+       * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
+       a MEM_REF preserving TBAA info of the original dereference.
+       Dereference the original pointer if the address is not invariant.
+       (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
+       at least one invariant address that we are going to dereference.
+
+2010-07-08  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/44861
+       * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
+       information when building MEM_REFs.
+       (vectorizable_load): Likewise.
+       * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
+
+2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sol2-c.c: Do not include diagnostic-core.h.
+
+2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       PR bootstrap/44768
+       * cfgexpand.c (estimated_stack_frame_size): Make self-contained
+       with respect to current_function_decl. Pass decl of the function.
+       * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
+       * ipa-inline.c (compute_inline_parameters): Pass decl to
+       estimated_stack_frame_size.
+
+2010-07-08  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
+       New function.
+       (valueize_refs): Call it.
+
+2010-07-08  Richard Guenther  <rguenther@suse.de>
+
+       PR rtl-optimization/44838
+       * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
+       SSA form do not use pointer equivalence.
+
+2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * dwarf2out.c (AT_linkage_name): Delete.
+       (add_linkage_attr): New function.
+       (add_linkage_name): Call it to emit the linkage attribute.
+       (dwarf2out_finish): Likewise.
+       (move_linkage_attr): Explicitly accept both attribute variants.
+
+2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * toplev.h: Do not include diagnostic-core.h.
+       Include diagnostic-core.h in every file that includes toplev.h.
+       * c-tree.h: Do not include toplev.h.
+       * pretty-print.h: Update comment.
+       * Makefile.in: Update dependencies.
+       * alias.c: Include diagnostic-core.h in every file that includes
+       toplev.h.
+       * attribs.c: Likewise.
+       * auto-inc-dec.c: Likewise.
+       * bb-reorder.c: Likewise.
+       * bt-load.c: Likewise.
+       * caller-save.c: Likewise.
+       * calls.c: Likewise.
+       * cfg.c: Likewise.
+       * cfganal.c: Likewise.
+       * cfgbuild.c: Likewise.
+       * cfgcleanup.c: Likewise.
+       * cfghooks.c: Likewise.
+       * cfgloop.c: Likewise.
+       * combine.c: Likewise.
+       * config/alpha/alpha.c: Likewise.
+       * config/arc/arc.c: Likewise.
+       * config/arm/arm.c: Likewise.
+       * config/arm/pe.c: Likewise.
+       * config/avr/avr.c: Likewise.
+       * config/bfin/bfin.c: Likewise.
+       * config/cris/cris.c: Likewise.
+       * config/crx/crx.c: Likewise.
+       * config/darwin-c.c: Likewise.
+       * config/darwin.c: Likewise.
+       * config/fr30/fr30.c: Likewise.
+       * config/frv/frv.c: Likewise.
+       * config/h8300/h8300.c: Likewise.
+       * config/host-darwin.c: Likewise.
+       * config/i386/i386.c: Likewise.
+       * config/i386/netware.c: Likewise.
+       * config/i386/nwld.c: Likewise.
+       * config/i386/winnt-cxx.c: Likewise.
+       * config/i386/winnt-stubs.c: Likewise.
+       * config/i386/winnt.c: Likewise.
+       * config/ia64/ia64-c.c: Likewise.
+       * config/ia64/ia64.c: Likewise.
+       * config/iq2000/iq2000.c: Likewise.
+       * config/lm32/lm32.c: Likewise.
+       * config/m32c/m32c-pragma.c: Likewise.
+       * config/m32c/m32c.c: Likewise.
+       * config/m32r/m32r.c: Likewise.
+       * config/m68hc11/m68hc11.c: Likewise.
+       * config/m68k/m68k.c: Likewise.
+       * config/mcore/mcore.c: Likewise.
+       * config/mep/mep-pragma.c: Likewise.
+       * config/mep/mep.c: Likewise.
+       * config/mmix/mmix.c: Likewise.
+       * config/mn10300/mn10300.c: Likewise.
+       * config/moxie/moxie.c: Likewise.
+       * config/pa/pa.c: Likewise.
+       * config/pdp11/pdp11.c: Likewise.
+       * config/picochip/picochip.c: Likewise.
+       * config/rs6000/rs6000-c.c: Likewise.
+       * config/rs6000/rs6000.c: Likewise.
+       * config/rx/rx.c: Likewise.
+       * config/s390/s390.c: Likewise.
+       * config/score/score.c: Likewise.
+       * config/score/score3.c: Likewise.
+       * config/score/score7.c: Likewise.
+       * config/sh/sh.c: Likewise.
+       * config/sh/symbian-base.c: Likewise.
+       * config/sh/symbian-c.c: Likewise.
+       * config/sh/symbian-cxx.c: Likewise.
+       * config/sol2-c.c: Likewise.
+       * config/sol2.c: Likewise.
+       * config/sparc/sparc.c: Likewise.
+       * config/spu/spu.c: Likewise.
+       * config/stormy16/stormy16.c: Likewise.
+       * config/v850/v850-c.c: Likewise.
+       * config/v850/v850.c: Likewise.
+       * config/vax/vax.c: Likewise.
+       * config/vxworks.c: Likewise.
+       * config/xtensa/xtensa.c: Likewise.
+       * convert.c: Likewise.
+       * cse.c: Likewise.
+       * cselib.c: Likewise.
+       * dbgcnt.c: Likewise.
+       * dbxout.c: Likewise.
+       * ddg.c: Likewise.
+       * dominance.c: Likewise.
+       * emit-rtl.c: Likewise.
+       * explow.c: Likewise.
+       * expmed.c: Likewise.
+       * fixed-value.c: Likewise.
+       * fold-const.c: Likewise.
+       * fwprop.c: Likewise.
+       * gcse.c: Likewise.
+       * ggc-common.c: Likewise.
+       * ggc-page.c: Likewise.
+       * ggc-zone.c: Likewise.
+       * gimple-low.c: Likewise.
+       * gimplify.c: Likewise.
+       * graph.c: Likewise.
+       * haifa-sched.c: Likewise.
+       * ifcvt.c: Likewise.
+       * implicit-zee.c: Likewise.
+       * integrate.c: Likewise.
+       * ira-build.c: Likewise.
+       * ira-color.c: Likewise.
+       * ira-conflicts.c: Likewise.
+       * ira-costs.c: Likewise.
+       * ira-lives.c: Likewise.
+       * ira.c: Likewise.
+       * lists.c: Likewise.
+       * loop-doloop.c: Likewise.
+       * loop-iv.c: Likewise.
+       * lto-opts.c: Likewise.
+       * lto-symtab.c: Likewise.
+       * main.c: Likewise.
+       * modulo-sched.c: Likewise.
+       * optabs.c: Likewise.
+       * params.c: Likewise.
+       * plugin.c: Likewise.
+       * postreload-gcse.c: Likewise.
+       * postreload.c: Likewise.
+       * predict.c: Likewise.
+       * profile.c: Likewise.
+       * real.c: Likewise.
+       * regcprop.c: Likewise.
+       * reginfo.c: Likewise.
+       * regmove.c: Likewise.
+       * reorg.c: Likewise.
+       * resource.c: Likewise.
+       * rtl.c: Likewise.
+       * rtlanal.c: Likewise.
+       * sched-deps.c: Likewise.
+       * sched-ebb.c: Likewise.
+       * sched-rgn.c: Likewise.
+       * sdbout.c: Likewise.
+       * sel-sched-dump.c: Likewise.
+       * sel-sched-ir.c: Likewise.
+       * simplify-rtx.c: Likewise.
+       * stmt.c: Likewise.
+       * stor-layout.c: Likewise.
+       * store-motion.c: Likewise.
+       * targhooks.c: Likewise.
+       * tree-cfg.c: Likewise.
+       * tree-cfgcleanup.c: Likewise.
+       * tree-dump.c: Likewise.
+       * tree-eh.c: Likewise.
+       * tree-inline.c: Likewise.
+       * tree-nomudflap.c: Likewise.
+       * tree-object-size.c: Likewise.
+       * tree-optimize.c: Likewise.
+       * tree-outof-ssa.c: Likewise.
+       * tree-phinodes.c: Likewise.
+       * tree-profile.c: Likewise.
+       * tree-ssa-ccp.c: Likewise.
+       * tree-ssa-coalesce.c: Likewise.
+       * tree-ssa-live.c: Likewise.
+       * tree-ssa-loop-niter.c: Likewise.
+       * tree-ssa-loop-prefetch.c: Likewise.
+       * tree-ssa-loop.c: Likewise.
+       * tree-ssa-structalias.c: Likewise.
+       * tree-ssa-uninit.c: Likewise.
+       * tree-ssa.c: Likewise.
+       * tree-vect-data-refs.c: Likewise.
+       * tree-vect-loop-manip.c: Likewise.
+       * tree-vect-loop.c: Likewise.
+       * tree-vect-patterns.c: Likewise.
+       * tree-vect-stmts.c: Likewise.
+       * tree-vrp.c: Likewise.
+       * varasm.c: Likewise.
+       * vec.c: Likewise.
+       * web.c: Likewise.
+       * xcoffout.c: Likewise.
+
+2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * gengtype.c (write_field_root): New function.
+       (write_root): Use it.
+
+2010-07-07  Wei Guozhi  <carrot@google.com>
+
+       * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
+       of lowest bits to lshift/compare): Add a missing line.
+
+2010-07-07  Wei Guozhi  <carrot@google.com>
+
+       * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
+       of lowest bits to lshift/compare): New.
+
+2010-07-07  Tom Tromey  <tromey@redhat.com>
+
+       * doc/tm.texi: Update.
+       * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
+       Add @hook.
+       * target.def (want_debug_pub_sections): New hook.
+       * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
+       * dwarf2out.c (add_pubname_string): Check
+       targetm.want_debug_pub_sections.
+       (add_pubname): Likewise.
+       (add_pubtype): Likewise.
+
+2010-07-07  Jie Zhang  <jie@codesourcery.com>
+
+       * genautomata.c (output_automata_list_min_issue_delay_code):
+       Correctly decompress min_issue_delay.
+
+2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR rtl-optimization/44404
+       * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
+       possible, use reg_overlap_mentioned_p instead.
+
+2010-07-07  Duncan Sands  <baldrick@free.fr>
+
+       PR middle-end/41355
+       * tree.c (build_function_type_skip_args): Copy the original type using
+       build_distinct_type_copy rather than copy_node.
+
+2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/44850
+       * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
+       revision 161876.
+       (ix86_expand_prologue): Likewise.
+       (ix86_handle_fndecl_attribute): Likewise.
+       (ix86_asm_declare_function_name): Likewise.
+       * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+       * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+       (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
+       * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
+       * doc/extend.texi: Likewise.
+
+2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/44844
+       * config/i386/i386.md (rdrand<mode>): Changed to expand to
+       retry if the carry flag isn't valid.
+       (rdrand<mode>_1): New.
+
+2010-07-07  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/44790
+       * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
+       for expanding the constant offset for MEM_REFs.
+
+2010-07-07  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
+       * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
+       * gimple.h (is_gimple_operand): Remove.
+       * gimple.c (is_gimple_operand): Likewise.
+       (walk_gimple_op): Fix wi->val_only setting for calls.
+       * tree-cfg.c (verify_gimple_call): Fix argument validation.
+       * tree-profile.c (tree_gen_ic_func_profiler): Do not create
+       invalid gimple calls.
+
+2010-07-06  Jan Hubicka  <jh@suse.cz>
+
+       * lto-cgraph.c (output_cgraph): Add missing declaration.
+
+2010-07-06  Jan Hubicka  <jh@suse.cz>
+
+       * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
+       partition.
+
+2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       * doc/gimple.texi (GIMPLE_DEBUG): Document.
+       * doc/rtl.texi (Debug Information): New node.
+       (NOTE_INSN_VAR_LOCATION): Document.
+       (debug_insn): Likewise.
+       * doc/generic.texi (DEBUG_EXPR_DECL): Document.
+
+2010-07-07  Jan Hubicka  <jh@suse.cz>
+
+       With parts by Richard Guenther.
+
+       PR middle-end/44813
+       * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
+       for functions passed by reference.
+       * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
+       in memory when passed by reference.
+       * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
+       beggining.
+       * ipa-split.c (split_function): Cleanup way return value is passed;
+       handle SSA DECL_BY_REFERENCE retvals.
+       * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
+       DECL_BY_REFERENCE is set.
+       * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
+       find_what_p_points_to): Handle RESULT_DECL.
+       * tree-inline.c (declare_return_variable): Get new entry_block argument;
+       when passing by reference ensure that RESULT_DECL is gimple_val.
+       (remap_gimple_op_r): Remap RESULT_DECL ssa name.
+       (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
+
+2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR rtl-optimization/44787
+       * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
+       * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
+
+2010-07-06  Jan Hubicka  <jh@suse.cz>
+
+       * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
+       (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
+       with body can prevail.
+       (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
+       (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
+       * cgraph.c (cgraph_get_node_or_alias): New function.
+       * cgraph.h (cgraph_get_node_or_alias): Declare.
+
+2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
+       support.
+       (ix86_expand_prologue): Likewise.
+       (ix86_handle_fndecl_attribute): Likewise.
+       (ix86_asm_declare_function_name): New function for
+       ASM_DECLARE_FUNCTION_NAME.
+       * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
+       * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
+       (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
+       * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
+       * doc/extend.texi: Adjust documentation about ms_hook_prologue
+       attribute.
+
+2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (immediate_operand): New mode attribute.
+
+       (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
+       pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
+       using P mode iterator.
+       (pro_epilogue_adjust_stack_di_2): Rename from
+       pro_epilogue_adjust_stack_rex64_2.
+
+       * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
+
+2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
+       through gen_mov_insv_1 function pointer.
+       (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
+       gen_truncxf<mode>2 through gen_truncxf function pointer.
+       (remainder<mode>3): Ditto.
+       (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
+       (allocate_stack): Call gen_allocate_stack_worker_64 or
+       gen_allocate_stack_worker_32 through gen_allocate_stack_worker
+       function pointer.
+       (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
+       function pointer.
+
+2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
+       operand constraint instead of <r><i>m.
+
+2010-07-06  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/44828
+       * convert.c (convert_to_integer): Watch out for overflowing
+       MULT_EXPR as well.
+
+2010-07-05  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer.c (write_symbol_vec): Rename to ...
+       (write_symbol) ... this one; write only symbol given and when
+       present in cache. Sanity check that what is defined is present
+       in cgraph/varpool with body/finalized decl.
+       (write_symbols_of_kind): Remove.
+       (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
+       pairs to produce symtab.
+       (produce_asm_for_decls): Update call of produce_symtab; don't do so
+       when doing WPA streaming.
+
+2010-07-05  Jan Hubicka  <jh@suse.cz>
+
+       * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
+       function is still available to fold into.
+
+2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
+       * function.h (struct_function): Change type of local_decls field
+       to a VEC.
+       (add_local_decl): New function.
+       (FOR_EACH_LOCAL_DECL): New macro.
+       * cfgexpand.c (init_vars_expansion): Adjust for new type of
+       cfun->local_decls.
+       (estimated_stack_frame_size): Likewise.
+       (expand_used_vars): Likewise.
+       * cgraphbuild.c (build_cgraph_edges): Likewise.
+       * function.c (instantiate_decls_1): Likewise.
+       * ipa-struct-reorg.c (build_data_structure): Likewise.
+       * ipa-type-escape.c (analyze_function): Likewise.
+       * lto-streamer-in.c (input_function): Likewise.
+       * lto-streamer-out.c (output_function): Likewise.
+       * tree-ssa-live.c (remove_unused_locals): Likewise.
+       * tree.c (free_lang_data_in_decl): Likewise.
+       (find_decls_types_in_node): Likewise.
+       * omp-low.c (remove_exit_barrier): Likewise.
+       (expand_omp_taskreg): Likewise.
+       (list2chain): Rename to...
+       (vec2chain): ...this.  Adjust.
+       * cgraphunit.c (assemble_thunk): Call add_local_decl.
+       * tree-cfg.c (replace_by_duplicate_decl): Likewise.
+       * gimple-low.c (record_vars_into): Likewise.
+       * tree-inline.c (remap_decls): Likewise.
+       (declare_return_variable): Likewise.
+       (declare_inline_vars): Likewise.
+       (copy_forbidden): Adjust for new type of cfun->local_decls.
+       (add_local_variables): New function.
+       (expand_call_inline): Call it.
+       (tree_function_versioning): Likewise.
+
+2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       AVX Programming Reference (June, 2010)
+       * config/i386/cpuid.h (bit_F16C): New.
+       (bit_RDRND): Likewise.
+       (bit_FSGSBASE): Likewise.
+
+       * config/i386/i386-builtin-types.def: Add
+       "DEF_FUNCTION_TYPE (UINT16)", function types for
+       float16 <-> float conversions and
+       "DEF_FUNCTION_TYPE (VOID, UINT64)".
+
+       * config/i386/i386-c.c (ix86_target_macros_internal): Support
+       OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
+       OPTION_MASK_ISA_F16C.
+
+       * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
+       (OPTION_MASK_ISA_RDRND_SET): Likewise.
+       (OPTION_MASK_ISA_F16C_SET): Likewise.
+       (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
+       (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
+       (OPTION_MASK_ISA_F16C_UNSET): Likewise.
+       (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
+       (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
+       (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
+       (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
+       (override_options): Handle them.
+       (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
+       (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
+       IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
+       IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
+       IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
+       IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
+       IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
+       IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
+       IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
+       (bdesc_args): Likewise.
+       (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
+       V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
+       (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
+       VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
+       Handle non-memory store.
+
+       * config/i386/i386.h (TARGET_FSGSBASE): New.
+       (TARGET_RDRND): Likewise.
+       (TARGET_F12C): Likewise.
+
+       * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
+       (UNSPEC_VCVTPS2PH): Likewise.
+       (UNSPECV_RDFSBASE): Likewise.
+       (UNSPECV_RDGSBASE): Likewise.
+       (UNSPECV_WRFSBASE): Likewise.
+       (UNSPECV_WRGSBASE): Likewise.
+       (UNSPECV_RDRAND): Likewise.
+       (rdfsbase<mode>): Likewise.
+       (rdgsbase<mode>): Likewise.
+       (wrfsbase<mode>): Likewise.
+       (wrgsbase<mode>): Likewise.
+       (rdrand<mode>): Likewise.
+
+       * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
+
+       * config/i386/immintrin.h (_rdrand_u16): New.
+       (_rdrand_u32): Likewise.
+       (_readfsbase_u32): Likewise.
+       (_readfsbase_u64): Likewise.
+       (_readgsbase_u32): Likewise.
+       (_readgsbase_u64): Likewise.
+       (_writefsbase_u32): Likewise.
+       (_writefsbase_u64): Likewise.
+       (_writegsbase_u32): Likewise.
+       (_writegsbase_u64): Likewise.
+       (_rdrand_u64): Likewise.
+       (_cvtsh_ss): Likewise.
+       (_mm_cvtph_ps): Likewise.
+       (_mm256_cvtph_ps): Likewise.
+       (_cvtss_sh): Likewise.
+       (_mm_cvtps_ph): Likewise.
+       (_mm256_cvtps_ph): Likewise.
+
+       * config/i386/sse.md (vcvtph2ps): New.
+       (*vcvtph2ps_load): Likewise.
+       (vcvtph2ps256): Likewise.
+       (vcvtps2ph): Likewise.
+       (*vcvtps2ph): Likewise.
+       (*vcvtps2ph_store): Likewise.
+       (vcvtps2ph256): Likewise.
+
+       * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
+
+       * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
+
+2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       PR bootstrap/44512
+       * genenums.c (main): Output include of insn-constants.h
+       * Makefile.in (insn-enums.o): Depend on insn-constants.h.
+
+2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
+       (override_options): Initialize it.
+       (ix86_expand_prologue): Use it.
+
+2010-07-05  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
+
+2010-07-05  Anatoly Sokolov  <aesok@post.ru>
+
+       * double-int.h (fit_double_type): Remove declaration.
+       * double-int.c (fit_double_type): Remove function.
+       * tree.h (int_fits_type_p): Adjust prototype.
+       * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
+       instead of fit_double_type.
+       (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
+       instead of fit_double_type and build_int_cst_wide.
+       * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
+       instead of fit_double_type and build_int_cst_wide.
+       (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
+       of fit_double_type.
+
+2010-07-05  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
+       in_other_partition.
+       * lto-cgraph.c (referenced_from_other_partition_p,
+       reachable_from_other_partition_p): Use in_other_partition flags.
+       (output_node, output_varpool_node): COMDAT nodes always have private
+       copies and thus are never used from other partition.
+
+2010-07-05  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
+       * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
+       * config/ia64/ia64.c Include reload.h.
+       (ia64_memory_move_cost): New function.
+       (TARGET_MEMORY_MOVE_COST): Define.
+       (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
+       memory_move_cost.
+
+2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
+
+       PR middle-end/42505
+       * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
+       comments about cost model.
+       (try_add_cand_for):  Add second strategy for choosing initial set
+       based on original IVs, controlled by ORIGINALP argument.
+       (get_initial_solution): Add ORIGINALP argument.
+       (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
+       (find_optimal_iv_set): Try two different strategies for choosing
+       the IV set, and return the one with lower cost.
+
+2010-07-05  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
+
+2010-07-05  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (reference_alias_ptr_type): New function.
+       * tree.h (reference_alias_ptr_type): Declare.
+       * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
+       allow non-TARGET_MEM_REF new refs.
+       (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
+       * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
+       Build a MEM_REF instead of a TARGET_MEM_REF if possible.
+       (create_mem_ref): Get alias pointer type.  Adjust calls to
+       create_mem_ref_raw.
+       (maybe_fold_tmr): Likewise.
+       * tree-flow.h (create_mem_ref): Adjust prototype.
+
 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/44808
        (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
        Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
        (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
-       (subsi3_compare): Renamed from subsi3_compare0_c.  Change CC_NOTB to
-       CC.
+       (subsi3_compare): Renamed from subsi3_compare0_c.
+       Change CC_NOTB to CC.
        (arm_subsi3_insn): Allow constants for operand 0.
        (compare_scc peephole for eq case): New.
        (compare_scc splitters): Change CC_NOTB to CC.
        * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
        statements that are not vectorized.
        * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
-       in INSIDE_COST. 
+       in INSIDE_COST.
 
 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
 
        (<u>divmodqi4): Likewise.
        (divmodqi4): New.
        (udivmodqi4): Likewise.
-       (divmodhiqi3): Change div/mod to HImode and extend operand 2 to
-       HImode.
+       (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
        (udivmodhiqi3): Likewise.
 
 2010-07-04  Jan Hubicka  <jh@suse.cz>
 
 2010-07-04  Jan Hubicka  <jh@suse.cz>
 
-        * cgraphunit.c (init_cgraph): Only initialize dump file if it is not
-       already initialized.
+       * cgraphunit.c (init_cgraph): Only initialize dump file if it
+       is not already initialized.
 
 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
 
 2010-07-04  Ira Rosen  <irar@il.ibm.com>
            Revital Eres  <eres@il.ibm.com>
 
-       * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): 
+       * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
        Document new arguments.
        * doc/tm.texi: Regenerate.
        * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
        macro for its access.
        (VECT_MAX_COST): Define.
        (vect_get_load_cost): Declare.
-       (vect_get_store_cost, vect_get_known_peeling_cost, 
+       (vect_get_store_cost, vect_get_known_peeling_cost,
        vect_get_single_scalar_iteraion_cost): Likewise.
        (vect_supportable_dr_alignment): Add new argument.
        * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
        vect_analyze_slp. Fix indentation.
        (vect_get_single_scalar_iteraion_cost): New function.
        (vect_get_known_peeling_cost): Likewise.
-       (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel. 
-       Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per 
+       (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
+       Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
        statement. Move outside cost calculation inside unknown peeling case.
        Call vect_get_known_peeling_cost for known amount of peeling.
        * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
        reference to the print message of forced alignment.
-       (vect_verify_datarefs_alignment): Update call to 
+       (vect_verify_datarefs_alignment): Update call to
        vect_supportable_dr_alignment.
        (vect_get_data_access_cost): New function.
        (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
        check if stores are preferred or if peeling is worthy.
        (vect_find_same_alignment_drs): Analyze pairs of loads too.
        (vect_supportable_dr_alignment): Add new argument and check aligned
-       accesses according to it. 
+       accesses according to it.
        * tree-vect-stmts.c (vect_get_stmt_cost): New function.
-       (cost_for_stmt): Call vect_get_stmt_cost. 
+       (cost_for_stmt): Call vect_get_stmt_cost.
        (vect_model_simple_cost): Likewise.
-       (vect_model_store_cost): Call vect_get_stmt_cost. Call 
+       (vect_model_store_cost): Call vect_get_stmt_cost. Call
        vect_get_store_cost to calculate the cost of the statement.
        (vect_get_store_cost): New function.
-       (vect_model_load_cost): Call vect_get_stmt_cost. Call 
+       (vect_model_load_cost): Call vect_get_stmt_cost. Call
        vect_get_load_cost to calculate the cost of the statement.
        (vect_get_load_cost): New function.
        (vectorizable_store): Update call to vect_supportable_dr_alignment.
        (vectorizable_load): Likewise.
-       * config/spu/spu.c (spu_builtin_vectorization_cost): Add new
-       arguments. 
+       * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
        * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
        arguments. Handle unaligned store.
        * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
        (rs6000_builtin_support_vector_misalignment): Return true for word and
        double word alignments for VSX.
-       * tree-vect-slp.c (vect_build_slp_tree): Update calls to 
+       * tree-vect-slp.c (vect_build_slp_tree): Update calls to
        vect_supportable_dr_alignment and builtin_vectorization_cost.
 
 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
        * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
        as predicate for operand 1 and remove its constraint.
        * config/arm/predicates.md (vfp_register_operand): New.
-       * config/arm/arm.md (*push_multi): Remove the constraint of
-       operand 1.
+       * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
        (*push_fp_multi): Likewise.
 
 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
        (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
        (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
        for NEON float modes when flag_unsafe_math_optimizations is false.
-       (quad_halves_<code>v4sf): Only enable if flag_unsafe_math_optimizations
-       is true.
+       (quad_halves_<code>v4sf): Only enable if
+       flag_unsafe_math_optimizations is true.
        * doc/invoke.texi (ARM Options): Add note about floating point
        vectorization requiring -funsafe-math-optimizations.
 
 
        * ipa-split.c (split_function): For aggregate values, set the return
        slot optimization bit.  When passing DECL_BY_REFERENCE, produce
-       *<retval> = fncall.part ()
+       *<retval> = fncall.part ().
        (execute_split_functions): Do not care about DECL_BY_REFERENCE.
 
 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
        * config/arm/predicates.md (imm_for_neon_logic_operand):
        Require TARGET_NEON.
        (imm_for_neon_inv_logic_operand): Likewise.
-       * config/arm/arm.md (define_split for logical_binary_operator): 
+       * config/arm/arm.md (define_split for logical_binary_operator):
        Disable for NEON registers.
        (anddi3): Add new define_expand, and rename the insn.  Disable
        this insn for NEON, where anddi3_neon now applies.
 
        PR target/44732
        * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
-
-       * config/ia64/ia64.c (ia64_register_move_cost): Fix argument types.
+       Fix argument types.
 
 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
 
        Remove old union trick.  Initialize constant offsets.
        (ao_ref_init_from_vn_reference): Likewise.  Do not handle
        INDIRECT_REF.  Init base_alias_set properly.
-       (vn_reference_lookup_3): Replace INDIRECT_REF handling with
-       MEM_REF.
+       (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
        (vn_reference_fold_indirect): Adjust for MEM_REFs.
        (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
        for ARRAY_REFs.
        bother about volatile qualifiers on pointers.
        (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
        * tree-ssa-loop-ivopts.c
-       * tree-ssa-loop-ivopts.c (determine_base_object): Adjust
-       for MEM_REF.
+       * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
        (strip_offset_1): Likewise.
        (find_interesting_uses_address): Replace INDIRECT_REF handling with
        MEM_REF handling.
        for ARRAY_REFs.  Properly handle reference lookups that
        require a bit re-interpretation.
        (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
-       * tree-sra.c
        * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
        (build_ref_for_offset_1): Remove.
        (build_ref_for_offset): Build MEM_REFs.
        MEM_REF handling.
        (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
        Use mem_ref_offset.  Remove bogus folding.
-       (build_access_from_expr_1): Properly handle MEM_REF for
-       non IPA-SRA.
+       (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
        (make_fancy_name_1): Add support for MEM_REF.
        * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
        * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
        (create_nesting_tree): Allocate it.
        (convert_local_reference_op): Insert to be folded mem-refs.
        (fold_mem_refs): New function.
-       (finalize_nesting_tree_1): Perform defered folding of mem-refs 
+       (finalize_nesting_tree_1): Perform defered folding of mem-refs
        (free_nesting_tree): Free the pointer-set.
        * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
        (vectorizable_load): Likewise.
        * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
        to rtl.h.
        (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
-       * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations
-       here.
+       * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
        * rtl-error.h: New.
        * regrename.c: Do not include toplev.h. Include rtl-error.h.
        * rtl-error.c: Likewise.
        (flags_needed_for_conditional): New function.
        (flags_from_mode): New function.
        (rx_compare_redundant): New function - scans backwards through
-       insn list to find out if condition flags are already set
-       correctly.
+       insn list to find out if condition flags are already set correctly.
        (TARGET_CC_MODES_COMPATIBLE): Define.
        * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
 
        * config/rx/rx.h (BRANCH_COST): Define.
        (REGISTER_MOVE_COST): Define.
-       * config/rx/predicates (rx_source_operand): Allow all constant
-       types.
+       * config/rx/predicates (rx_source_operand): Allow all constant types.
        * config/rx/rx.md (addsi3): Add alternative for swapped operands.
        (tstsi4): New pattern.
        * config/rx/rx.c (rx_memory_move_cost): Define.
        * predict.h (rebuild_frequencies): Declare.
        * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
        entry block and edge reaching new_entry.
-       (tree_function_versioning): When doing partial cloning, rebuild frequencies
-       when done.
+       (tree_function_versioning): When doing partial cloning, rebuild
+       frequencies when done.
        * passes.c (execute_function_todo): Use rebild_frequencies.
 
 2010-06-29  Richard Guenther  <rguenther@suse.de>
 2010-06-28  Jan Hubicka  <jh@suse.cz>
 
        PR tree-optimization/44357
-       * ipa-inline.c (add_new_edges_to_heap): Do not add edges to uninlinable
-       functions.
+       * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
+       uninlinable functions.
 
 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
 
        * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
        * config/rs6000/titan.md: New file.
        * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
-       
+
 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
 
        * tree-browser.c (TB_history_stack): Convert to a VEC.
 
 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
 
-        * cgraph.h (struct varpool_node): new used_from_object_file flag.
-        (struct cgraph_local_info): new used_from_object_file flag.
-        * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
-        (cgraph_clone_node): initialize used_from_object_file.
-        (cgraph_create_virtual_clone): initialize used_from_object_file.
-        * lto-symbtab.c (lto_symtab_merge_decls_1): Set
-        used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
-        when compiling with -fwhole-program.
-        (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
+       * cgraph.h (struct varpool_node): new used_from_object_file flag.
+       (struct cgraph_local_info): new used_from_object_file flag.
+       * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
+       (cgraph_clone_node): initialize used_from_object_file.
+       (cgraph_create_virtual_clone): initialize used_from_object_file.
+       * lto-symbtab.c (lto_symtab_merge_decls_1): Set
+       used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
+       when compiling with -fwhole-program.
+       (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
        internal resolver.
-        * ipa.c (function_and_variable_visibility): Set externally_visible
-        flag of varpool_node if used_from_object_file flag is set.
-        (cgraph_externally_visible_p): check used_from_object_file flag.
-        * doc/invoke.texi (-fwhole-program option): Change description of
-        externally_visible attribute accordingly.
-        * doc/extend.texi (externally_visible): Ditto.
+       * ipa.c (function_and_variable_visibility): Set externally_visible
+       flag of varpool_node if used_from_object_file flag is set.
+       (cgraph_externally_visible_p): check used_from_object_file flag.
+       * doc/invoke.texi (-fwhole-program option): Change description of
+       externally_visible attribute accordingly.
+       * doc/extend.texi (externally_visible): Ditto.
 
 2010-06-27  Jan Hubicka  <jh@suse.cz>
 
        (visit_bb): Handle PHIs correctly.
        * tree-inline.c (copy_phis_for_bb): Be able to copy
        PHI from entry edge.
-       (copy_cfg_body): Produce edge from entry BB before copying
-       PHIs.
+       (copy_cfg_body): Produce edge from entry BB before copying PHIs.
 
 2010-06-26  Richard Guenther  <rguenther@suse.de>
 
 
        * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
        * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
-       * gcc.c (enum add_del, struct modify_target, modify_target):
-       Remove.
+       * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
        (process_command): Remove code conditional on MODIFY_TARGET_NAME.
        * system.h (MODIFY_TARGET_NAME): Poison.