OSDN Git Service

* tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 5e78b4b..ffbe8b2 100644 (file)
+2010-07-29  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
+       to outer loop when creating reduction epilogue for double reduction, 
+       and switch back to the inner loop when updating the phi nodes.
+       Update uses of outer loop exit phi nodes in double reduction (instead
+       of uses of reduction).
+
+2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
+       popcount on power7 and parity on power6 systems.
+       (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
+       (rs6000_emit_parity): Add support for power6 prtyd/prtyw
+       instructions.
+
+       * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
+       (UNSPEC_PARITY): Ditto.
+       (SFDF): New iterator for SF/DF.
+       (rreg2): New mode attribute for floating register constraint.
+       (TARGET_FLOAT): New mode attribute for whether single/double float
+       is supported.
+       (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
+       pattern.
+       (parity<mode>2_cmpb): New insn for parity on power6 and newer
+       machines.
+       (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
+       pattern.  Add support for fcpsgn instruction added in power6.
+       (copysignsf3): Delete.
+       (copysigndf3): Delete.
+       (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
+       instead of if_then_else in RTL to avoid problems with -0.
+
+       * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
+       of if_then_else to mirror scalar code.
+       (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
+       rs6000.md.
+
+       * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
+       instead of if_then_else.
+
+2010-07-28  Xinliang David Li  <davidxl@google.com>
+
+       * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
+       (dump_cand): Dump var_before/after.
+       (htab_inv_expr_eq): New function.
+       (htab_inv_expr_hash): New function.
+       (tree_ssa_iv_optimize_init): Support pseudo invariants.
+       (add_candidate_1): consider base type precision.
+       (set_use_iv_cost): New parameter.
+       (adjust_setup_cost): Use profile information.
+       (get_address_cost): Do not hard code width in computing address
+       offset limits.
+       (compare_aff_trees): New function.
+       (get_loop_invariant_expr_id): New function.
+       (get_computation_cost_at): New parameter and use profile information.
+       (get_computation_cost): New parameter.
+       (determine_use_iv_cost_generic): Pass new parameter.
+       (determine_use_iv_cost_address): Ditto.
+       (determine_use_iv_cost_condition): Ditto.
+       (autoinc_possible_for_pair): Ditto.
+       (determine_use_iv_costs): More dumps.
+       (iv_ca_get_num_inv_exprs): New function.
+       (iv_ca_recount_cost): Consider loop invariants in register pressure
+       cost.
+       (iv_ca_add_use): New parameter.
+       (iv_ca_dump): Better dumping.
+       (iv_ca_extend): New parameter.
+       (try_add_cand_for): Attempt to get better partial solution.
+       (try_improve_iv_set): Pass new parameter to iv_ca_extend.
+       (create_new-ivs): More dumps.
+       (rewrite_use_compare): Ditto.
+       (free_loop_data): More cleanup.
+       (treee_ssa_iv_optimize_finalize): Ditto.
+
+2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
+       * config/i386/i386.c (ix86_profile_before_prologue): New.
+       (override_options): Add special handling for -mfentry.
+       (ix86_function_regparm): Likewise.
+       (ix86_function_sseregparm): Likewise.
+       (ix86_frame_pointer_required): Likewise.
+       (ix86_expand_prologue): Check for ms_hook_prologue.
+       (x86_function_profiler): Adjust mcount output.
+       (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
+       * config/i386/i386.opt (mfentry): New.
+       * doc/invoke.texi (mfentry): Add documentation.
+       * doc/tm.texi: Regenerated..
+       * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
+       * final.c (final_start_function): Replace macro
+       PROFILE_BEFORE_PROLOGUE by target hook.
+       * function.c (thread_prologue_and_epilogue_insns): Likewise.
+       * target.def (profile_before_prologue): New hook.
+       * targhooks.c (default_profile_before_prologue): New.
+       * targhooks.h (default_profile_before_prologue): New.
+
+2010-07-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/45105
+       * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
+
+       PR debug/45103
+       * dwarf2out.c (dwarf2out_var_location): Always consider
+       NOTE_DURING_CALL_P notes, even when not followed by real instructions.
+
+2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR rtl-optimization/45107
+       * gcse.c (hash_scan_set): Use max_distance for gcse-las.
+
+2010-07-28  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
+       (set_lattice_value): Do not query an old default value.
+       (get_value_for_expr): New function.  Properly canonicalize
+       float values.
+       (ccp_visit_phi_node): Use it.
+
+2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * config/arm/arm.c (arm_pcs_default): Remove static.
+       * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
+       __ARM_PCS_VFP to indicate soft/hard-float calling convention.
+       (arm_pcs_default): Declare.
+
+2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_override_options): 
+       Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
+       ... to darwin_rs6000_override_options.
+       (rs6000_return_in_memory): Update preceding comment for darwin
+       64 bit ABI.  Use TARGET_MACHO inline.
+       (rs6000_darwin64_struct_check_p): New.
+       (function_arg_advance): Use rs6000_darwin64_struct_check_p.
+       (function_arg): Likewise.
+       (rs6000_arg_partial_bytes): Likewise.
+       (rs6000_function_value): Likewise.
+
+2010-07-28  Andi Kleen <ak@linux.intel.com>
+
+       * lto-opts.c (lto_file_read_options): Add loop over all inputs.
+
+2010-07-28  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/44903
+       * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
+       targets try harder to not generate unaligned accesses.
+
+2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR rtl-optimization/45101
+       * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
+       for gcse-las.
+
+2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR tree-optimization/44885
+       * tree-sra.c (find_param_candidates): Skip pointer types to arrays
+       with non-aliased component.
+
+2010-07-28  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/darwin-driver.c (SWITCH_TAKES_ARG,
+       WORD_SWITCH_TAKES_ARG): Remove.
+       * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
+       * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
+       DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
+       (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
+       definitions from gcc.c.
+       * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
+       defaults.h.
+       * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
+       Move to defaults.h.
+       * opts-common.c: Include tm.h.
+       (decode_cmdline_option): Use SWITCH_TAKES_ARG and
+       WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
+       Handle more than one argument.  Set canonical_option_num_elements.
+       (decode_cmdline_options_to_array): Set
+       canonical_option_num_elements and trailing elements of
+       canonical_option.
+       * opts.h (struct cl_decoded_option): Allow four elements in
+       canonical_option.  Add field canonical_option_num_elements.
+       * Makefile.in (opts-common.o): Update dependencies.
+
+2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/44790
+       PR middle-end/44993
+       * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
+       sure the base has address_mode before adding the offset.
+
+2010-07-27  Xinliang David Li <davidxl@google.com>
+
+       * tree-flow.h (create_mem_ref): Add one new parameter.
+       * tree-ssa-address.c (create_mem_ref): New parameter.
+       (addr_to_parts): Ditto.
+       (move_variant_to_index): New function.
+       * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
+
+2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
+       4 and 5.
+       * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
+       NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
+       NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
+       * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
+       CODE_LABELs and NOTEs.
+       * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
+       * combine.c (try_combine): Likewise.
+       * ira.c (setup_prohibited_mode_move_regs): Likewise.
+       * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
+
+2010-07-27  Joseph Myers  <joseph@codesourcery.com>
+
+       * coretypes.h (struct cl_option_handlers): Declare.
+       * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
+       * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
+       * langhooks-def.h (lhd_handle_option): Declare.
+       (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
+       * langhooks.c (lhd_handle_option): New.
+       * langhooks.h (struct lang_hooks): Update prototype and return
+       value type of handle_option hook.
+       * optc-gen.awk: Generate target_flags_explicit definition for the
+       driver.
+       * opts-common.c: Include diagnostic.h.
+       (handle_option): Move from opts.c.  Update prototype and return
+       value type.  Use handlers structure.
+       (read_cmdline_option): Move from opts.c.  Update prototype.  Use
+       handlers structure.
+       (set_option): Move from opts.c.
+       * opts.c (common_handle_option): Update prototype and return value
+       type.  Update calls to handle_option and enable_warning_as_error.
+       (unknown_option_callback, post_handling_callback,
+       lang_handle_option, target_handle_option): New.
+       (handle_option, read_cmdline_option): Move to opts-common.c.
+       (read_cmdline_options): Update prototype.  Update call to
+       read_cmdline_option.
+       (decode_options): Initialize and use handlers structure.
+       (set_option): Move to opts-common.c.
+       (enable_warning_as_error): Update prototype.  Update call to
+       handle_option.
+       * opts.h (struct cl_option_handler_func, struct
+       cl_option_handlers): New.
+       (handle_option, enable_warning_as_error): Update prototypes.
+       (read_cmdline_option): Declare.
+       * Makefile.in (opts-common.o): Update dependencies.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * config/arm/arm.c (params.h): Include.
+       (arm_override_options): Tune gcse-unrestricted-cost.
+       * config/arm/t-arm (arm.o): Define dependencies.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR target/42495
+       PR middle-end/42574
+       * basic-block.h (get_dominated_to_depth): Declare.
+       * dominance.c (get_dominated_to_depth): New function, use
+       get_all_dominated_blocks as a base.
+       (get_all_dominated_blocks): Use get_dominated_to_depth.
+
+       * gcse.c (occr_t, VEC (occr_t, heap)): Define.
+       (hoist_exprs): Remove.
+       (alloc_code_hoist_mem, free_code_hoist_mem): Update.
+       (compute_code_hoist_vbeinout): Add debug print outs.
+       (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
+
+       * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
+       quadratic behavior.
+       * params.h (MAX_HOIST_DEPTH): New macro.
+       * doc/invoke.texi (max-hoist-depth): Document.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR rtl-optimization/40956
+       * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
+       constants.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR target/42495
+       PR middle-end/42574
+       * config/arm/arm.c (legitimize_pic_address): Use
+       gen_calculate_pic_address pattern to emit calculation of PIC address.
+       (will_be_in_index_register): New function.
+       (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
+       (thumb1_legitimate_address_p): Use it provided !strict_p.
+       * config/arm/arm.md (calculate_pic_address): New expand and split.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR target/42495
+       PR middle-end/42574
+       * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
+       * config/arm/arm.md (define_split "J", define_split "K"): Make
+       IRA/reload friendly.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * gcse.c (insert_insn_end_basic_block): Update signature, remove
+       unused checks.
+       (pre_edge_insert, hoist_code): Update.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR target/42495
+       PR middle-end/42574
+       * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * gcse.c (hoist_code): Generate new pseudo for every new set insn.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       PR rtl-optimization/40956
+       PR target/42495
+       PR middle-end/42574
+       * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
+       for hoisting.
+       (hoist_code): Count occurences in current block too.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * gcse.c (struct expr:max_distance): New field.
+       (doing_code_hoisting_p): New static variable.
+       (want_to_gcse_p): Change signature.  Allow constrained hoisting of
+       simple expressions, don't change behavior for PRE.  Set max_distance.
+       (insert_expr_in_table): Set new max_distance field.
+       (hash_scan_set): Update.
+       (hoist_expr_reaches_here_p): Stop search after max_distance
+       instructions.
+       (find_occr_in_bb): New static function.  Use it in ...
+       (hoist_code): Calculate sizes of basic block before any changes are
+       done.  Pass max_distance to hoist_expr_reaches_here_p.
+       (one_code_hoisting_pass): Set doing_code_hoisting_p.
+
+       * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
+       (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
+       * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
+       macros.
+       * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
+       Document.
+
+2010-07-27  Jeff Law  <law@redhat.com>
+           Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * gcse.c (compute_transpout, transpout): Remove, move logic
+       to prune_expressions.
+       (compute_pre_data): Move pruning of trapping expressions ...
+       (prune_expressions): ... here.  New static function.
+       (compute_code_hoist_data): Use it.
+       (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
+
+2010-07-27  Xinliang David Li  <davidxl@google.com>
+
+       * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
+       (rewrite_use_address): Adjust iv update position when needed.
+
+2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * dbgcnt.def (hoist_insn): New debug counter.
+       * gcse.c (hoist_code): Use it.
+
+2010-07-27  Xinliang David Li  <davidxl@google.com>
+
+       * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
+       (niter_for_single_dom_exit): Passes additional parameter.
+       (iv_period): Fix comments.
+       (may_eliminate_iv): Handles multiple exit loops properly.
+       (free_tree_niter_desc): New function.
+       (free_loop_data): Frees up loop iteration descriptors.
+
+2010-07-27  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/44542
+       * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
+       of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
+       instead of MAX_SUPPORTED_STACK_ALIGNMENT.
+       (expand_one_var): Don't consider DECL_ALIGN for variables for
+       which expand_one_stack_var_at has been already called.
+
+       PR testsuite/44701
+       * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
+       constraints on IA-64.
+
+2010-07-27  Jie Zhang  <jie@codesourcery.com>
+
+       PR target/44290
+       Revert
+       2010-07-23  Jie Zhang  <jie@codesourcery.com>
+       * tree-sra.c (ipa_sra_preliminary_function_checks): Return
+       false if ! tree_versionable_function_p.
+
+2010-07-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (add_data_member_location_attribute): Use
+       add_AT_unsigned instead of add_AT_int if offset is non-negative.
+
+2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * postreload.c (try_replace_in_use): New static function.
+       (reload_combine_recognize_const_pattern): Use it here.  Allow
+       substituting into a final add insn, and substituting into a memory
+       reference in an insn that sets the reg.
+
+2010-07-27  Joseph Myers  <joseph@codesourcery.com>
+
+       * common.opt (o): Add MissingArgError.
+       * doc/options.texi (MissingArgError): Document.
+       * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
+       * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
+       * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
+       (LANG_HOOKS_INITIALIZER): Remove missing_argument hook
+       initializer.
+       * langhooks.h (struct lang_hooks): Remove missing_argument.
+       * optc-gen.awk: Handle MissingArgError and output new structure
+       field initializers.
+       * opts.c (read_cmdline_option): Use missing_argument_error field
+       instead of missing_argument langhook.
+       * opts.h (struct cl_option): Add missing_argument_error field.
+       * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
+
+2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
+
+       PR target/29090
+       * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
+       Darwin64 ABI, for zero-sized objects.
+
+2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
+
+       PR target/35491
+       PR target/29090
+
+       Merge from Apple local 4.2.1.
+       2005-05-11  Stan Shebs  <shebs@apple.com>
+       Fix 64-bit varargs for Darwin (Radar 4028089).
+       * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
+       * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
+       Add argument, add case for 8-byte register half-filled with a float.
+       (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
+       single-precision floats specially.
+
+2010-07-27  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/44152
+       * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
+       complex numbers for further check.
+       (vect_supported_load_permutation_p): Check nodes with 
+       complex numbers.
+
+2010-07-27  Joseph Myers  <joseph@codesourcery.com>
+
+       * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
+       LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
+       (LANG_HOOKS_INIT_OPTIONS): Update default definition.
+       (LANG_HOOKS_INITIALIZER): Add new hooks.
+       * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
+       * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
+       and complain_wrong_lang_p.  Update init_options prototype.
+       * c-objc-common.c (c_initialize_diagnostics): First call
+       c_common_initialize_diagnostics.
+       * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
+       LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
+       * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
+       * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
+       (hook_uint_void_0): New.
+       * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
+       (hook_uint_void_0): New.
+       * opts-common.c (decode_cmdline_option,
+       decode_cmdline_options_to_array): Also fill in canonical_option field.
+       * opts.c (complain_wrong_lang): Use langhook to determine whether
+       to complain instead of special-casing LTO.
+       (decode_options): Separate lang_mask determination with
+       option_lang_mask hook from call of init_options hook.
+       * opts.h (struct cl_decoded_option): Add canonical_option.
+
+2010-07-27  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/45083
+       * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
+
+2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * postreload.c (reload_combine_recognize_const_pattern): Move test
+       for limiting the insn movement to the right scope.
+
+       PR rtl-optimization/45051
+       * reload1.c (delete_output_reload): Use refers_to_regno_p rather
+       than reg_mentioned_p.
+
+2010-07-26  Richard Henderson  <rth@redhat.com>
+
+       PR target/44132
+       * tree-emutls.c: New file.
+       * Makefile.in (OBJS-common): Add it.
+       * tree-pass.h (pass_ipa_lower_emutls): Declare.
+       * passes.c (init_optimization_passes): Add it.
+
+       * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
+       pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
+       * expr.c (emutls_var_address): Delete.
+       (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
+       * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
+       (emutls_finish): Delete.
+       * toplev.c (compile_file): Don't call it.
+       * tree.h (emutls_decl): Delete.
+       * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
+       (emutls_finish, emutls_finalize_control_var): Delete.
+       (emutls_object_type): Move to tree-emutls.c.
+       (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
+       default_emutls_var_fields, get_emutls_object_type,
+       get_emutls_init_templ_addr, emutls_decl, emutls_common_1
+       default_emutls_var_init): Likewise.
+       (get_variable_section): Don't special case emutls.
+       (assemble_variable, do_assemble_alias, categorize_decl_for_section,
+       default_elf_select_section, default_unique_section,
+       default_encode_section_info): Likewise.
+       * varpool.c (decide_is_variable_needed): Likewise.
+       * gimple-iterator.c (update_call_edge_frequencies): New
+       (gsi_insert_on_edge_immediate): Use it.
+       (gsi_insert_seq_on_edge_immediate): Likewise.
+       (gsi_commit_one_edge_insert): Likewise.
+
+       * config/i386/i386.c (x86_64_elf_select_section): Don't handle
+       SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
+       (x86_64_elf_unique_section): Likewise.
+
+2010-07-26  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
+       GTY((skip)).
+
+2010-07-26  Anatoly Sokolov  <aesok@post.ru>
+
+       * target.def (output_source_filename): New hook.
+       * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
+       * doc/tm.texi: Regenerate.
+       * toplev.c (output_file_directive) Remove function.
+       * toplev.h (output_file_directive) Remove.
+       * output.h (default_asm_output_source_filename,
+       output_file_directive): Declare.
+       * varasm.h (default_asm_output_source_filename,
+       output_file_directive): New functions.
+
+       * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
+       * config/mips/mips-protos.h (mips_output_filename): Remove.
+       * config/mips/mips.c (mips_output_filename): Make Static.
+       (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
+
+2010-07-26  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/43784
+       * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
+       if the destination is used by the call.
+
+2010-07-26  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/45073
+       * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
+       SSA updating on being in SSA form.
+
+2010-07-26  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/45056
+       * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
+
+2010-07-26  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/45071
+       * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
+       adjust op->opcode.
+
+2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
+
+       * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
+       save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
+       save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
+       save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
+       save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
+       save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
+       save_r31, return_r31, save_interrupt, return_interrupt,
+       save_all_interrupt, return_all_interrupt, L_save_r2_r31,
+       L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
+       L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
+       new ABI requirements.
+       (save_r6_r9, L_callt_save_r6_r9): Remove.
+       * config/v850/predicates.md (even_reg_operand, disp23_operand,
+       const_float_1_operand const_float_0_operand): New Predicates.
+       (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
+       pattern_is_ok_for_epilogue): Update as per the ABI requirements.
+       * config/v850/t-v850: Update multilibs for new target variants.
+       (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
+       * config/v850/t-v850e: Likewise.
+       * config/v850/v850.c (v850_issue_rate): New.
+       (v850_strict_argument_naming): New.
+       (function_arg): Modify to generate a different ABI.
+       (print_operand): Update case 'z' to support float modes.
+       (output_move_single): Modify to generate appropriate and better
+       assembly.
+       (v850_float_z_comparison_operator, v850_select_cc_mode,
+       v850_float_nz_comparison_operator,  v850_gen_float_compare,
+       v850_gen_compare): New functions to support comparison of float values.
+       (ep_memory_offset): Add support for V850E2 targets.
+       (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
+       (INTERRUPT_REGPARM_NUM): Remove.
+       (compute_register_save_size): Add extra case to save/restore long call.
+       (use_prolog_function): New function to support prologue.
+       (expand_prologue): Add support for V850E2 targets and modified
+       as per the current ABI requirements.
+       (expand_epilogue): Likewise.
+       (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
+       (construct_save_jarl): Likewise.
+       (construct_dispose_instruction): Update as per the current ABI
+       requirements.
+       (construct_prepare_instruction): Likewise.
+       * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
+       (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
+       (CPP_SPEC): Updated to support v850e2 targets.
+       (STRICT_ALIGNMENT): Modified.
+       (FIRST_PSEUDO_REGISTER): Updated to add even registers.
+       (FIXED_REGISTERS): Likewise.
+       (CALL_USED_REGISTERS): Likewise.
+       (CONDITIONAL_REGISTER_USAGE): Updated.
+       (HARD_REGNO_MODE_OK): Updated.
+       (reg_class): Updated to add even registers.
+       (REG_CLASS_NAMES): Likewise.
+       (REG_CLASS_CONTENTS): Likewise.
+       (REGNO_REG_CLASS): Updated for CC registers.
+       (REG_CLASS_FROM_LETTER): Added support for even registers.
+       (REGNO_OK_FOR_BASE_P): Updated for CC registers.
+       (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
+       ARG_POINTER_REGNUM): Updated.
+       (FUNCTION_ARG_ADVANCE): Define.
+       (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
+       (OUTGOING_REG_PARM_STACK_SPACE): Remove.
+       (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
+       (GO_IF_LEGITIMATE_ADDRESS): Updated.
+       (SELECT_CC_MODE): Define.
+       (REGISTER_NAMES): Updated to add psw and fcc registers.
+       (ADDITIONAL_REGISTER_NAMES): Updated.
+       (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
+       (JUMP_TABLES_IN_TEXT_SECTION): Updated.
+       * config/v850/v850.md (define_constants): Define new constants.
+       (type): Update store,bit1,macc,div,fpu and single attributes.
+       (cpu): New attribute.
+       (cc): Add set_z attribute.
+       (unsign23byte_load, sign23byte_load, unsign23hword_load,
+       sign23hword_load, 23word_load, 23byte_store, 23hword_store,
+       23word_store): New instructions for 23-bit displacement load and store.
+       (movqi_internal, movhi_internal): Update the attributes.
+       (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
+       (movsi_internal_v850e, movsi_internal, movsf_internal): Update
+       the attributes.
+       (v850_tst1): Modified using CC_REGNUM.
+       (tstsi): Remove.
+       (cmpsi): Modified as define_expand from define_insn.
+       (cmpsi_insn, cmpsf, cmpdf): New instructions.
+       (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
+       udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
+       v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
+       one_cmplsi2): Clobber the CC_REGNUM register.
+       (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
+       v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
+       v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
+       (setf_insn, set_z_insn, set_nz_insn): New instructions for
+       v850e2v3 target.
+       (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
+       (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
+       targets.
+       (sasf_1, sasf_2): Remove.
+       (sasf): New instruction.
+       (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
+       targets. CC_REGNUM register is clobbered and attributes are
+       updated.
+       (branch_z_normal, branch_z_invert, branch_nz_normal,
+       branch_nz_invert): New branch related instructions.
+       (jump): Updated the attributes.
+       (switch): Update to support new targets. CC_REGNUM register is
+       clobbered and attributes are updated.
+       (call_internal_short, call_internal_long, call_value_internal_short,
+       call_value_internal_long): Updated the attributes.
+       (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
+       clobbered and attributes are updated.
+       (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
+       Update to support new targets. CC_REGNUM register is clobbered.
+       (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
+       instructions.
+       (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
+       are updated.
+       (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
+       divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
+       negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
+       floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
+       rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
+       cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
+       cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
+       cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
+       movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
+       movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
+       point instructions defined for V850e2v3 target.
+       (callt_save_interrupt, callt_return_interrupt, return_interrupt):
+       Add support for V850E2 targets and CC_REGNUM register is clobbered.
+       (callt_save_all_interrupt, callt_restore_all_interrupt): Add
+       support for new targets.
+       * config/v850/v850-modes.def: New file.
+       * config/v850/v850.opt(mstrict-align): Remove.
+       (mno-strict-align, mjump-tables-in-data-section, mv850e2,
+       mv850e2v3): New command line options for V850.
+       * config.gcc: Update the newly added files.
+       * doc/invoke.texi: Update the newly added command line options for
+       V850 target.
+
+2010-07-26  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/45052
+       * ipa-pure-const.c (check_stmt): Check volatileness.
+
+2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/44707
+       * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
+       * config/sparc/sparc.c: Include reload.h.
+       (legitimize_tls_address): Rename into...
+       (sparc_legitimize_tls_address): ...this.
+       (legitimize_pic_address): Rename into...
+       (sparc_legitimize_pic_address): ...this.
+       (sparc_expand_move): Adjust to above renaming.
+       (sparc_tls_referenced_p): Likewise.
+       (sparc_legitimize_tls_address): Likewise.
+       (sparc_legitimize_pic_address): Likewise.
+       (sparc_legitimize_address): Likewise.
+       (sparc_output_mi_thunk): Likewise.
+       (sparc_legitimize_reload_address): New global function.  Recognize
+       (lo_sum (high ...) ...) patterns generated by earlier passes.
+       * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
+
+2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/44484
+       * config/sparc/predicates.md (memory_reg_operand): Delete.
+       * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
+       (*sync_compare_and_swap): Encode the address form in the pattern.
+       (*sync_compare_and_swapdi_v8plus): Likewise.
+
+2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
+       Streamline paragraph on compatibility with the system compiler.
+
+2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR middle-end/45035
+       * alias.c (true_dependence_1): Fix thinko in merge of old
+       true_dependence and canon_true_dependence.
+
+2010-07-23  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer-out.c (write_symbol): Fix visibilities of external
+       references.
+
+2010-07-23  Le-Chun Wu  <lcwu@google.com>
+
+       * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
+       * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
+       and an unnecessary assignment.
+       * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
+       self-assign warning.
+       * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
+       unnecessary self-init.
+
+2010-07-23  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/43071
+       * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
+       for -flto and -fwhopr.
+
+2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
+
+       PR target/41943
+       * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
+       (stmp-int-hdrs): Prefix/postfix headers by include_next.
+       * config.gcc (user_headers_inc_next_pre): New.
+       (user_headers_inc_next_post): Likewise.
+       (*-w64-mingw*): Use for float.h post-fixing, and for
+       stddef.h/stdarg.h pre-fixing by include_next.
+       * configure.ac (user_headers_inc_next_post): New.
+       (user_headers_inc_next_pre): New.
+       * configure: Regenerated.
+
+2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac: Don't disable TLS on Solaris 8/9 by default
+       Set tga_func for Solaris 2/x86 resp. SPARC.
+       Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
+       (LIB_THREAD_LDFLAGS_SPEC): Define.
+       (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
+       -pthread, -threads, LIB_TLS_SPEC with -pthread.
+       * doc/install.texi (Specific, *-*-solaris2*): Document use of
+       alternate thread libraries on Solaris 8.
+       Document TLS patch requirements.
+       * doc/sourcebuild.texi (Add Options): Sort alphabetically.
+       Document tls.
+
+       PR target/18788
+       * config/sol2.h (LIB_SPEC): Link with thread libraries even with
+       -shared.
+
+2010-07-23  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree.h (struct tree_base): Add nameless_flag bitfield.
+       (TYPE_NAMELESS, DECL_NAMELESS): Define.
+       * omp-low.c (create_omp_child_function, scan_omp_parallel,
+       scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
+       DECL_ARTIFICIAL where needed.
+       * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
+       (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
+       has DECL_NAMELESS set.
+
+2010-07-23  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/44915
+       * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
+       * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
+       (analyze_function): Likewise.
+
+2010-07-23  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/44914
+       * tree-sra.c (sra_modify_function_body): Return true if CFG was
+       changed, add purging dead eh edges.
+       (ipa_sra_modify_function_body): Return true if CFG was changed,
+       simplify purging dead eh edges.
+       (modify_function): Return true if CFG was changed.
+       (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
+       was changed.
+       (ipa_early_sra): Likewise.
+
+2010-07-23  Jie Zhang  <jie@codesourcery.com>
+
+       PR target/44290
+       * attribs.c (decl_attributes): Insert "noinline" and "noclone"
+       if "naked".
+       * tree-sra.c (ipa_sra_preliminary_function_checks): Return
+       false if ! tree_versionable_function_p.
+
+2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * builtins.def (BUILT_IN_ARGS_INFO): Remove.
+       * ipa-pure-const.c (special_builtlin_state): Remove
+       BUILT_IN_ARGS_INFO case.
+       * tree-stdarg.c (execute_optimize_stdarg): Likewise.
+       * builtins.c (expand_builtin): Likewise.
+       (expand_builtin_args_info): Remove.
+       * doc/tm.texi (__builtin_args_info): Remove.
+       (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
+       * doc/tm.text.in: Likewise.
+
+2010-07-23  Richard Guenther  <rguenther@suse.de>
+
+       * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
+       (lto_symtab_merge_decls_2): Likewise.
+       * tree-ssa.c (useless_type_conversion_p): Likewise.
+       * lto-streamer-in.c (input_gimple_stmt): Likewise.
+       * gimple.c (gtc_visited2, gtc_ob2): Remove.
+       (struct type_pair_d): Make same_p an array indexed by mode.
+       Update comment.
+       (lookup_type_pair): Update initialization.
+       (struct sccs): Adjust same_p type.
+       (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
+       Adjust.
+       (print_gimple_types_stats): Likewise.
+       * gimple.h (enum gtc_mode): New.
+       (gimple_types_compatible_p): Adjust prototype.
+
+2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
+       again after processing insn.
+
+2010-07-23  Jie Zhang  <jie@codesourcery.com>
+
+       * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
+       proper words when !tree_versionable_function_p.
+
+2010-07-23  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/45037
+       * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
+
+2010-07-23  Jie Zhang  <jie@codesourcery.com>
+
+       * doc/extend.texi: Remove IP2K from the description of naked attribute.
+       Add MCORE instead.
+
+2010-07-10  Andi Kleen  <ak@linux.intel.com>
+
+       PR lto/44992
+       * lto-opts.c (lto_write_options): Add NULL file_data argument to
+       lto_get_section_name.
+       * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
+       * lto-streamer-out.c (produce_asm): Likewise.
+       (copy_function): Likewise.
+       (produce_symtab): Likewise.
+       (produce_asm_for_decls): Likewise.
+       * lto-streamer.c (lto_get_section_name): Add file_data argument.
+       Rewrite to add random postfix to LTO sections.
+       * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
+       (lto_get_section_name): Add file_data argument to prototype.
+
+2010-07-10  Andi Kleen  <ak@linux.intel.com>
+
+       * lto-section-in.c (lto_section_name): Synchronize names
+       with lto_get_section_name.
+
+2010-07-10  Andi Kleen  <ak@linux.intel.com>
+
+       * lto-opts.c (lto_read_file_options): Check for missing section.
+
+2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * ira.c (check_allocation): Correctly handle the case where an allocno
+       with two objects was allocated to a single reg.
+
+2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
+       (is_widening_mult_p): Likewise.
+       (convert_to_widen): Use them.
+       (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
+       well as integer ones.
+
+2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * alias.c (true_dependence_1): New function, merged version of
+       true_dependence and canon_true_dependence.
+       (true_dependence): Simplify.
+       (canon_true_dependence): Simplify.
+
+2010-07-22  Richard Henderson  <rth@redhat.com>
+
+       PR target/45027
+       * config/i386/i386.c (setup_incoming_varargs_64): Force the use
+       of V4SFmode for the SSE saves; increase stack alignment if needed.
+       (ix86_gimplify_va_arg): Don't increase stack alignment here.
+
+2010-07-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/45028
+       * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
+       call cprop_find_used_regs again via note_uses.
+
+2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * alias.c (get_alias_set): Fix formatting issues.
+
+2010-07-22  Steve Ellcey  <sje@cup.hp.com>
+
+       PR middle-end/44878
+       * stmt.c (expand_value_return):  Call promote_function_mode with
+       a for_return argument of 2 when returning by reference.
+
+2010-07-22  Dodji Seketeli  <dodji@redhat.com>
+
+       PR debug/45024
+       * dwarf2out.c (scope_die_for): Don't fall back to the compilation
+       unit DIE if we can find the scope DIE.
+
+2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * ira-build.c (ira_create_object): New arg SUBWORD; all callers
+       changed.  Initialize OBJECT_SUBWORD.
+       (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
+       (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
+       all callers changed.
+       (merge_hard_reg_conflicts): Iterate over allocno subobjects.
+       (finish_allocno): Likewise.
+       (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
+       (remove_low_level_allocnos): Likewise.
+       (update_bad_spill_attribute): Likewise.
+       (setup_min_max_allocno_live_range_point): Likewise.
+       (sort_conflict_id_map): Likewise.
+       (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
+       (ior_hard_reg_conflicts): New function.
+       (ior_allocate_object_conflicts): Renamed first argument to OBJ.
+       (compress_conflict_vecs): Iterate over objects, not allocnos.
+       (ira_add_live_range_to_object): New function.
+       (object_range_compare_func): Renamed from allocno_range_compare_func.
+       All callers changed.
+       (setup_min_max_conflict_allocno_ids): For allocnos with multiple
+       subobjects, widen the min/max range of the lowest-order object to
+       potentially include all other such low-order objects.
+       * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
+       (check_allocation): Likewise.  Use more fine-grained tests for register
+       conflicts.
+       * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
+       allocno subobjects.
+       (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
+       choices about which bits to set in each set.  Don't use
+       ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
+       using the multiple sets we computed.
+       (push_allocno_to_stack): Iterate over allocno subobjects.
+       (all_conflicting_hard_regs_coalesced): New static function.
+       (setup_allocno_available_regs_num): Use it.
+       (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
+       subobjects.
+       (coalesced_allocno_conflict): Test subobject 0 in each allocno.
+       (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
+       by ALLOCNO_NUM_OBJECTS.
+       (calculate_spill_cost): Likewise.
+       (color_pass): Express if statement in a more normal way.
+       (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
+       (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
+       (setup_slot_coalesced_allocno_live_ranges): Likewise.
+       (allocno_reload_assign): Likewise.
+       (ira_reassign_pseudos): Likewise.
+       (fast_allocation): Likewise.
+       * ira-conflicts.c (build_conflict_bit_table): Likewise.
+       (print_allocno_conflicts): Likewise.
+       (ira_build_conflicts): Likewise.
+       (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
+       callers changed.  Test subword 0 of each allocno for conflicts.
+       (build_object_conflicts): Renamed from build_allocno_conflicts.  All
+       callers changed.  Iterate over allocno subobjects.
+       * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
+       * ira-int.h (struct ira_allocno): New member: num_objects.
+       Rename object to objects and change it into an array.
+       (ALLOCNO_OBJECT): Add new argument N.
+       (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
+       (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
+       (ior_hard_reg_conflicts): Declare.
+       (ira_add_live_range_to_object): Declare.
+       (ira_allocno_object_iterator): New.
+       (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
+       (FOR_EACH_ALLOCNO_OBJECT): New macro.
+       * ira-lives.c (objects_live): Renamed from allocnos_live; all
+       uses changed.
+       (allocnos_processed): New sparseset.
+       (make_object_born): Renamed from make_allocno_born; take an
+       ira_object_t argument.  All callers changed.
+       (make_object_dead): Renamed from make_allocno_dead; take an
+       ira_object_t argument.  All callers changed.
+       (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
+       All callers changed.
+       (mark_pseudo_regno_live): Iterate over allocno subobjects.
+       (mark_pseudo_regno_dead): Likewise.
+       (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
+       functions.
+       (mark_ref_live): Detect subword accesses and call
+       mark_pseudo_regno_subword_live as appropriate.
+       (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
+       (process_bb_nodes_live): Deal with object-related updates first; set
+       and test bits in allocnos_processed to avoid computing allocno
+       statistics more than once.
+       (create_start_finish_chains): Iterate over objects, not allocnos.
+       (print_object_live_ranges): New function.
+       (print_allocno_live_ranges): Use it.
+       (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
+       and objects_live.
+
+2010-07-22  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/42451
+       * gimple.c (gtc_next_dfs_num): New global.
+       (struct sccs): Make value a union, add integer same_p member.
+       (gtc_visit): New function.
+       (gimple_types_compatible_p_1): New function, split out from ...
+       (gimple_types_compatible_p): ... here.  Start a DFS walk here.
+       (iterative_hash_gimple_type): Adjust for sccs change.
+
+2010-07-22  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/44891
+       * tree-sra.c: Include gimple-pretty-print.h.
+       (replace_uses_with_default_def_ssa_name): Renamed to
+       get_repl_default_def_ssa_name, return the new SSA name instead of
+       replacing the old one.
+       (sra_modify_assign): Dump a message when removing a load, if the LHS
+       is an SSA_NAME, do not do any propagation, just set the RHS to a
+       default definition SSA NAME, type convert if necessary.
+       * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
+
+2010-07-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/45017
+       * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
+       TYPE_PRECISION of integral types in addition to size.
+
+2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
+       when no C library is specified.
+
+2010-07-22  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.h (struct ipa_node_params): Updated comment.
+       (struct ipa_edge_args): Likewise.
+       * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
+
+2010-07-22  Martin Jambor  <mjambor@suse.cz>
+
+       * cgraphunit.c (verify_edge_count_and_frequency): New function.
+       (verify_cgraph_node): Verify frequencies of indirect edges.
+       * tree-inline.c (tree_function_versioning): Update frequencies of
+       indirect edges.
+
+2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       PR target/43698
+       * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
+       Set *arm_rev to be predicable.
+
+2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * config/darwin.h (LINK_COMMAND_SPEC): Split into...
+       (LINK_COMMAND_SPEC_A): New.
+       (DSYMUTIL): New.
+       (DSYMUTIL_SPEC): New.
+       * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
+       (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
+
+2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * calls.c (load_register_parameters): Move check for zero
+       sized items so that only the call to
+       mem_overlaps_already_clobbered_arg_p () is protected.
+
 2010-07-22  Jan Hubicka  <jh@suse.cz>
 
        * ipa-pure-const.c (varying_state): Break out from ...
        (reload_combine_closest_single_use): Don't take DEBUG_INSNs
        into account.
        (fixup_debug_insns): Don't copy the rtx.
-       (reload_combine_recognize_const_pattern): DEBUG_INSNs can't
-       have uses.  Don't copy when replacing.  Call fixup_debug_insns
-       in the case where we merged one add with another.
-       (reload_combine_recognize_pattern): Fail if there aren't any
-       uses.  Try harder to determine whether we're picking a valid
-       index register.  Don't set store_ruid for an insn we're going
-       to scan in the next iteration.
+       (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
+       Don't copy when replacing.  Call fixup_debug_insns in the case where
+       we merged one add with another.
+       (reload_combine_recognize_pattern): Fail if there aren't any uses.
+       Try harder to determine whether we're picking a valid index register.
+       Don't set store_ruid for an insn we're going to scan in the
+       next iteration.
        (reload_combine): Remove unused code.
        (reload_combine_note_use): When updating use information for
        an old insn, ignore a use that occurs after store_ruid.
 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
 
        PR debug/45003
-       * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of
-       a MEM.
+       * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
        * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
        ZERO_EXTEND here.
 
        * gimple.h (gimple_types_compatible_p): Declare.
        * gimple.c (gimple_queue_type_fixup): Remove.
        (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
-       (gimple_compatible_complete_and_incomplete_type_p): New
-       function.
+       (gimple_compatible_complete_and_incomplete_type_p): New function.
        (gimple_types_compatible_p): Adjust.
        (gimple_register_type): Remove type fixup code.
        (print_gimple_types_stats): Adjust.
 2010-07-19  Xinliang David Li  <davidxl@google.com>
 
        PR testsuite/44932
-       * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting def edges.
+       * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
+       def edges.
        (find_uninit_use): Add dump.
        (is_use_properly_guarded): Ditto.
        (warn_uninitialized_phi): Ditto.
 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
 
        * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
-        of a loop.
-        * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
+       of a loop.
+       * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
 
 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
 
        * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
        Remove out of date comment.
        * config/rs6000/rs6000.c (print_operand): Adjust symbol.
-       DARWIN_LINKER_GENERATES_ISLANDS: Remove.
-       DARWIN_GENERATE_ISLANDS: Ditto.
+       (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
+       (DARWIN_GENERATE_ISLANDS): Ditto.
        (output_call):  Do not emit branch islands unless
        darwin_emit_branch_islands is set.
        * config/darwin.c: Declare darwin_emit_branch_islands.
        darwin_emit_branch_islands is set.
        (darwin_override_options): Set darwin_emit_branch_islands
        where it is needed.
-       * config/darwin9.h
-       DARWIN_LINKER_GENERATES_ISLANDS: Remove.
+       * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
 
 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
 
 2010-07-15  Jan Hubicka  <jh@suse.cz>
 
-       * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling comdats
-       for broken gold.
-       (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly. 
+       * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
+       comdats for broken gold.
+       (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
 
 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
 
 
        * cgraph.c: Include lto-streamer.h
        (change_decl_assembler_name): Work when assembler name hash is at place.
-       (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage, be
-       sure to rename it to avoid name clash.
+       (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
+       be sure to rename it to avoid name clash.
        * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
        Localize hidden symbols only when locally defined.
 
 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
 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * Makefile.in (target-globals.o): Depend on $(RTL_H).
-       * rtl.h: (target_rtl): New structure.
+       * 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):
        (get_asm_expr_operands): Pass opf_not_non_addressable.
        (get_expr_operands): Handle opf_[not_]non_addressable.
        Handle MEM_REF.  Remove INDIRECT_REF handling.
-       * tree-vrp.c: (check_array_ref): Handle MEM_REF.
+       * tree-vrp.c (check_array_ref): Handle MEM_REF.
        (search_for_addr_array): Likewise.
        (check_array_bounds): Likewise.
        (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
        * targhooks.h (default_register_move_cost): Declare function.
        * defaults.h (REGISTER_MOVE_COST): Delete.
        * ira-int.h (ira_register_move_cost): Update comment.
-       * ira.c: (ira_register_move_cost): Update comment.
+       * ira.c (ira_register_move_cost): Update comment.
        * reload.h (register_move_cost): Declare.
        * reginfo.c (register_move_cost): New function.
        (move_cost): Update comment.
 
 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
 
-       * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
+       * coretypes.h (gimple_seq_node_d, gimple_seq_node)
        (const_gimple_seq_node): Removed typedefs.
 
-       * gimple.h: (gimple_seq_node_d, gimple_seq_node)
+       * gimple.h (gimple_seq_node_d, gimple_seq_node)
        (const_gimple_seq_node): Added typedefs moved from coretypes.h.
 
 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
        * reginfo.c (memory_move_cost): New function.
        (memory_move_secondary_cost): Change type of 'in' argument to bool.
        * ira.h (ira_memory_move_cost): Update comment.
-       * ira.c: (ira_memory_move_cost): Update comment.
+       * ira.c (ira_memory_move_cost): Update comment.
        (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
        with memory_move_cost.
        * postreload.c (reload_cse_simplify_set): (Ditto.).
        * sel-sched.c: Include emit-rtl.h.
        * sel-sched-ir.c: Include emit-rtl.h.
        * ira-build.c: Include emit-rtl.h.
-       * emit-rtl.c: (first_insn, last_insn): Remove defines.
+       * emit-rtl.c (first_insn, last_insn): Remove defines.
        (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
        Move to emit-rtl.h.
        (set_new_first_and_last_insn, get_last_insn_anywhere,
        debug_tree_chain): Likewise.
        * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
        * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
-       * optabs.c  (debug_optab_libfuncs): Likewise.
+       * optabs.c (debug_optab_libfuncs): Likewise.
        (verify_loop_closed_ssa): Likewise.
        * value-prof.c (verify_histograms): Likewise.
        * reload.c (debug_reload_to_stream, debug_reload): Likewise.
        * toplev.c (general_init): Set global_dc->internal_error.
        * Makefile.in (diagnostic.o): Update dependencies.
 
-2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
+2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
 
        * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
        * config/rs6000/t-darwin64: New.
        * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
        and immed_double_int_const functions.
        * optabs.c (expand_absneg_bit, expand_copysign_absneg,
-       expand_copysign_bit):  (Ditto.).
+       expand_copysign_bit): (Ditto.).
        * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
        * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
        * dojump.c (prefer_and_bit_test): (Ditto.).
 2010-02-16  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/41043
-       * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
+       * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
        (vrp_visit_assignment_or_call): Do not ask SCEV for regular
        statements ...
        (vrp_visit_phi_node): ... but only for loop PHI nodes.