+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.