summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog3905
1 files changed, 3833 insertions, 72 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index af1148791b9..0a566ff5432 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,3779 @@
+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 ...
+ (get_function_state): ... here; always return varying_state
+ when state would be NULL otherwise.
+ (remove_node_data): Do not free varying state.
+
+2010-07-22 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR bootstrap/44970
+ PR middle-end/45009
+ * postreload.c: Include "target.h".
+ (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): Remove unused code.
+ (reload_combine_note_use): When updating use information for
+ an old insn, ignore a use that occurs after store_ruid.
+ * Makefile.in (postreload.o): Update dependencies.
+
+ * function.c (record_hard_reg_sets): Restrict the previous change
+ to cases where the incoming nominal mode is the same as the
+ incoming promoted mode and everything happens in MODE_INT.
+
+2010-07-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/45015
+ * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
+ ASM_OPERANDS_OUTPUT_IDX.
+ (adjust_insn): For inline asm with multiple sets ensure first
+ ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
+ the insn.
+
+2010-07-21 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
+ comparison for avoiding xmm register saves. Emit the xmm register
+ saves explicitly.
+ * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
+ (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
+ (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
+ Remove patterns and the associated splitters.
+
+2010-07-21 Changpeng Fang <changpeng.fang@amd.com>
+
+ * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
+ and imagine parts of a complex, so that they can have the same
+ base and fall into the same group.
+
+2010-07-21 Richard Guenther <rguenther@suse.de>
+
+ PR lto/45018
+ * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
+ of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
+ TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
+
+2010-07-21 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/44900
+ * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
+ (sra_modify_assign): Move gsi to the next statmenent unconditionally.
+
+2010-07-21 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR middle-end/44738
+ * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
+
+2010-07-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/45013
+ * tree-ssa.c (useless_type_conversion_p): Dispatch to
+ gimple_types_compatible_p only when in lto.
+ * gimple.c (gimple_types_compatible_p): Use canonical types
+ to speed up comparison.
+
+2010-07-21 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow.h (referenced_var): Move define ...
+ * tree-flow-inline.h (referenced_var): ... here as an inline
+ function. Assert here ...
+ * tree-dfa.c (referenced_var_lookup): ... instead of here.
+ * tree-ssa.c (maybe_optimize_var): Check if the variable
+ is in referenced vars.
+ (execute_update_addresses_taken): Remove old broken check.
+ * gimple-pretty-print.c (pp_points_to_solution): Use
+ referenced_var_lookup.
+ * tree-into-ssa.c (dump_decl_set): Likewise.
+
+2010-07-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/45003
+ * 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.
+
+2010-07-20 Richard Henderson <rth@redhat.com>
+
+ * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
+
+2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
+
+ * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
+ computing the sum of the stack pointer and a large constant.
+ * config/arm/constraints.md (M): Remove superfluous parentheses.
+ (Pc): New constraint.
+
+2010-07-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/45006
+ * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
+ operand's type if exp is tcc_unary class tree.
+
+2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
+ Reverse sense of if_then_else condition.
+
+2010-07-20 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
+ * config/rs6000/rs6000.c (rs6000_override_options): Set
+ rs6000_block_move_inline_limit appropriately.
+ (expand_block_move): Use rs6000_block_move_inline_limit.
+ * doc/invoke.texi (mblock-move-inline-limit): Document.
+
+2010-07-20 Bernd Schmidt <bernds@codesourcery.com>
+
+ * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
+ FROM and TO. All callers changed. Don't look for tracked uses,
+ just scan the RTL for DEBUG_INSNs and substitute.
+ (reload_combine_recognize_pattern): Call fixup_debug_insns.
+ (reload_combine): Ignore DEBUG_INSNs.
+
+2010-07-20 Jakub Jelinek <jakub@redhat.com>
+
+ * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
+ depth to 8 from 5.
+
+ PR debug/45003
+ * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
+ or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
+ instead of the result's type.
+
+2010-07-20 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44977
+ * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
+ SSA form.
+
+2010-07-20 Richard Guenther <rguenther@suse.de>
+
+ * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
+ (lto_symtab_merge_decls_2): Likewise.
+ * 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_types_compatible_p): Adjust.
+ (gimple_register_type): Remove type fixup code.
+ (print_gimple_types_stats): Adjust.
+ (free_gimple_type_tables): Likewise.
+ * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
+ * tree-ssa.c (useless_type_conversion_p): Likewise.
+
+2010-07-20 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44971
+ PR middle-end/44988
+ * tree-ssa.c (maybe_optimize_var): New function split out from ...
+ (execute_update_addresses_taken): ... here.
+ (non_rewritable_mem_ref_base): Likewise.
+ (execute_update_addresses_taken): Do not iterate over all referenced
+ vars but just all local decls and parms.
+ Properly check call and asm arguments and rewrite call arguments.
+
+2010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
+ to top level.
+ * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
+ definitions ...
+ * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
+ New macro.
+ * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
+
+2010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gengtype.c (start_root_entry): New function, split out from
+ write_root. Check whether V is null and raise an error if so.
+ (write_field_root): Check for V being null. Don't raise an error here;
+ set V to null instead.
+ (write_root): Update comment above function. Use start_root_entry.
+
+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.
+ (find_uninit_use): Add dump.
+ (is_use_properly_guarded): Ditto.
+ (warn_uninitialized_phi): Ditto.
+ (execute_late_warn_uninitialized): Ditto.
+
+2010-07-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44941
+ * expr.c (emit_block_move_hints): Move zero size check first.
+ Move asserts to more useful places.
+ * calls.c (load_register_parameters): Check for zero size.
+
+2010-07-19 Richard Henderson <rth@redhat.com>
+
+ * tree-optimize.c (execute_all_early_local_passes): New. Change
+ cgraph_state here ...
+ (execute_early_local_optimizations): ... not here. Remove.
+ (pass_early_local_passes, pass_all_early_optimizations): Update.
+
+2010-07-19 Bernd Schmidt <bernds@codesourcery.com>
+
+ * postreload.c (reload_combine_closest_single_use): Ignore the
+ number of uses for DEBUG_INSNs.
+ (fixup_debug_insns): New static function.
+ (reload_combine_recognize_const_pattern): Use it. Don't let the
+ main loop be affected by DEBUG_INSNs.
+ Really disallow moving adds past a jump insn.
+ (reload_combine_recognize_pattern): Don't update use_ruid here.
+ (reload_combine_note_use): Do it here.
+ (reload_combine): Use control_flow_insn_p rather than JUMP_P.
+
+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.
+
+2010-07-19 Iain Sandoe <iains@gcc.gnu.org>
+
+ * config/i386/darwin.h: Define darwin_emit_branch_islands.
+ (TARGET_MACHO_BRANCH_ISLANDS): New.
+ (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
+ * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
+ default value.
+ * config/i386/i386.c (output_pic_addr_const): Do not emit
+ branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
+ (x86_output_mi_thunk): Adjust symbol creation.
+ * 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.
+ (output_call): Do not emit branch islands unless
+ darwin_emit_branch_islands is set.
+ * config/darwin.c: Declare darwin_emit_branch_islands.
+ (machopic_indirect_data_reference): Do not emit unless
+ 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.
+
+2010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * doc/sourcebuild.texi (Effective-Target Keywords): Document
+ sse_runtime, sse2_runtime.
+
+2010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
+ low half of a single-register SCmode return value before ORing
+ it with the high half.
+ * config/mips/mips16.S (MERGE_GPRf): Likewise.
+
+2010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/44805
+ * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
+ on all targets.
+
+2010-07-17 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR target/42235
+ * postreload.c (reload_cse_move2add): Return bool, true if anything.
+ changed. All callers changed.
+ (move2add_use_add2_insn): Likewise.
+ (move2add_use_add3_insn): Likewise.
+ (reload_cse_regs): If reload_cse_move2add changed anything, rerun
+ reload_combine.
+ (RELOAD_COMBINE_MAX_USES): Bump to 16.
+ (last_jump_ruid): New static variable.
+ (struct reg_use): New members CONTAINING_MEM and RUID.
+ (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
+ (reload_combine_split_one_ruid, reload_combine_split_ruids,
+ reload_combine_purge_insn_uses, reload_combine_closest_single_use
+ reload_combine_purge_reg_uses_after_ruid,
+ reload_combine_recognize_const_pattern): New static functions.
+ (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
+ is true for our reg and that we have available index regs.
+ (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
+ callers changed. Use them to initialize fields in struct reg_use.
+ (reload_combine): Initialize last_jump_ruid. Be careful when to
+ take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
+ Call reload_combine_recognize_const_pattern.
+ (reload_combine_note_store): Update REAL_STORE_RUID field.
+
+2010-07-16 Jason Merrill <jason@redhat.com>
+
+ * Makefile.in (opts-common.o): Depend on options.h.
+
+2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.c (build_common_builtin_nodes): Use build_function_type_list
+ instead of build_function_type.
+ * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
+ * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
+
+2010-07-16 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
+ do all the work.
+ (rs6000_emit_int_cmove): Use function pointers for insn generation.
+ Don't force values into registers unnecessarily.
+ (output_isel): Assert that we're not given conditions we can't handle.
+ Delete corresponding code.
+ * config/rs6000/rs6000.md (isel_signed_<mode>): Use
+ scc_comparison_operator constraint. Permit 0 for the consequent
+ operand. Permit any GPR for the alternative operand.
+ (isel_unsigned_<mode>): Likewise.
+
+2010-07-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/44942
+ * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
+ argument to const_tree.
+ * config/i386/i386.c (function_arg_advance): If padding needs to be
+ inserted before argument, increment cum->words by number of padding
+ words as well.
+ (contains_aligned_value_p): Change argument to const_tree.
+ (ix86_function_arg_boundary): Change second argument to const_tree.
+
+2010-07-16 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR target/42235
+ * function.c (record_hard_reg_sets): New static function.
+ (assign_parm_setup_reg): If an optab for extending exists and the
+ generated code clobbbers no hard regs, emit the insn directly and
+ create a REG_EQUIV note.
+
+2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
+
+ * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
+ TREE_CHAIN.
+ * c-typeck.c (push_init_level): Likewise.
+ (process_init_element): Likewise.
+
+2010-07-15 Anatoly Sokolov <aesok@post.ru>
+
+ * tree.h (enum tree_index): Add TI_INTEGER_THREE.
+ (integer_three_node): Add.
+ * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
+ NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
+ * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
+ of call build_int_cst.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
+ * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
+ (find_interesting_uses_address): Ditto.
+ * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
+ * tree-eh.c (lower_eh_constructs_2): Ditto.
+ * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
+ * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
+ * expmed.c (expand_divmod): Ditto.
+ * tree-mudflap.c (mx_register_decls): Ditto.
+ * varasm.c (array_size_for_constructor): Ditto.
+ * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
+ * c-parser.c (c_parser_postfix_expression): Ditto.
+
+2010-07-15 Bernd Schmidt <bernds@codesourcery.com>
+
+ * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
+ New static variables.
+ (reload_combine_recognize_pattern): New static function, broken out
+ of reload_combine.
+ (reload_combine): Use it. Only initialize first_index_reg and
+ last_index_reg once.
+
+2010-07-15 Richard Henderson <rth@redhat.com>
+
+ * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
+ when done.
+
+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.
+
+2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
+
+2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (DECL_CHAIN): Define.
+ * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
+ * c-decl.c: Likewise.
+ * c-parser.c: Likewise.
+ * c-typeck.c: Likewise.
+ * cfgexpand.c: Likewise.
+ * cgraph.c: Likewise.
+ * cgraphunit.c: Likewise.
+ * combine.c: Likewise.
+ * config/alpha/alpha.c: Likewise.
+ * config/arm/arm.c: Likewise.
+ * config/frv/frv.c: Likewise.
+ * config/i386/i386.c: Likewise.
+ * config/i386/winnt-cxx.c: Likewise.
+ * config/ia64/ia64.c: Likewise.
+ * config/iq2000/iq2000.c: Likewise.
+ * config/mep/mep.c: Likewise.
+ * config/mips/mips.c: Likewise.
+ * config/pa/som.h: Likewise.
+ * config/rs6000/rs6000.c: Likewise.
+ * config/s390/s390.c: Likewise.
+ * config/sh/sh.c: Likewise.
+ * config/sh/symbian-cxx.c: Likewise.
+ * config/sparc/sparc.c: Likewise.
+ * config/spu/spu.c: Likewise.
+ * config/stormy16/stormy16.c: Likewise.
+ * config/vxworks.c: Likewise.
+ * config/xtensa/xtensa.c: Likewise.
+ * coverage.c: Likewise.
+ * dbxout.c: Likewise.
+ * dwarf2out.c: Likewise.
+ * emit-rtl.c: Likewise.
+ * expr.c: Likewise.
+ * function.c: Likewise.
+ * gimple-low.c: Likewise.
+ * gimple-pretty-print.c: Likewise.
+ * gimplify.c: Likewise.
+ * integrate.c: Likewise.
+ * ipa-inline.c: Likewise.
+ * ipa-prop.c: Likewise.
+ * ipa-split.c: Likewise.
+ * ipa-struct-reorg.c: Likewise.
+ * ipa-type-escape.c: Likewise.
+ * langhooks.c: Likewise.
+ * lto-cgraph.c: Likewise.
+ * omp-low.c: Likewise.
+ * stor-layout.c: Likewise.
+ * tree-cfg.c: Likewise.
+ * tree-complex.c: Likewise.
+ * tree-dfa.c: Likewise.
+ * tree-dump.c: Likewise.
+ * tree-inline.c: Likewise.
+ * tree-mudflap.c: Likewise.
+ * tree-nested.c: Likewise.
+ * tree-object-size.c: Likewise.
+ * tree-pretty-print.c: Likewise.
+ * tree-sra.c: Likewise.
+ * tree-ssa-live.c: Likewise.
+ * tree-ssa-loop-niter.c: Likewise.
+ * tree-ssa-math-opts.c: Likewise.
+ * tree-ssa-reassoc.c: Likewise.
+ * tree-ssa-sccvn.c: Likewise.
+ * tree-ssa-structalias.c: Likewise.
+ * tree-tailcall.c: Likewise.
+ * tree-vrp.c: Likewise.
+ * tree.c: Likewise.
+ * var-tracking.c: Likewise.
+ * varasm.c: Likewise.
+
+2010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ PR target/44877
+ * config/spu/spu.c (spu_expand_builtin_1): Allow references
+ (as well as pointers) as argument to mask_for_load builtins.
+
+2010-07-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44946
+ * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
+ with accessing only padding properly.
+
+2010-07-15 Jan Hubicka <jh@suse.cz>
+
+ * ipa.c (function_and_variable_visibility): Variables marked as used
+ should not be localized.
+
+2010-07-15 Jan Hubicka <jh@suse.cz>
+
+ * 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.
+ * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
+ Localize hidden symbols only when locally defined.
+
+2010-07-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
+
+2010-07-15 Magnus Granberg <zorry@gentoo.org>
+ Kevin F. Quinn <kevquinn@gentoo.org>
+
+ * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
+ * common.opt: Add -Wtrampolines.
+ * doc/invoke.texi: Add -Wtrampolines.
+
+2010-07-15 Jie Zhang <jie@codesourcery.com>
+
+ * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
+ cortex_a8_issue_ls.
+
+2010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
+ * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
+
+2010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.c (reg_names): Remove prototype.
+ (call_used_regs): Likewise.
+
+2010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
+ "unused" with attribute "used".
+ (__JCR_END__): Likewise.
+ * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
+ "used" attribute.
+ (__JCR_LIST__): Replace attribute "unused" with attribute "used".
+
+2010-07-14 Richard Guenther <rguenther@suse.de>
+
+ * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
+ (maybe_fixup_decls): Likewise.
+ (input_gimple_stmt): Do not fixup anything.
+ * lto-streamer-out.c (output_gimple_stmt): Make sure all
+ non-automatic variable uses are wrapped inside a MEM_REF.
+
+2010-07-14 Richard Henderson <rth@redhat.com>
+
+ * passes.c (rest_of_decl_compilation): Do not call assemble_variable
+ for functions.
+ * varasm.c (assemble_variable): Remove early exit for functions;
+ assert that we're given a variable.
+
+2010-07-14 Jie Zhang <jie@codesourcery.com>
+
+ * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
+ cortex_a8_default when neon_type is not none.
+
+2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
+
+ * lower-subreg.c (subreg_context): New static bitmap.
+ (decompose_multiword_subregs): Allocate and free it.
+ (find_decomposable_subregs): Set a bit in it for a register that
+ occurs in a subreg that changes mode but not size.
+ (can_decompose_p): Test it instead of non_decomposable_context.
+
+2010-07-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44824
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
+ is_gimple_mem_ref_addr.
+ (tree_ssa_forward_propagate_single_use_vars): Do not propagate
+ non-decl_address_invariant_p addresses.
+
+2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
+
+ * reload.c (find_reloads): Revert code to penalize small register
+ classes that was brought in with the IRA merge.
+
+2010-07-14 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
+ as base of ARRAY_REFs.
+
+2010-07-14 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44930
+ * tree-pretty-print.c (do_niy): Do not print a newline.
+
+2010-07-14 Bernd Schmidt <bernds@codesourcery.com>
+
+ * ira-int.h (struct ira_object): New.
+ (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
+ (struct ira_allocno): Remove members min, max,
+ conflict_allocno_array, conflict_id, conflict_allocno_array_size,
+ conflict_allocnos_num and conflict_vec_p. Add new member object.
+ (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
+ OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
+ OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
+ OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
+ ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
+ ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
+ ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
+ ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
+ an ira_object_t rather than ira_allocno_t. All uses changed.
+ (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
+ contains a vector of ira_object_t; all uses changed.
+ (ira_objects_num): Declare variable.
+ (ira_create_allocno_object): Declare function.
+ (ira_conflict_vector_profitable_p): Adjust prototype.
+ (ira_allocate_conflict_vec): Renamed from
+ ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
+ (ira_allocate_object_conflicts): Renamed from
+ ira_allocate_allocno_conflicts; first arg now ira_object_t.
+ (struct ira_object_iterator): New.
+ (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
+ (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
+ to conflict_vec_p. All uses changed.
+ (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
+ Changed to take into account that conflicts are now tracked for
+ objects.
+ * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
+ Args changed to accept ira_object_t. All uses changed.
+ (allocnos_conflict_p): New static function.
+ (collected_conflict_objects): Renamed from collected_allocno_objects;
+ now a vector of ira_object_t. All uses changed.
+ (build_conflict_bit_table): Changed to take into account that
+ conflicts are now tracked for objects.
+ (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
+ (print_allocno_conflicts, ira_build_conflicts): Likewise.
+ * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
+ setup_allocno_left_conflicts_size, allocno_reload_assign,
+ fast_allocation): Likewise.
+ * ira-lives.c (make_hard_regno_born, make_allocno_born)
+ process_single_reg_class_operands, process_bb_node_lives): Likewise.
+ * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
+ Likewise.
+ * ira-build.c (ira_objects_num): New variable.
+ (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
+ contains a vector of ira_object_t; all uses changed.
+ (ira_object_id_map_vec): Corresponding change.
+ (object_pool): New static variable.
+ (initiate_allocnos): Initialize it.
+ (finish_allocnos): Free it.
+ (ira_create_object, ira_create_allocno_object, create_allocno_objects):
+ New functions.
+ (ira_create_allocno): Don't set members that were removed.
+ (ira_set_allocno_cover_class): Don't change conflict hard regs.
+ (merge_hard_reg_conflicts): Changed to take into account that
+ conflicts are now tracked for objects.
+ (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
+ allocate_conflict_bit_vec, ira_allocate_object_conflicts,
+ compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
+ setup_min_max_allocno_live_range_point, allocno_range_compare_func,
+ setup_min_max_conflict_allocno_ids, ): Likewise.
+ (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
+ to ira_object_t; all callers changed.
+ (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
+ to ira_object_t, all callers changed.
+ (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
+ to ira_object_t, all callers changed.
+ (conflict_check, curr_conflict_check_tick): Renamed from
+ allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
+ changed.
+ (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
+ arg changed to ira_object_t, all callers changed.
+ (create_cap_allocno): Call ira_create_allocno_object.
+ (finish_allocno): Free the corresponding object.
+ (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
+ callers changed. Adjusted for dealing with objects.
+ (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
+ dealing with objects.
+ * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
+
+ * ira-int.h (struct live_range): Rename allocno member to object
+ and change type to ira_object_t.
+ (struct ira_object): New member live_ranges.
+ (struct ira_allocno): Remove member live_ranges.
+ (ALLOCNO_LIVE_RANGES): Remove.
+ (OBJECT_LIVE_RANGES): New macro.
+ (ira_create_live_range, ira_copy_live_range_list,
+ ira_merge_live_range_list, ira_live_ranges_intersect_p,
+ ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
+ * ira-build.c (ira_create_object): Initialize live ranges here.
+ (ira_create_allocno): Not here.
+ (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
+ changed to ira_object_t, all callers changed.
+ (copy_live_range): Rename from copy_allocno_live_range, all callers
+ changed.
+ (ira_copy_live_range_list): Rename from
+ ira_copy_allocno_live_range_list, all callers changed.
+ (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
+ all callers changed.
+ (ira_live_ranges_intersect_p): Rename from
+ ira_allocno_live_ranges_intersect_p, all callers changed.
+ (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
+ callers changed.
+ (ira_finish_live_range_list): Rename from
+ ira_finish_allocno_live_range_list, all callers changed.
+ (change_object_in_range_list): Rename from change_allocno_in_range_list,
+ last arg changed to ira_object_t, all callers changed.
+ (finish_allocno): Changed to expect live ranges in the allocno's object.
+ (move_allocno_live_ranges, copy_allocno_live_ranges,
+ update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
+ ira_flattening, ira_build): Likewise.
+ * ira-color.c (allocnos_have_intersected_live_ranges_p,
+ slot_coalesced_allocno_live_ranges_intersect,
+ setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
+ * ira-conflicts.c (build_conflict_bit_table): Likewise.
+ * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
+ * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
+ make_allocno_dead, create_start_finish_chains,
+ remove_some_program_points_and_update_live_ranges,
+ ira_debug_live_range_list): Likewise.
+
+ * ira-int.h (ira_object_conflict_iterator): Rename from
+ ira_allocno_conflict_iterator.
+ (ira_object_conflict_iter_init): Rename from
+ ira_allocno_conflict_iter_init, second arg changed to
+ * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
+ FOR_EACH_ALLOCNO_CONFLICT.
+ * ira-color.c (assign_hard_reg, push_allocno_to_stack)
+ setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
+ ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
+ * ira-conflicts.c (print_allocno_conflicts): Likewise.
+
+2010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR other/44874
+ * tree-dump.c (dump_options): Add enumerate_locals entry.
+ Add TDF_NOID exclusion to all entry.
+ * tree-dump.h (dump_enumerated_decls): Declare.
+ * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
+ Don't display type uid.
+ (print_declaration): Don't crash on TREE_TYPE (t) == 0.
+ * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
+ * tree-ssa-live.c: Include gimple.h.
+ (numbered_tree_d): New struct.
+ (numbered_tree): New typedef.
+ (DEF_VEC_O (numbered_tree): New.
+ (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
+ (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
+ (dump_enumerated_decls): Likewise.
+ * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
+ debug info and flag_dump_final_insns, call dump_enumerated_decls.
+ * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
+ * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
+
+2010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * expmed.h (MAX_BITS_PER_WORD): Move to...
+ * defaults.h (MAX_BITS_PER_WORD): ...here.
+
+2010-07-13 DJ Delorie <dj@redhat.com>
+
+ * config/h8300/h8300.c (h8300_init_once): Default to
+ -fstrict_volatile_bitfields.
+
+ * config/sh/sh.c (sh_override_options): Default to
+ -fstrict_volatile_bitfields.
+
+ * config/rx/rx.c (rx_option_override): New.
+
+ * config/m32c/m32c.c (m32c_override_options): Default to
+ -fstrict_volatile_bitfields.
+
+2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (build_function_call_expr): Delete.
+ (build_call_expr_loc_array): New function.
+ (build_call_expr_loc_vec): New function.
+ * tree-flow.h (struct omp_region): Change type of ws_args field
+ to a VEC.
+ * builtins.c (build_function_call_expr): Delete.
+ (build_call_expr_loc_array): New function.
+ (build_call_expr_loc): Call it. Use XALLOCAVEC.
+ (build_call_expr): Likewise.
+ (build_call_expr_loc_vec): New function.
+ * cgraphunit.c (build_cdtor): Call build_call_expr instead of
+ build_function_call_expr.
+ * expr.c (emutls_var_address): Likewise.
+ * varasm.c (emutls_common_1): Likewise.
+ * omp-low.c (expand_omp_atomic_mutex): Likewise.
+ (expand_omp_taskreg): Adjust for new type of region->ws_args.
+ (get_ws_args_for): Return a VEC instead of a tree.
+ (expand_parallel_call): Call build_call_expr_loc_vec instead of
+ build_function_call_expr.
+ * stor-layout.c (self_referential_size): Likewise.
+
+2010-07-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR testsuite/44701
+ * recog.c (constrain_operands): Allow side-effects in memory
+ operands if either < or > constraint is used, rather than if
+ both < and > is used.
+
+2010-07-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44911
+ * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
+ MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
+ without name.
+
+2010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/44761
+ * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
+ to variable emited.
+ * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
+ * config/sh/sh.md (symGOT_load): Likewise.
+ (symDTPOFF2reg): Likewise.
+ (symTPOFF2reg): Likewise.
+
+2010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
+ * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
+
+2010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
+ explanation.
+ Find ucontext_t * on Solaris 11.
+ (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
+ Handle new Solaris 11 __sighndlr patterns.
+
+2010-07-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/44901
+ * vec.h (VEC_block_remove): Fix comment.
+ * tree-ssa-live.c (remove_unused_locals): Don't use
+ VEC_unordered_remove on local_decls, instead replace a single
+ vector element in each iteration if at least one element had
+ to be removed and VEC_truncate at the end.
+ * omp-low.c (expand_omp_taskreg): Likewise.
+
+2010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * c-decl.c (finish_function): Fix typo in comment.
+
+2010-07-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR bootstrap/44921
+ * postreload.c (move2add_use_add3_insn): Silence gcc warning
+ on min_regno.
+
+2010-07-12 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
+ (simplify_stmt_using_ranges): Use it.
+
+2010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
+ member. Do not mark as GTY(()).
+ * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
+ (spu_builtin_decls): New static variable.
+ (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
+ (spu_init_builtins): Likewise.
+ (spu_builtin_mul_widen_even): Likewise.
+ (spu_builtin_mul_widen_odd): Likewise.
+ (spu_builtin_mask_for_load): Likewise.
+ (spu_builtin_vec_perm): Likewise.
+ * config/spu/spu-c.c: Include "target.h".
+ (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
+ of using spu_builtins[].fndecl.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_override_options): Make -mflip-mips16
+ imply -minterlink-mips16.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.h (mips16_globals): Declare.
+ (SWITCHABLE_TARGET): Define.
+ * config/mips/mips.c: Include target-globals.h.
+ (mips16_globals): New variable.
+ (mips_set_mips16_mode): Use save_target_globals and
+ restore_target_globals instead of target_reinit.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
+ to say that the function can be called more than once.
+ * target-globals.c (save_target_globals): Call init_reg_sets.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
+ * bb-reorder.h: New file.
+ * bb-reorder.c (default_target_bb_reorder): New variable.
+ (this_target_bb_reorder): New conditional variable.
+ (uncond_jump_length): Redefine as a macro.
+ * target-globals.h (this_target_bb_reorder): Declare.
+ (target_globals): Add a bb_reorder field.
+ (restore_target_globals): Copy the bb_reorder field to
+ this_target_bb-reorder.
+ * target-globals.c: Include bb-reorder.h.
+ (default_target_globals): Initialize the bb_reorder field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
+ * gcse.h: New file.
+ * gcse.c: Include gcse.h.
+ (default_target_gcse): New variable.
+ (this_target_gcse): New conditional variable.
+ (can_copy): Redefine as a macro.
+ (can_copy_init_p): New macro.
+ (can_copy_p): Remove can_copy_init_p.
+ * target-globals.h (this_target_gcse): Declare.
+ (target_globals): Add a gcse field.
+ (restore_target_globals): Copy the gcse field to this_target_gcse.
+ * target-globals.c: Include gcse.h.
+ (default_target_globals): Initialize the gcse field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
+ and x_ira_prohibited_mode_move_regs_initialized_p.
+ (ira_prohibited_mode_move_regs): Redefine as a macro.
+ * ira.c (ira_prohibited_mode_move_regs): Delete.
+ (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * reload.h (target_reload): Add x_cached_reg_save_code and
+ x_cached_reg_restore_code.
+ * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
+ Redefine as macros.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (target-globals.o): Depend on builtins.h.
+ * builtins.h: New file.
+ * builtins.c: Include builtins.h.
+ (default_target_builtins): New variable.
+ (this_target_builtins): New conditional variable.
+ (apply_args_mode, apply_result_mode): Redefine as macros.
+ * target-globals.h (this_target_builtins): Declare.
+ (target_globals): Add a builtins field.
+ (restore_target_globals): Copy the builtins field to
+ this_target_builtins.
+ * target-globals.c: Include builtins.h.
+ (default_target_globals): Initialize the builtins field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
+ (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
+ from expmed.c.
+ (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
+ (alg_hash, alg_hash_used_p): New macros.
+ * expmed.c (init_expmed): Clear alg_hash if reinitializing.
+ (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
+ (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
+ x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
+ * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
+ (this_op_costs, costs_classes): Redefine as macros.
+ (record_reg_classes): Don't take op_costs as a parameter.
+ (record_operand_costs): Likewise. Update calls to record_reg_classes.
+ (scan_one_insn): Update call to record_operand_costs.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
+ * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
+ (target_ira_int): New structure.
+ (default_target_ira_int): Declare.
+ (this_target_ira_int): Declare as a variable or define as a macro.
+ (ira_reg_mode_hard_regset, ira_register_move_cost)
+ (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
+ (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
+ (prohibited_class_mode_regs, ira_important_classes_num)
+ (ira_important_classes, ira_reg_class_intersect)
+ (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
+ (ira_reg_class_union): Redefine as macros.
+ * ira.h (target_ira): New structure.
+ (default_target_ira): Declare.
+ (this_target_ira): Declare as a variable or define as a macro.
+ (ira_available_class_regs, ira_hard_regno_cover_class)
+ (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
+ (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
+ (ira_class_hard_regs_num): Redefine as macros.
+ * ira.c (default_target_ira, default_target_ira_int): New variables.
+ (this_target_ira, this_target_ira_int): New conditional variables.
+ (ira_reg_mode_hard_regset, ira_memory_move_cost)
+ (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
+ (ira_class_subset_p): Delete.
+ (no_unit_alloc_regs): Redefine as a macro.
+ (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
+ (ira_class_hard_regs_num, ira_class_hard_reg_index)
+ (ira_available_class_regs): Delete.
+ (alloc_reg_class_subclasses): Redefine as a macro.
+ (ira_reg_class_cover_size, ira_reg_class_cover)
+ (ira_important_classes_num, ira_important_classes)
+ (ira_important_class_nums, ira_class_translate): Delete.
+ (cover_class_order): Document the variable's lifetime.
+ (reorder_important_classes): Don't set ira_important_class_nums.
+ (ira_reg_class_intersect, ira_reg_classes_intersect_p)
+ (ira_reg_class_super_classes, ira_reg_class_union)
+ (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
+ Delete.
+ (setup_reg_class_nregs): Don't set ira_max_regs.
+ (prohibited_class_mode_regs): Delete.
+ * target-globals.h (this_target_ira, this_target_ira_int): Declare.
+ (target_globals): Add ira and ira_int fields.
+ (restore_target_globals): Copy the ira field to this_target_ira
+ and the ira_int field to this_target_ira_int.
+ * target-globals.c: Include ira-int.h.
+ (default_target_globals): Initialize the ira and ira_int fields.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
+ * cfgloop.h (target_cfgloop): New structure.
+ (default_target_cfgloop): Declare.
+ (this_target_cfgloop): Declare as a variable or define as a macro.
+ (target_avail_regs, target_clobbered_regs, target_res_regs)
+ (target_reg_cost, target_spill_cost): Redefine as macros.
+ * cfgloopanal.c (default_target_cfgloop): New variable.
+ (this_target_cfgloop): New conditional variable.
+ (target_avail_regs, target_clobbered_regs, target_res_regs)
+ (target_reg_cost, target_spill_cost): Delete.
+ * target-globals.h (this_target_cfgloop): Declare.
+ (target_globals): Add a cfgloop field.
+ (restore_target_globals): Copy the cfgloop field to
+ this_target_cfgloop.
+ * target-globals.c: Include cfgloop.h.
+ (default_target_globals): Initialize the cfgloop field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * regs.h (target_regs): Add x_direct_load, x_direct_store and
+ x_float_extend_from_mem.
+ (direct_load, direct_store, float_extend_from_mem): New macros.
+ * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
+ (target-globals.o): Depend on $(LIBFUNCS_H).
+ * libfuncs.h: Include hashtab.h.
+ (libfunc_entry): Moved from optabs.c.
+ (target_libfuncs): New structure.
+ (default_target_libfuncs): Declare.
+ (this_target_libfuncs): Declare as a variable or define as a macro.
+ (libfunc_table): Redefine as a macro.
+ * optabs.c (default_target_libfuncs): New variable.
+ (this_target_libfuncs): New conditional variable.
+ (libfunc_table): Delete.
+ (libfunc_entry): Moved to optabs.h.
+ (libfunc_hash): Redefine as a macro.
+ (hash_libfunc, eq_libfunc): Fix comments.
+ (init_optabs): Use libfunc_hash to detect cases where the function
+ has already been called. Clear the hash table instead of
+ recreating it.
+ * target-globals.h (this_target_libfuncs): Declare.
+ (target_globals): Add a libfuncs field.
+ (restore_target_globals): Copy the libfuncs field to
+ this_target_libfuncs.
+ * target-globals.c: Include libfuncs.h.
+ (default_target_globals): Initialize the libfuncs field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
+ in all dependency lists.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
+ * optabs.h (target_optabs): New structure.
+ (default_target_optabs): Declare.
+ (this_target_optabs): Declare as a variable or define as a macro.
+ (optab_table, convert_optab_table, direct_optab_table): Redefine
+ as macros.
+ * optabs.c (default_target_optabs): New variable.
+ (this_target_optabs): New conditional variable.
+ (optab_table, convert_optab_table, direct_optab_table): Delete.
+ * target-globals.h (this_target_optabs): Declare.
+ (target_globals): Add a optabs field.
+ (restore_target_globals): Copy the optabs field to
+ this_target_optabs.
+ * target-globals.c: Include expr.h and optabs.h.
+ (default_target_globals): Initialize the optabs field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * flags.h (target_flagstate): Add x_flag_excess_precision.
+ (flag_excess_precision): Redefine as a macro.
+ * toplev.c (flag_excess_precision): Delete.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
+ * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
+ * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
+ (no_caller_save_reg_set): Redefine as a macro.
+ * reload.h (target_reload): Add x_caller_save_initialized_p and
+ x_regno_save_mode.
+ (caller_save_initialized_p): Redefine as a macro.
+ * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
+ (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
+ (regno_save_mode): Redefine as a macro.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
+ * expmed.h: New file.
+ * expmed.c (default_target_costs): New variable.
+ (this_target_costs): New conditional variable.
+ (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
+ (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
+ (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
+ * target-globals.h (this_target_expmed): Declare.
+ (target_globals): Add a expmed field.
+ (restore_target_globals): Copy the expmed field to
+ this_target_expmed.
+ * target-globals.c: Include expmed.h.
+ (default_target_globals): Initialize the expmed field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (target-globals.o): Depend on reload.h.
+ * reload.h (target_reload): New structure.
+ (default_target_reload): Declare.
+ (this_target_reload): Declare as a variable or define as a macro.
+ (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
+ * reload1.c (default_target_reload): New variable
+ (this_target_reload): New conditional variable.
+ (indirect_symref_ok, double_reg_address_ok): Delete.
+ (spill_indirect_levels): Redefine as a macro.
+ * target-globals.h (this_target_reload): Declare.
+ (target_globals): Add a reload field.
+ (restore_target_globals): Copy the reload field to
+ this_target_reload.
+ * target-globals.c: Include hard-reg-set.h.
+ (default_target_globals): Initialize the reload field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * rtl.h (target_rtl): Add x_static_reg_base_value.
+ * alias.c (static_reg_base_value): Redefine as a macro.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
+ (GTFILES): Remove reginfo.c.
+ * rtl.h (target_rtl): Add x_top_of_stack.
+ (top_of_stack): New macro.
+ * reginfo.c: Don't include ggc.h or gt-reginfo.h.
+ (top_of_stack): Delete.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * regs.h (target_regs): Add x_hard_regs_of_mode,
+ x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
+ x_may_move_out_cost and x_last_mode_for_init_move_cost.
+ (have_regs_of_mode, contains_reg_of_mode, move_cost)
+ (may_move_in_cost, may_move_out_cost): Redefine as macros.
+ * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
+ (may_move_in_cost, may_move_out_cost): Delete.
+ (last_mode_for_init_move_cost): Redefine as a macro.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * hard-reg-set.h (target_hard_regs): New structure.
+ (default_target_hard_regs): Declare.
+ (this_target_hard_regs): Declare as a variable or define as a macro.
+ (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
+ (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
+ (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
+ (reg_class_size, reg_class_subclasses, reg_class_subunion)
+ (reg_class_superunion, reg_names): Redefine as macros.
+ * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
+ (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
+ (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
+ (reg_class_contents, reg_class_size, reg_class_subclasses)
+ (reg_class_subunion, reg_class_superunion, reg_names): Delete.
+ (default_target_hard_regs): New variable
+ (this_target_hard_regs, initial_call_really_used_regs)
+ (initial_reg_alloc_order): New conditional variables.
+ (initial_reg_names): New variable.
+ (init_reg_sets): Assert that initial_call_really_used_regs,
+ initial_reg_alloc_order and initial_reg_names
+ are all the same size as their variable counterparts. Use them to
+ initialize those counterparts.
+ * target-globals.h (this_target_hard_regs): Declare.
+ (target_globals): Add a hard_regs field.
+ (restore_target_globals): Copy the hard_regs field to
+ this_target_hard_regs.
+ * target-globals.c: Include hard-reg-set.h.
+ (default_target_globals): Initialize the hard_regs field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (target-globals.o): Depend on $(RTL_H).
+ * rtl.h (target_rtl): New structure.
+ (default_target_rtl): Declare.
+ (this_target_rtl): Declare as a variable or define as a macro.
+ (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
+ Redefine as macros.
+ * emit-rtl.c (default_target_rtl): New variable.
+ (this_target_rtl): New conditional variable.
+ (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
+ (return_address_pointer_rtx): Delete.
+ (initial_regno_reg_rtx): New macro.
+ (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
+ (init_emit_regs): Likewise.
+ * target-globals.h (this_target_rtl): Declare.
+ (target_globals): Add a rtl field.
+ (restore_target_globals): Copy the rtl field to this_target_rtl.
+ * target-globals.c: Include rtl.h.
+ (default_target_globals): Initialize the rtl field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * Makefile.in (target-globals.o): Depend on $(REGS_H).
+ * regs.h (target_reg_modes): New structure.
+ (default_target_reg_modes): Declare.
+ (this_target_reg_modes): Declare as a variable or define as a macro.
+ (hard_regno_nregs, reg_raw_mode): Redefine as macros.
+ * reginfo.c (default_target_reg_modes): New variable.
+ (this_target_reg_modes): New conditional variable.
+ (hard_regno_nregs, reg_raw_mode): Delete.
+ * target-globals.h (this_target_regs): Declare.
+ (target_globals): Add a regs field.
+ (restore_target_globals): Copy the regs field to this_target_regs.
+ * target-globals.c: Include regs.h.
+ (default_target_globals): Initialize the regs field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
+ * doc/tm.texi: Regenerate.
+ * Makefile.in (OBJS-common): Add target-globals.o.
+ (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
+ and target-globals.h.
+ (target-globals.o): New rule.
+ (GTFILES): Include $(srcdir)/target-globals.h.
+ * defaults.h (SWITCHABLE_TARGET): Define.
+ * gengtype.c (open_base_files): Add target-globals.h to the
+ list of includes.
+ * target-globals.h: New file.
+ * target-globals.c: Likewise.
+
+ * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
+ * flags.h (target_flag_state): New structure.
+ (default_target_flag_state): Declare.
+ (this_target_flag_state): Declare as a variable or define as a macro.
+ (align_loops_log): Redefine as a macro.
+ (align_loops_max_skip, align_jumps_log): Likewise.
+ (align_jumps_max_skip, align_labels_log): Likewise.
+ (align_labels_max_skip, align_functions_log): Likewise.
+ * toplev.c (default_target_flag_state): New variable.
+ (this_target_flag_state): New conditional variable.
+ (align_loops_log): Delete.
+ (align_loops_max_skip, align_jumps_log): Likewise.
+ (align_jumps_max_skip, align_labels_log): Likewise.
+ (align_labels_max_skip, align_functions_log): Likewise.
+ * target-globals.h (this_target_flag_state): Declare.
+ (target_globals): Add a flag_state field.
+ (restore_target_globals): Copy the flag_state field to
+ this_target_flag_state.
+ * target-globals.c: Include flags.h.
+ (default_target_globals): Initialize the flag_state field.
+ (save_target_globals): Likewise.
+
+2010-07-12 Jie Zhang <jie@codesourcery.com>
+
+ * postreload.c (reg_symbol_ref[]): New.
+ (move2add_use_add2_insn): New.
+ (move2add_use_add3_insn): New.
+ (reload_cse_move2add): Handle SYMBOL + OFFSET case.
+ (move2add_note_store): Likewise.
+
+2010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR rtl-optimization/44752
+ * genautomata.c (main): Don't emit an empty file even if there
+ is no automaton.
+
+2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
+ ix86_solaris_return_in_memory.
+ * config/i386-protos.h: Reflect this.
+ * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
+ * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
+ Move ...
+ * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
+
+2010-07-12 Jie Zhang <jie@codesourcery.com>
+
+ * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
+ align the stack when it's going to be saved.
+
+2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR pch/14940
+ * config/host-solaris.c (mmap_fixed): New function.
+ (sol_gt_pch_get_address): Use it.
+ (sol_gt_pch_use_address): Likewise.
+
+2010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
+ pentiumpro on Solaris 8 and 9/x86.
+ * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
+ Document SSE/SSE2 support.
+ * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
+
+2010-07-12 Andi Kleen <ak@linux.intel.com>
+
+ * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
+ instead of gcc_assert to print better error message for multiple
+ prevailing defs.
+
+2010-07-12 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_asm_output_function_label): Change format
+ string placeholder from 0x%x to %#x.
+ (ix86_code_end): Use putc to output '\n'.
+ (ix86_print_operand) <case ';'>: Use putc to output ';'.
+
+2010-07-11 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
+ in directive -export.
+
+2010-07-10 Anatoly Sokolov <aesok@post.ru>
+
+ * reginfo.h (reg_classes_intersect_p): Change arguments type to
+ reg_class_t.
+ * rtl.h (reg_classes_intersect_p): Adjust prototype.
+
+ * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
+ Remove macros.
+ * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
+ rs6000_memory_move_cost): Remove
+ * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
+ TARGET_MEMORY_MOVE_COST): Define.
+ (rs6000_register_move_cost): Make static. Change arguments type from
+ enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
+ (rs6000_memory_move_cost): Make static. Change arguments type from
+ 'enum reg_class' to reg_class_t.
+
+2010-07-10 Sandra Loosemore <sandra@codesourcery.com>
+
+ PR middle-end/42505
+ * tree-inline.c (estimate_num_insns): Refactor builtin complexity
+ lookup code into....
+ * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
+ new functions.
+ * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
+ * cfgloopanal.c (target_clobbered_regs): Define.
+ (init_set_costs): Initialize target_clobbered_regs.
+ (estimate_reg_pressure_cost): Add call_p argument. When true,
+ adjust the number of available registers to exclude the
+ call-clobbered registers.
+ * cfgloop.h (target_clobbered_regs): Declare.
+ (estimate_reg_pressure_cost): Adjust declaration.
+ * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
+ (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
+ (determine_set_costs): Dump target_clobbered_regs.
+ (loop_body_includes_call): New function.
+ (tree_ssa_iv_optimize_loop): Use it to initialize new field.
+ * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
+ call_p flag through.
+ (best_gain_for_invariant): Likewise.
+ (find_invariants_to_move): Likewise.
+ (move_single_loop_invariants): Likewise, using already-computed
+ has_call field.
+
+2010-07-10 Richard Guenther <rguenther@suse.de>
+ Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR debug/44832
+ * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
+ (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
+ unless they have DECL_IGNORED_P set.
+
+2010-07-10 Richard Guenther <rguenther@suse.de>
+
+ PR lto/44889
+ * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
+ helper function.
+ (gimple_types_compatible_p): Similar to pointed-to
+ types allow and merge a mix of complete and incomplete aggregate.
+ Use gimple_fixup_complete_and_incomplete_subtype_p for that.
+ (iterative_hash_gimple_type): Adjust for that.
+
+2010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
+
+ * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
+
+2010-07-10 Iain Sandoe <iains@gcc.gnu.org>
+
+ PR objc/44140
+ * config/darwin.c (output_objc_section_asm_op): Save and restore
+ section when outputting ObjC section list.
+
+2010-07-09 Jan Hubicka <jh@suse.cz>
+
+ * lto-streamer-out.c (produce_symtab): Do not write alias
+ cgraph/varpool nodes.
+
+2010-07-09 Jan Hubicka <jh@suse.cz>
+
+ * tree-inline.c (declare_return_variable): Fix ICE while
+ inlining DECL_BY_VALUE function not in SSA form
+
+2010-07-09 Changpeng Fang <changpeng.fang@amd.com>
+
+ PR tree-optimization/44576
+ * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
+ New. Pull out from is_loop_prefetching_profitable to implement
+ the trip count to ahead ratio heuristic.
+ (mem_ref_count_reasonable_p): New. Pull out from
+ is_loop_prefetching_profitable to implement the instruction to
+ memory reference ratio heuristic. Also consider not reasonable if
+ the memory reference count is above a threshold (to avoid
+ explosive compilation time.
+ (insn_to_prefetch_ratio_too_small_p): New. Pull out from
+ is_loop_prefetching_profitable to implement the instruction to
+ prefetch ratio heuristic.
+ (is_loop_prefetching_profitable): Removed.
+ (loop_prefetch_arrays): Distribute the cost analysis across the
+ function to allow early exit of the prefetch analysis.
+ is_loop_prefetching_profitable is splitted into three functions,
+ with each one called as early as possible.
+ (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
+ number of memory references in a loop is considered too many.
+
+2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
+
+ * reload.c (find_reloads): Don't clear badop if we have a winreg
+ alternative, but not win, and the class only has fixed regs.
+ * hard-reg-set.h (class_only_fixed_regs): Declare.
+ * reginfo.c (class_only_fixed_regs): New array.
+ (init_reg_sets_1): Initialize it.
+ * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
+ discourage alternatives using the stack pointer.
+
+ * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
+
+ * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
+
+ * config/arm/arm.md (cbranchqi4): Fix array size.
+ (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
+ calculating length.
+
+2010-07-09 Richard Guenther <rguenther@suse.de>
+
+ * gimple.c (struct type_fixup_s): New struct and VEC type.
+ (gimple_register_type_fixups): New static global.
+ (gimple_queue_type_fixup): New function.
+ (gimple_types_compatible_p): Queue type fixups instead of
+ applying them here.
+ (gimple_register_type): Apply queued fixups for the
+ canonical type. Empty the type fixup queue.
+
+2010-07-09 Uros Bizjak <ubizjak@gmail.com>
+
+ * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
+ * configure: Regenerate.
+ * config.in: Ditto.
+
+2010-07-09 Jakub Jelinek <jakub@redhat.com>
+ Denys Vlasenko <dvlasenk@redhat.com>
+ Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
+
+ PR tree-optimization/28632
+ * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
+ (extract_range_from_binary_expr): Further optimize
+ BIT_AND_EXPR and BIT_IOR_EXPR.
+
+2010-07-09 Sebastian Pop <sebastian.pop@amd.com>
+
+ * tree-if-conv.c (fold_or_predicates): New.
+ (add_to_predicate_list): Call it.
+
+2010-07-09 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44890
+ * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
+ if base is a pointer.
+ * tree-cfg.c (verify_expr): Update MEM_REF checking.
+
+2010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR target/44877
+ * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
+ POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
+ builtin mask for load/store builtins.
+
+2010-07-09 Uros Bizjak <ubizjak@gmail.com>
+
+ * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
+ for "lock addl".
+ * configure: Regenerate.
+ * config/i386/i386.c (ix86_print_operand) <case ';'>:
+ Remove TARGET_MACHO.
+
+2010-07-09 Peter Bergner <bergner@vnet.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
+ default ISA flags.
+ * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
+
+2010-07-09 Tom de Vries <tjvries@xs4all.nl>
+
+ * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
+
+2010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ * config/picochip/picochip.md (commsTestPort): Emit more
+ efficient sequence for tstport instruction.
+
+2010-07-09 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_veclib_handler): Make static.
+
+2010-07-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44852
+ * tree-ssa-alias.c: Include toplev.h for exact_log2.
+ (indirect_ref_may_alias_decl_p): Properly handle negative offsets
+ in MEM_REF.
+ (indirect_refs_may_alias_p): Likewise.
+ * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
+
+2010-07-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44882
+ * tree-vect-stmts.c (vectorizable_store): Do not assert alias
+ sets do conflict.
+ (vectorizable_load): Likewise.
+
+2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR target/40657
+ * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
+ All callers changed.
+ Handle the case when we're called for the epilogue.
+ (thumb_unexpanded_epilogue): Use it.
+ (thumb1_expand_epilogue): Likewise.
+
+2010-07-09 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
+ both ranges are range_int_cst_p with non-negative minimum,
+ try harder to derive smaller range.
+
+2010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * genrecog.c: Include diagnostic-core.h before toplev.h.
+ * genoutput.c: Likewise.
+ * genextract.c: Likewise.
+ * genautomata.c: Likewise.
+ * genemit.c: Likewise.
+ * genpeep.c: Likewise.
+ * genattrtab.c: Likewise.
+ * genconditions.c: Likewise.
+ * genpreds.c: Likewise.
+
+2010-07-08 Andi Kleen <ak@linux.intel.com>
+
+ * lto-section-in.c (lto_section_name): Add missing comma.
+
+2010-07-08 Anatoly Sokolov <aesok@post.ru>
+
+ * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
+ * config/ia64/ia64-protos.h (ia64_override_options): Remove.
+ * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
+ (ia64_override_options): Rename to...
+ (ia64_option_override): ... this one. Make static.
+
+2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/44843
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
+ pointed-to type of the offset in a MEM_REF to compute the alignment.
+
+2010-07-08 Kai Tietz <kai.tietz@onevision.com>
+
+ * final.c (final_scan_insn): Replace
+ TARGET_UNWIND_INFO macro check by unwind_emit
+ hook NULL check.
+ * targhooks.c (default_unwind_emit): Removed.
+ * targhooks.h (default_unwind_emit): Likewise.
+ * target.def (unwind_emit): Set default value to NULL.
+
+ * config/i386/i386-protos.h (ix86_asm_output_function_label):
+ New prototype.
+ * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
+ for NULL fntype argument and allow 64-bit targets.
+ (ix86_asm_output_function_label): New function.
+ (ix86_expand_prologue): Handle 64-bit ms hook prologue.
+ (ix86_handle_fndecl_attribute): Likewise.
+ * doc/extend.texi (ms_hook_prologue): Adjust documentation.
+ * doc/doc/tm.texi: Regenerated.
+ * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
+ (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
+ * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
+ * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
+ ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
+ * config/elfos.h: Likewise.
+ * config/i386/cygming.h: Likewise.
+ * config/netbsd-aout.h: Likewise.
+ * config/openbsd.h: Likewise.
+ * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
+ by ix86_asm_output_function_label function call.
+ * varasm.c (assemble_start_function): Use
+ ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
+
+2010-07-08 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
+ New function.
+ * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
+ Declare.
+ * ipa-cp.c (ipcp_estimate_growth): Use it.
+ * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
+ Likewise.
+
+2010-07-08 Jan Hubicka <jh@suse.cz>
+
+ * tree-inline.c (declare_return_variable): Allocate annotation for new
+ temporary.
+
+2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR tree-optimization/44710
+ * tree-if-conv.c (parse_predicate): New.
+ (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
+ Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
+
+2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
+
+ * common.opt (ftree-loop-if-convert): New flag.
+ * doc/invoke.texi (ftree-loop-if-convert): Documented.
+ * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
+ when flag_tree_loop_if_convert is set.
+
+2010-07-08 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c: Use short syntax for function calls
+ through function pointers.
+ * config/i386/i386.md: Ditto.
+
+2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
+
+2010-07-08 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
+ stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
+
+2010-07-08 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
+ instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
+ (loc_list_from_tree): Likewise.
+ (output_loc_operands): Handle outputting DW_OP_const[48]u
+ with loc->dtprel set.
+ (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
+
+2010-07-08 Jan Hubicka <jh@suse.cz>
+
+ * ipa.c: Include pointer-set.h
+ (cgraph_externally_visible_p): New attribute ALIASED;
+ when in LTO, hidden symbols are local unless they are aliased.
+ (function_and_variable_visibility): Compute aliased nodes;
+ handle LTO and hidden symbol on functions and vars.
+ * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
+ for COMDAT symbols; handle COMDAT_GROUPS also at vars.
+
+2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
+ * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+ * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+ * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+ * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+ * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
+ (ix86_gen_probe_stack_range): Likewise.
+ (override_options): Set them.
+ (ix86_target_stack_probe): New function.
+ (ix86_compute_frame_layout): Force use of push instructions to
+ save registers if stack checking with probes is enabled.
+ (get_scratch_register_on_entry): New function.
+ (release_scratch_register_on_entry): Likewise.
+ (ix86_adjust_stack_and_probe): Likewise.
+ (output_adjust_stack_and_probe): Likewise.
+ (ix86_emit_probe_stack_range): Likewise.
+ (output_probe_stack_range): Likewise.
+ (ix86_expand_prologue): Emit stack checking code if static built-in
+ stack checking is enabled.
+ Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
+ * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
+ (output_adjust_stack_and_probe): Likewise.
+ (output_probe_stack_range): Likewise.
+ * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
+ (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
+ TARGET_STACK_PROBE.
+ (allocate_stack_worker_64): Likewise.
+ (allocate_stack): Likewise.
+ (adjust_stack_and_probe): New insn.
+ (probe_stack_range): Likewise.
+
+2010-07-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44831
+ * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
+ a MEM_REF preserving TBAA info of the original dereference.
+ Dereference the original pointer if the address is not invariant.
+ (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
+ at least one invariant address that we are going to dereference.
+
+2010-07-08 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44861
+ * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
+ information when building MEM_REFs.
+ (vectorizable_load): Likewise.
+ * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
+
+2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/sol2-c.c: Do not include diagnostic-core.h.
+
+2010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ PR bootstrap/44768
+ * cfgexpand.c (estimated_stack_frame_size): Make self-contained
+ with respect to current_function_decl. Pass decl of the function.
+ * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
+ * ipa-inline.c (compute_inline_parameters): Pass decl to
+ estimated_stack_frame_size.
+
+2010-07-08 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
+ New function.
+ (valueize_refs): Call it.
+
+2010-07-08 Richard Guenther <rguenther@suse.de>
+
+ PR rtl-optimization/44838
+ * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
+ SSA form do not use pointer equivalence.
+
+2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * dwarf2out.c (AT_linkage_name): Delete.
+ (add_linkage_attr): New function.
+ (add_linkage_name): Call it to emit the linkage attribute.
+ (dwarf2out_finish): Likewise.
+ (move_linkage_attr): Explicitly accept both attribute variants.
+
+2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * toplev.h: Do not include diagnostic-core.h.
+ Include diagnostic-core.h in every file that includes toplev.h.
+ * c-tree.h: Do not include toplev.h.
+ * pretty-print.h: Update comment.
+ * Makefile.in: Update dependencies.
+ * alias.c: Include diagnostic-core.h in every file that includes
+ toplev.h.
+ * attribs.c: Likewise.
+ * auto-inc-dec.c: Likewise.
+ * bb-reorder.c: Likewise.
+ * bt-load.c: Likewise.
+ * caller-save.c: Likewise.
+ * calls.c: Likewise.
+ * cfg.c: Likewise.
+ * cfganal.c: Likewise.
+ * cfgbuild.c: Likewise.
+ * cfgcleanup.c: Likewise.
+ * cfghooks.c: Likewise.
+ * cfgloop.c: Likewise.
+ * combine.c: Likewise.
+ * config/alpha/alpha.c: Likewise.
+ * config/arc/arc.c: Likewise.
+ * config/arm/arm.c: Likewise.
+ * config/arm/pe.c: Likewise.
+ * config/avr/avr.c: Likewise.
+ * config/bfin/bfin.c: Likewise.
+ * config/cris/cris.c: Likewise.
+ * config/crx/crx.c: Likewise.
+ * config/darwin-c.c: Likewise.
+ * config/darwin.c: Likewise.
+ * config/fr30/fr30.c: Likewise.
+ * config/frv/frv.c: Likewise.
+ * config/h8300/h8300.c: Likewise.
+ * config/host-darwin.c: Likewise.
+ * config/i386/i386.c: Likewise.
+ * config/i386/netware.c: Likewise.
+ * config/i386/nwld.c: Likewise.
+ * config/i386/winnt-cxx.c: Likewise.
+ * config/i386/winnt-stubs.c: Likewise.
+ * config/i386/winnt.c: Likewise.
+ * config/ia64/ia64-c.c: Likewise.
+ * config/ia64/ia64.c: Likewise.
+ * config/iq2000/iq2000.c: Likewise.
+ * config/lm32/lm32.c: Likewise.
+ * config/m32c/m32c-pragma.c: Likewise.
+ * config/m32c/m32c.c: Likewise.
+ * config/m32r/m32r.c: Likewise.
+ * config/m68hc11/m68hc11.c: Likewise.
+ * config/m68k/m68k.c: Likewise.
+ * config/mcore/mcore.c: Likewise.
+ * config/mep/mep-pragma.c: Likewise.
+ * config/mep/mep.c: Likewise.
+ * config/mmix/mmix.c: Likewise.
+ * config/mn10300/mn10300.c: Likewise.
+ * config/moxie/moxie.c: Likewise.
+ * config/pa/pa.c: Likewise.
+ * config/pdp11/pdp11.c: Likewise.
+ * config/picochip/picochip.c: Likewise.
+ * config/rs6000/rs6000-c.c: Likewise.
+ * config/rs6000/rs6000.c: Likewise.
+ * config/rx/rx.c: Likewise.
+ * config/s390/s390.c: Likewise.
+ * config/score/score.c: Likewise.
+ * config/score/score3.c: Likewise.
+ * config/score/score7.c: Likewise.
+ * config/sh/sh.c: Likewise.
+ * config/sh/symbian-base.c: Likewise.
+ * config/sh/symbian-c.c: Likewise.
+ * config/sh/symbian-cxx.c: Likewise.
+ * config/sol2-c.c: Likewise.
+ * config/sol2.c: Likewise.
+ * config/sparc/sparc.c: Likewise.
+ * config/spu/spu.c: Likewise.
+ * config/stormy16/stormy16.c: Likewise.
+ * config/v850/v850-c.c: Likewise.
+ * config/v850/v850.c: Likewise.
+ * config/vax/vax.c: Likewise.
+ * config/vxworks.c: Likewise.
+ * config/xtensa/xtensa.c: Likewise.
+ * convert.c: Likewise.
+ * cse.c: Likewise.
+ * cselib.c: Likewise.
+ * dbgcnt.c: Likewise.
+ * dbxout.c: Likewise.
+ * ddg.c: Likewise.
+ * dominance.c: Likewise.
+ * emit-rtl.c: Likewise.
+ * explow.c: Likewise.
+ * expmed.c: Likewise.
+ * fixed-value.c: Likewise.
+ * fold-const.c: Likewise.
+ * fwprop.c: Likewise.
+ * gcse.c: Likewise.
+ * ggc-common.c: Likewise.
+ * ggc-page.c: Likewise.
+ * ggc-zone.c: Likewise.
+ * gimple-low.c: Likewise.
+ * gimplify.c: Likewise.
+ * graph.c: Likewise.
+ * haifa-sched.c: Likewise.
+ * ifcvt.c: Likewise.
+ * implicit-zee.c: Likewise.
+ * integrate.c: Likewise.
+ * ira-build.c: Likewise.
+ * ira-color.c: Likewise.
+ * ira-conflicts.c: Likewise.
+ * ira-costs.c: Likewise.
+ * ira-lives.c: Likewise.
+ * ira.c: Likewise.
+ * lists.c: Likewise.
+ * loop-doloop.c: Likewise.
+ * loop-iv.c: Likewise.
+ * lto-opts.c: Likewise.
+ * lto-symtab.c: Likewise.
+ * main.c: Likewise.
+ * modulo-sched.c: Likewise.
+ * optabs.c: Likewise.
+ * params.c: Likewise.
+ * plugin.c: Likewise.
+ * postreload-gcse.c: Likewise.
+ * postreload.c: Likewise.
+ * predict.c: Likewise.
+ * profile.c: Likewise.
+ * real.c: Likewise.
+ * regcprop.c: Likewise.
+ * reginfo.c: Likewise.
+ * regmove.c: Likewise.
+ * reorg.c: Likewise.
+ * resource.c: Likewise.
+ * rtl.c: Likewise.
+ * rtlanal.c: Likewise.
+ * sched-deps.c: Likewise.
+ * sched-ebb.c: Likewise.
+ * sched-rgn.c: Likewise.
+ * sdbout.c: Likewise.
+ * sel-sched-dump.c: Likewise.
+ * sel-sched-ir.c: Likewise.
+ * simplify-rtx.c: Likewise.
+ * stmt.c: Likewise.
+ * stor-layout.c: Likewise.
+ * store-motion.c: Likewise.
+ * targhooks.c: Likewise.
+ * tree-cfg.c: Likewise.
+ * tree-cfgcleanup.c: Likewise.
+ * tree-dump.c: Likewise.
+ * tree-eh.c: Likewise.
+ * tree-inline.c: Likewise.
+ * tree-nomudflap.c: Likewise.
+ * tree-object-size.c: Likewise.
+ * tree-optimize.c: Likewise.
+ * tree-outof-ssa.c: Likewise.
+ * tree-phinodes.c: Likewise.
+ * tree-profile.c: Likewise.
+ * tree-ssa-ccp.c: Likewise.
+ * tree-ssa-coalesce.c: Likewise.
+ * tree-ssa-live.c: Likewise.
+ * tree-ssa-loop-niter.c: Likewise.
+ * tree-ssa-loop-prefetch.c: Likewise.
+ * tree-ssa-loop.c: Likewise.
+ * tree-ssa-structalias.c: Likewise.
+ * tree-ssa-uninit.c: Likewise.
+ * tree-ssa.c: Likewise.
+ * tree-vect-data-refs.c: Likewise.
+ * tree-vect-loop-manip.c: Likewise.
+ * tree-vect-loop.c: Likewise.
+ * tree-vect-patterns.c: Likewise.
+ * tree-vect-stmts.c: Likewise.
+ * tree-vrp.c: Likewise.
+ * varasm.c: Likewise.
+ * vec.c: Likewise.
+ * web.c: Likewise.
+ * xcoffout.c: Likewise.
+
+2010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gengtype.c (write_field_root): New function.
+ (write_root): Use it.
+
+2010-07-07 Wei Guozhi <carrot@google.com>
+
+ * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
+ of lowest bits to lshift/compare): Add a missing line.
+
+2010-07-07 Wei Guozhi <carrot@google.com>
+
+ * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
+ of lowest bits to lshift/compare): New.
+
+2010-07-07 Tom Tromey <tromey@redhat.com>
+
+ * doc/tm.texi: Update.
+ * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
+ Add @hook.
+ * target.def (want_debug_pub_sections): New hook.
+ * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
+ * dwarf2out.c (add_pubname_string): Check
+ targetm.want_debug_pub_sections.
+ (add_pubname): Likewise.
+ (add_pubtype): Likewise.
+
+2010-07-07 Jie Zhang <jie@codesourcery.com>
+
+ * genautomata.c (output_automata_list_min_issue_delay_code):
+ Correctly decompress min_issue_delay.
+
+2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR rtl-optimization/44404
+ * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
+ possible, use reg_overlap_mentioned_p instead.
+
+2010-07-07 Duncan Sands <baldrick@free.fr>
+
+ PR middle-end/41355
+ * tree.c (build_function_type_skip_args): Copy the original type using
+ build_distinct_type_copy rather than copy_node.
+
+2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/44850
+ * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
+ revision 161876.
+ (ix86_expand_prologue): Likewise.
+ (ix86_handle_fndecl_attribute): Likewise.
+ (ix86_asm_declare_function_name): Likewise.
+ * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+ (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
+ * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
+ * doc/extend.texi: Likewise.
+
+2010-07-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/44844
+ * config/i386/i386.md (rdrand<mode>): Changed to expand to
+ retry if the carry flag isn't valid.
+ (rdrand<mode>_1): New.
+
+2010-07-07 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44790
+ * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
+ for expanding the constant offset for MEM_REFs.
+
+2010-07-07 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
+ * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
+ * gimple.h (is_gimple_operand): Remove.
+ * gimple.c (is_gimple_operand): Likewise.
+ (walk_gimple_op): Fix wi->val_only setting for calls.
+ * tree-cfg.c (verify_gimple_call): Fix argument validation.
+ * tree-profile.c (tree_gen_ic_func_profiler): Do not create
+ invalid gimple calls.
+
+2010-07-06 Jan Hubicka <jh@suse.cz>
+
+ * lto-cgraph.c (output_cgraph): Add missing declaration.
+
+2010-07-06 Jan Hubicka <jh@suse.cz>
+
+ * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
+ partition.
+
+2010-07-06 Alexandre Oliva <aoliva@redhat.com>
+
+ * doc/gimple.texi (GIMPLE_DEBUG): Document.
+ * doc/rtl.texi (Debug Information): New node.
+ (NOTE_INSN_VAR_LOCATION): Document.
+ (debug_insn): Likewise.
+ * doc/generic.texi (DEBUG_EXPR_DECL): Document.
+
+2010-07-07 Jan Hubicka <jh@suse.cz>
+
+ With parts by Richard Guenther.
+
+ PR middle-end/44813
+ * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
+ for functions passed by reference.
+ * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
+ in memory when passed by reference.
+ * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
+ beggining.
+ * ipa-split.c (split_function): Cleanup way return value is passed;
+ handle SSA DECL_BY_REFERENCE retvals.
+ * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
+ DECL_BY_REFERENCE is set.
+ * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
+ find_what_p_points_to): Handle RESULT_DECL.
+ * tree-inline.c (declare_return_variable): Get new entry_block argument;
+ when passing by reference ensure that RESULT_DECL is gimple_val.
+ (remap_gimple_op_r): Remap RESULT_DECL ssa name.
+ (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
+
+2010-07-07 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR rtl-optimization/44787
+ * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
+ * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
+
+2010-07-06 Jan Hubicka <jh@suse.cz>
+
+ * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
+ (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
+ with body can prevail.
+ (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
+ (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
+ * cgraph.c (cgraph_get_node_or_alias): New function.
+ * cgraph.h (cgraph_get_node_or_alias): Declare.
+
+2010-07-06 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
+ support.
+ (ix86_expand_prologue): Likewise.
+ (ix86_handle_fndecl_attribute): Likewise.
+ (ix86_asm_declare_function_name): New function for
+ ASM_DECLARE_FUNCTION_NAME.
+ * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
+ * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
+ (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
+ * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
+ * doc/extend.texi: Adjust documentation about ms_hook_prologue
+ attribute.
+
+2010-07-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (immediate_operand): New mode attribute.
+
+ (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
+ pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
+ using P mode iterator.
+ (pro_epilogue_adjust_stack_di_2): Rename from
+ pro_epilogue_adjust_stack_rex64_2.
+
+ * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
+
+2010-07-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
+ through gen_mov_insv_1 function pointer.
+ (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
+ gen_truncxf<mode>2 through gen_truncxf function pointer.
+ (remainder<mode>3): Ditto.
+ (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
+ (allocate_stack): Call gen_allocate_stack_worker_64 or
+ gen_allocate_stack_worker_32 through gen_allocate_stack_worker
+ function pointer.
+ (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
+ function pointer.
+
+2010-07-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
+ operand constraint instead of <r><i>m.
+
+2010-07-06 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44828
+ * convert.c (convert_to_integer): Watch out for overflowing
+ MULT_EXPR as well.
+
+2010-07-05 Jan Hubicka <jh@suse.cz>
+
+ * lto-streamer.c (write_symbol_vec): Rename to ...
+ (write_symbol) ... this one; write only symbol given and when
+ present in cache. Sanity check that what is defined is present
+ in cgraph/varpool with body/finalized decl.
+ (write_symbols_of_kind): Remove.
+ (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
+ pairs to produce symtab.
+ (produce_asm_for_decls): Update call of produce_symtab; don't do so
+ when doing WPA streaming.
+
+2010-07-05 Jan Hubicka <jh@suse.cz>
+
+ * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
+ function is still available to fold into.
+
+2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
+
+ * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
+ * function.h (struct_function): Change type of local_decls field
+ to a VEC.
+ (add_local_decl): New function.
+ (FOR_EACH_LOCAL_DECL): New macro.
+ * cfgexpand.c (init_vars_expansion): Adjust for new type of
+ cfun->local_decls.
+ (estimated_stack_frame_size): Likewise.
+ (expand_used_vars): Likewise.
+ * cgraphbuild.c (build_cgraph_edges): Likewise.
+ * function.c (instantiate_decls_1): Likewise.
+ * ipa-struct-reorg.c (build_data_structure): Likewise.
+ * ipa-type-escape.c (analyze_function): Likewise.
+ * lto-streamer-in.c (input_function): Likewise.
+ * lto-streamer-out.c (output_function): Likewise.
+ * tree-ssa-live.c (remove_unused_locals): Likewise.
+ * tree.c (free_lang_data_in_decl): Likewise.
+ (find_decls_types_in_node): Likewise.
+ * omp-low.c (remove_exit_barrier): Likewise.
+ (expand_omp_taskreg): Likewise.
+ (list2chain): Rename to...
+ (vec2chain): ...this. Adjust.
+ * cgraphunit.c (assemble_thunk): Call add_local_decl.
+ * tree-cfg.c (replace_by_duplicate_decl): Likewise.
+ * gimple-low.c (record_vars_into): Likewise.
+ * tree-inline.c (remap_decls): Likewise.
+ (declare_return_variable): Likewise.
+ (declare_inline_vars): Likewise.
+ (copy_forbidden): Adjust for new type of cfun->local_decls.
+ (add_local_variables): New function.
+ (expand_call_inline): Call it.
+ (tree_function_versioning): Likewise.
+
+2010-07-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ AVX Programming Reference (June, 2010)
+ * config/i386/cpuid.h (bit_F16C): New.
+ (bit_RDRND): Likewise.
+ (bit_FSGSBASE): Likewise.
+
+ * config/i386/i386-builtin-types.def: Add
+ "DEF_FUNCTION_TYPE (UINT16)", function types for
+ float16 <-> float conversions and
+ "DEF_FUNCTION_TYPE (VOID, UINT64)".
+
+ * config/i386/i386-c.c (ix86_target_macros_internal): Support
+ OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
+ OPTION_MASK_ISA_F16C.
+
+ * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
+ (OPTION_MASK_ISA_RDRND_SET): Likewise.
+ (OPTION_MASK_ISA_F16C_SET): Likewise.
+ (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
+ (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
+ (OPTION_MASK_ISA_F16C_UNSET): Likewise.
+ (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
+ (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
+ (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
+ (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
+ (override_options): Handle them.
+ (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
+ (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
+ IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
+ IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
+ IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
+ IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
+ IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
+ IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
+ IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
+ (bdesc_args): Likewise.
+ (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
+ V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
+ (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
+ VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
+ Handle non-memory store.
+
+ * config/i386/i386.h (TARGET_FSGSBASE): New.
+ (TARGET_RDRND): Likewise.
+ (TARGET_F12C): Likewise.
+
+ * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
+ (UNSPEC_VCVTPS2PH): Likewise.
+ (UNSPECV_RDFSBASE): Likewise.
+ (UNSPECV_RDGSBASE): Likewise.
+ (UNSPECV_WRFSBASE): Likewise.
+ (UNSPECV_WRGSBASE): Likewise.
+ (UNSPECV_RDRAND): Likewise.
+ (rdfsbase<mode>): Likewise.
+ (rdgsbase<mode>): Likewise.
+ (wrfsbase<mode>): Likewise.
+ (wrgsbase<mode>): Likewise.
+ (rdrand<mode>): Likewise.
+
+ * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
+
+ * config/i386/immintrin.h (_rdrand_u16): New.
+ (_rdrand_u32): Likewise.
+ (_readfsbase_u32): Likewise.
+ (_readfsbase_u64): Likewise.
+ (_readgsbase_u32): Likewise.
+ (_readgsbase_u64): Likewise.
+ (_writefsbase_u32): Likewise.
+ (_writefsbase_u64): Likewise.
+ (_writegsbase_u32): Likewise.
+ (_writegsbase_u64): Likewise.
+ (_rdrand_u64): Likewise.
+ (_cvtsh_ss): Likewise.
+ (_mm_cvtph_ps): Likewise.
+ (_mm256_cvtph_ps): Likewise.
+ (_cvtss_sh): Likewise.
+ (_mm_cvtps_ph): Likewise.
+ (_mm256_cvtps_ph): Likewise.
+
+ * config/i386/sse.md (vcvtph2ps): New.
+ (*vcvtph2ps_load): Likewise.
+ (vcvtph2ps256): Likewise.
+ (vcvtps2ph): Likewise.
+ (*vcvtps2ph): Likewise.
+ (*vcvtps2ph_store): Likewise.
+ (vcvtps2ph256): Likewise.
+
+ * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
+
+ * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
+
+2010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR bootstrap/44512
+ * genenums.c (main): Output include of insn-constants.h
+ * Makefile.in (insn-enums.o): Depend on insn-constants.h.
+
+2010-07-05 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
+ (override_options): Initialize it.
+ (ix86_expand_prologue): Use it.
+
+2010-07-05 Jakub Jelinek <jakub@redhat.com>
+
+ * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
+
+2010-07-05 Anatoly Sokolov <aesok@post.ru>
+
+ * double-int.h (fit_double_type): Remove declaration.
+ * double-int.c (fit_double_type): Remove function.
+ * tree.h (int_fits_type_p): Adjust prototype.
+ * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
+ instead of fit_double_type.
+ (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
+ instead of fit_double_type and build_int_cst_wide.
+ * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
+ instead of fit_double_type and build_int_cst_wide.
+ (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
+ of fit_double_type.
+
+2010-07-05 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
+ in_other_partition.
+ * lto-cgraph.c (referenced_from_other_partition_p,
+ reachable_from_other_partition_p): Use in_other_partition flags.
+ (output_node, output_varpool_node): COMDAT nodes always have private
+ copies and thus are never used from other partition.
+
+2010-07-05 Anatoly Sokolov <aesok@post.ru>
+
+ * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
+ * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
+ * config/ia64/ia64.c Include reload.h.
+ (ia64_memory_move_cost): New function.
+ (TARGET_MEMORY_MOVE_COST): Define.
+ (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
+ memory_move_cost.
+
+2010-07-05 Sandra Loosemore <sandra@codesourcery.com>
+
+ PR middle-end/42505
+ * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
+ comments about cost model.
+ (try_add_cand_for): Add second strategy for choosing initial set
+ based on original IVs, controlled by ORIGINALP argument.
+ (get_initial_solution): Add ORIGINALP argument.
+ (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
+ (find_optimal_iv_set): Try two different strategies for choosing
+ the IV set, and return the one with lower cost.
+
+2010-07-05 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
+
+2010-07-05 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (reference_alias_ptr_type): New function.
+ * tree.h (reference_alias_ptr_type): Declare.
+ * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
+ allow non-TARGET_MEM_REF new refs.
+ (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
+ * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
+ Build a MEM_REF instead of a TARGET_MEM_REF if possible.
+ (create_mem_ref): Get alias pointer type. Adjust calls to
+ create_mem_ref_raw.
+ (maybe_fold_tmr): Likewise.
+ * tree-flow.h (create_mem_ref): Adjust prototype.
+
+2010-07-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/44808
+ * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
+ *from_p is VAR_DECL.
+
+2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (build_call_list): Remove.
+ * tree.c (build_call_list): Remove.
+
+2010-07-05 Richard Guenther <rguenther@suse.de>
+
+ * double-int.h (double_int_sub): Declare.
+ * double-int.c (double_int_sub): New function.
+ * dwarf2out.c (field_byte_offset): Use it.
+ * fixed-value.c (do_fixed_add): Likewise.
+ (do_fixed_multiply): Likewise.
+ (do_fixed_divide): Likewise.
+ * tree-predcom.c (add_ref_to_chain): Likewise.
+ (determine_roots_comp): Likewise.
+ * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
+
+2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
+
+ * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
+ implementations.
+
+2010-07-05 Bernd Schmidt <bernds@codesourcery.com>
+
+ * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
+ * arm-modes.def (CC_NOTB): Don't define.
+ * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
+ (adddi_sesidi_di, adddi_zesidi_di): Likewise.
+ (LTUGEU): New code_iterator.
+ (cnb, optab): New corresponding code_attrs.
+ (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
+ to canonical form. Operands 1 and 2 are commutative. Parametrize
+ using LTUGEU.
+ (addsi3_carryin_shift_<optab>): Likewise.
+ (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
+ Operands 1 and 2 are commutative. Parametrize using LTUGEU.
+ (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
+ (subsi3_compare): Renamed from subsi3_compare0_c.
+ Change CC_NOTB to CC.
+ (arm_subsi3_insn): Allow constants for operand 0.
+ (compare_scc peephole for eq case): New.
+ (compare_scc splitters): Change CC_NOTB to CC.
+
+2010-07-05 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-loop-im.c (for_each_index): Do not handle
+ ALIGN_INDIRECT_REF.
+ (gen_lsm_tmp_name): Likewise.
+ * tree-dump.c (dequeue_and_dump): Likewise.
+ * tree-pretty-print.c (dump_generic_node): Likewise.
+ (op_code_prio): Likewise.
+ (op_symbol_code): Likewise.
+ * tree.c (staticp): Likewise.
+ (build1_stat): Likewise.
+ * tree.h (INDIRECT_REF_P): Likewise.
+ * fold-const.c (maybe_lvalue_p): Likewise.
+ (operand_equal_p): Likewise.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
+ (ao_ref_init_from_vn_reference): Likewise.
+ * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
+ (find_interesting_uses_address): Likewise.
+ * dwarf2out.c (loc_list_from_tree): Likewise.
+ * gimplify.c (gimplify_expr): Likewise.
+ * tree-eh.c (tree_could_trap_p): Likewise.
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
+ * cfgexpand.c (expand_debug_expr): Likewise.
+ * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
+ * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
+ * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
+ * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
+ * tree-ssa-operands.c (get_expr_operands): Likewise.
+ * expr.c (safe_from_p): Likewise.
+ (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
+ * tree-vect-data-refs.c (vect_setup_realignment): Build
+ BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
+ * tree-vect-stmts.c (vectorizable_load): Likewise.
+ * tree.def (ALIGN_INDIRECT_REF): Remove.
+
+2010-07-05 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44784
+ * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
+ for inserted stmts.
+ (find_or_generate_expression): Fix SCCVN insertion check.
+
+2010-07-05 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
+ * config/rs6000/e500crtsav64gprctr.asm: Likewise.
+ * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
+ directives.
+
+2010-07-05 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
+ statements that are not vectorized.
+ * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
+ in INSIDE_COST.
+
+2010-07-05 Mikael Pettersson <mikpe@it.uu.se>
+
+ PR bootstrap/44820
+ * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
+
+2010-07-05 Richard Guenther <rguenther@suse.de>
+
+ * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
+ RESULT_DECLs properly.
+
+2010-07-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR rtl-optimization/44695
+ * config/i386/i386.md (extract_code): Removed.
+ (<u>divmodqi4): Likewise.
+ (divmodqi4): New.
+ (udivmodqi4): Likewise.
+ (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
+ (udivmodhiqi3): Likewise.
+
+2010-07-04 Jan Hubicka <jh@suse.cz>
+
+ * lto-cgraph.c (input_edge): Do not care about resolution decisions.
+
+2010-07-04 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (init_cgraph): Only initialize dump file if it
+ is not already initialized.
+
+2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
+ (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
+ (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
+ (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
+ (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
+ (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
+ (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
+ (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
+ (sync_new_nand_optab): Redefine as macros.
+ (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
+ Delete.
+ (direct_optab_index): New enum.
+ (direct_optab_d): New structure.
+ (direct_optab): New typedef.
+ (direct_optab_table): Declare.
+ (direct_optab_handler, set_direct_optab_handler): New functions.
+ (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
+ (sync_lock_release_optab): New macros.
+ * optabs.c (direct_optab_table): New variable.
+ (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
+ (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
+ cmpstr_optab and cmpstrn_optab.
+ (emit_conditional_move): Likewise for movcc_optab.
+ (can_conditionally_move_p): Likewise for movcc_gen_code.
+ (init_insn_codes): Clear direct_optab_table.
+ (init_optabs): Don't initialize the new "direct optabs" here.
+ (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
+ vcond_gen_code.
+ (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
+ (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
+ (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
+ (expand_sync_operation): Likewise other sync_*_optabs.
+ (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
+ to sync_compare_and_swap_optab.
+ (expand_sync_lock_test_and_set): Use direct_optab_handler for
+ sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
+ to the names of both.
+ * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
+ cmpstr_optab and cmpstrn_optab.
+ (expand_builtin_lock_release): Likewise sync_lock_release.
+ * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
+ (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
+ (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
+ (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
+ (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
+ (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
+ (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
+ (sync_lock_test_and_set, sync_lock_release): Delete.
+ (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
+ (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
+ * genopinit.c (optabs): Use set_direct_optab_handler for the new
+ macro optabs.
+ * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
+ the "optab" local variable. Use direct_optab_handler for optab and
+ sync_compare_and_swap_optab.
+ * reload1.c (reload_in_optab, reload_out_optab): Delete.
+ * targhooks.c (default_secondary_reload): Use direct_optab_handler for
+ reload_in_optab and reload_out_optab.
+ * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
+ * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
+ * config/pa/pa.c (pa_secondary_reload): Likewise.
+ * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
+ for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
+ (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
+ (VMSupportsCS8_builtin): Likewise.
+
+2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * optabs.h (optab_handlers): Change type of insn_code to int.
+ (optab_handler, set_optab_handler, convert_optab_handler)
+ (set_convert_optab_handler): Treat the insn_code field as "insn_code -
+ CODE_FOR_nothing".
+ * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
+ (init_insn_codes): Zero both the above arrays.
+ (init_optabs): Never call init_insn_codes first time around.
+
+2010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * optabs.h (optab_handler, convert_optab_handler): Turn into
+ inline functions that return an insn code.
+ (set_optab_handler, set_convert_optab_handler): New functions.
+ * builtins.c: Replace optab_handler(X)->insn_code with
+ optab_handler or set_optab_handler thoughout. Likewise
+ convert_optab_handler(X)->insn_code with convert_optab_handler
+ and set_convert_optab_handler.
+ * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
+ reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
+ tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
+ tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
+ tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
+ config/spu/spu.c: Likewise.
+
+2010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/44531
+ * config.gcc (sh*-*-*): Use regular expressions instead of
+ the 'i' modifier for sed substitutions.
+
+2010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
+
+ * gimple.c (gimple_body): Comments added.
+
+2010-07-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44809
+ * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
+ of an INDIRECT_REF.
+
+2010-07-04 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44479
+ * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
+ extra SSA name copy statements which preserves points-to
+ information.
+ * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
+ Copy points-to information for all pointers. Properly handle
+ MEM_REFs.
+ (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
+ copy statements.
+ * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
+ dependency.
+
+2010-07-04 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44785
+ * tree-inline.c (initialize_inlined_parameters): Do not
+ re-use pointer-map slot over remap_type call.
+
+2010-07-04 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
+
+2010-07-04 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44656
+ * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
+ again after value-replacing in the defintions lhs.
+
+2010-07-04 Ira Rosen <irar@il.ibm.com>
+ Revital Eres <eres@il.ibm.com>
+
+ * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
+ Document new arguments.
+ * doc/tm.texi: Regenerate.
+ * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
+ Handle unaligned store.
+ * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
+ * target.def (builtin_vectorization_cost): Add new arguments.
+ * target.h (enum vect_cost_for_stmt): Add unaligned_store.
+ * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
+ of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
+ (vect_vfa_segment_size): Fix indentation.
+ * tree-vectorizer.h (struct _vect_peel_info): New.
+ (struct _vect_peel_extended_info): New.
+ (struct _loop_vec_info): Add new field for peeling hash table and a
+ macro for its access.
+ (VECT_MAX_COST): Define.
+ (vect_get_load_cost): Declare.
+ (vect_get_store_cost, vect_get_known_peeling_cost,
+ vect_get_single_scalar_iteraion_cost): Likewise.
+ (vect_supportable_dr_alignment): Add new argument.
+ * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
+ field.
+ (destroy_loop_vec_info): Free peeling hash table.
+ (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
+ (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
+ vect_analyze_slp. Fix indentation.
+ (vect_get_single_scalar_iteraion_cost): New function.
+ (vect_get_known_peeling_cost): Likewise.
+ (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
+ Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
+ statement. Move outside cost calculation inside unknown peeling case.
+ Call vect_get_known_peeling_cost for known amount of peeling.
+ * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
+ reference to the print message of forced alignment.
+ (vect_verify_datarefs_alignment): Update call to
+ vect_supportable_dr_alignment.
+ (vect_get_data_access_cost): New function.
+ (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
+ vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
+ vect_peeling_hash_choose_best_peeling): Likewise.
+ (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
+ to store all the accesses in the loop and find best possible access to
+ align using peeling for known alignment case. For unknown alignment
+ check if stores are preferred or if peeling is worthy.
+ (vect_find_same_alignment_drs): Analyze pairs of loads too.
+ (vect_supportable_dr_alignment): Add new argument and check aligned
+ accesses according to it.
+ * tree-vect-stmts.c (vect_get_stmt_cost): New function.
+ (cost_for_stmt): Call vect_get_stmt_cost.
+ (vect_model_simple_cost): Likewise.
+ (vect_model_store_cost): Call vect_get_stmt_cost. Call
+ vect_get_store_cost to calculate the cost of the statement.
+ (vect_get_store_cost): New function.
+ (vect_model_load_cost): Call vect_get_stmt_cost. Call
+ vect_get_load_cost to calculate the cost of the statement.
+ (vect_get_load_cost): New function.
+ (vectorizable_store): Update call to vect_supportable_dr_alignment.
+ (vectorizable_load): Likewise.
+ * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
+ * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
+ arguments. Handle unaligned store.
+ * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
+ (rs6000_builtin_support_vector_misalignment): Return true for word and
+ double word alignments for VSX.
+ * tree-vect-slp.c (vect_build_slp_tree): Update calls to
+ vect_supportable_dr_alignment and builtin_vectorization_cost.
+
+2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/44597
+ * config/pa/predicates.md (prefetch_cc_operand): Remove.
+ (prefetch_nocc_operand): Likewise.
+ * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
+ (prefetch_20): New insn.
+ (prefetch_cc): Remove.
+ (prefetch_nocc): Likewise.
+
+2010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * expr.c (vector_mode_valid_p): Move to c-common.c.
+ * expr.h (vector_mode_valid_p): Do not declare here.
+ * system.h: Poison GCC_EXPR_H in front-ends.
+ * Makefile.in: Update dependencies.
+
+2010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/44705
+ * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
+
+2010-07-03 Jan Hubicka <jh@suse.cz>
+
+ * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
+ TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
+ * cfgexpand.c (gimple_expand_cfg): Use new timevars.
+ * var-tracking.c (vt_find_locations, variable_tracking_main_1):
+ Likewise.
+
+ * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
+ Update timevars.V
+ * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
+ (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
+ TV_IPA_LTO_DECL_OUT): New.
+ * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
+
+2010-07-03 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (update_edge_key): Break out from ...
+ update_callers_keys): ... here;
+ (update_callee_keys): Update only the edges from caller to callee.
+ (update_all_calle_keys): Do what update_calle_keys did.
+ (decide_inlining_of_small_functions): Avoid recomputing of all
+ callees when badness increase.
+
+2010-07-03 Jie Zhang <jie@codesourcery.com>
+
+ * config/arm/arm.c (arm_attr_length_move_neon): New.
+ * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
+ * config/arm/neon.md (define_mode_attr V_slen): Remove.
+ (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
+ to compute length attribute.
+
+2010-07-03 Jie Zhang <jie@codesourcery.com>
+
+ * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
+ as predicate for operand 1 and remove its constraint.
+ * config/arm/predicates.md (vfp_register_operand): New.
+ * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
+ (*push_fp_multi): Likewise.
+
+2010-07-03 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
+
+2010-07-03 Jan Hubicka <jh@suse.cz>
+
+ * config/i386/i386.c (override_options): Revert accidental commit.
+
+2010-07-02 Le-Chun Wu <lcwu@google.com>
+
+ PR c++/44128
+ * doc/invoke.texi: Update documentation of -Wshadow.
+
+2010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
+ comparisons. Adjust to take both operands.
+ (arm_select_cc_mode): Handle DImode comparisons.
+ (arm_gen_compare_reg): Generate a scratch register for DImode
+ comparisons which require one. Use xor for Thumb equality checks.
+ (arm_const_double_by_immediates): New.
+ (arm_print_operand): Allow 'Q' and 'R' for constants.
+ (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
+ * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
+ arm_canonicalize_comparison.
+ * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
+ * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
+ prototype.
+ (arm_const_double_by_immediates): Declare.
+ * config/arm/constraints.md (Di): New constraint.
+ * config/arm/predicates.md (arm_immediate_di_operand)
+ (arm_di_operand, cmpdi_operand): New.
+ * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
+ (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
+ (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
+ (cstoredi4): Handle non-Cirrus also.
+
+2010-07-02 Julian Brown <julian@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+
+ PR target/43703
+ * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
+ (smax<mode>3): Disable for NEON float modes when
+ flag_unsafe_math_optimizations is false.
+ * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
+ (*mul<mode>3_neon)
+ (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
+ (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
+ for NEON float modes when flag_unsafe_math_optimizations is false.
+ (quad_halves_<code>v4sf): Only enable if
+ flag_unsafe_math_optimizations is true.
+ * doc/invoke.texi (ARM Options): Add note about floating point
+ vectorization requiring -funsafe-math-optimizations.
+
+2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
+ Julian Brown <julian@codesourcery.com>
+
+ * config/arm/neon.md (UNSPEC_VABA): Delete.
+ (UNSPEC_VABAL): Delete.
+ (UNSPEC_VABS): Delete.
+ (UNSPEC_VMUL_N): Delete.
+ (adddi3_neon): New.
+ (subdi3_neon): New.
+ (mul<mode>3add<mode>_neon): Make the pattern named.
+ (mul<mode>3neg<mode>add<mode>_neon): Likewise.
+ (neon_vadd<mode>): Replace with define_expand, and move the remaining
+ unspec parts...
+ (neon_vadd<mode>_unspec): ...to this.
+ (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
+ (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
+ (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
+ (neon_vaba<mode>): Rewrite in terms of vabd.
+ (neon_vabal<mode>): Rewrite in terms of vabdl.
+ (neon_vabs<mode>): Rewrite without unspec.
+ * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
+ (*arm_subdi3): Likewise.
+ * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
+ No_op attribute to disable assembly output checks.
+ * config/arm/arm_neon.h: Regenerated.
+ * doc/arm-neon-intrinsics.texi: Regenerated.
+
+2010-07-02 Jan Hubicka <jh@suse.cz>
+
+ * ipa-split.c (split_function): For aggregate values, set the return
+ slot optimization bit. When passing DECL_BY_REFERENCE, produce
+ *<retval> = fncall.part ().
+ (execute_split_functions): Do not care about DECL_BY_REFERENCE.
+
+2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/arm/neon.md (UNSPEC_VAND): Delete.
+ (UNSPEC_VBIC): Delete.
+ (UNSPEC_VCLZ): Delete.
+ (UNSPEC_VCNT): Delete.
+ (UNSPEC_VEOR): Delete.
+ (UNSPEC_VORN): Delete.
+ (UNSPEC_VORR): Delete.
+ (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
+ core registers too.
+ (anddi3_neon): Likewise.
+ (orndi3_neon): Likewise.
+ (bicdi3_neon): Likewise.
+ (xordi3_neon): Likewise.
+ (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
+ rid of unspec and handle unused operand.
+ (neon_vcnt<mode>): Similarly, with popcount<mode>2.
+ * config/arm/predicates.md (imm_for_neon_logic_operand):
+ Require TARGET_NEON.
+ (imm_for_neon_inv_logic_operand): Likewise.
+ * config/arm/arm.md (define_split for logical_binary_operator):
+ Disable for NEON registers.
+ (anddi3): Add new define_expand, and rename the insn. Disable
+ this insn for NEON, where anddi3_neon now applies.
+ (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
+ (iordi3): As for anddi3.
+ (xordi3): Likewise.
+ * config/arm/neon.ml (Vand): Split DImode variants and mark them
+ as No_op to disable testing for exact instruction match.
+ (Vorr): Likewise.
+ (Veor): Likewise.
+ (Vbic): Likewise.
+ (Vorn): Likewise.
+ * config/arm/arm_neon.h: Regenerated.
+ * doc/arm-neon-intrinsics.texi: Regenerated.
+
+2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * expr.h (emit_stack_probe): Declare.
+ * explow.c (emit_stack_probe): Make global.
+ (anti_adjust_stack_and_probe): Fix comments.
+ * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
+ * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+ * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
+ * config/sparc/sparc.c: Include except.h.
+ (sparc_emit_probe_stack_range): New function.
+ (output_probe_stack_range): Likewise.
+ (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
+ built-in stack checking is enabled.
+ * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
+ * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
+ (probe_stack_range): New insn.
+
+2010-07-02 Richard Guenther <rguenther@suse.de>
+
+ PR target/43958
+ * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
+ for argument alignment.
+
+2010-07-02 Jan Hubicka <jh@suse.cz>
+
+ * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
+ walk backwards from entry_bb to check only those basic block of header
+ that might lead to execution of split part.
+ (consider_split) ... here.
+ (find_return_bb): Allow assignment in return BB.
+ (find_retval): New.
+ (split_function): Fix name of cloned function; take care of updating
+ return value in return_bb containing move.
+
+2010-07-02 Andreas Schwab <schwab@linux-m68k.org>
+
+ PR target/44771
+ * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
+ used variable insn.
+
+2010-07-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * implicit-zee.c (combine_reaching_defs): Fix long lines.
+ (is_set_with_extension_DI): Delete.
+ (struct zero_extend_info): New structure.
+ (add_removable_zero_extend): New function.
+ (find_removable_zero_extends): Use note_stores to find SETs.
+ (find_and_remove_ze): Fix long line, remove superfluous parentheses.
+
+2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
+
+ * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
+ is_miss_rate_acceptable. Pull total_positions computation
+ out of the loops. Early return if miss_positions exceeds
+ the acceptable threshold.
+ * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
+ is_miss_rate_acceptable after renaming of compute_miss_rate.
+
+2010-07-02 Changpeng Fang <changpeng.fang@amd.com>
+
+ PR middle-end/44576
+ * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
+ of 1000) for miss rate if the address diference is greater than or
+ equal to the cache line size (the two reference will never hit the
+ same cache line).
+
+2010-07-02 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR target/42835
+ * config/arm/arm-modes.def (CC_NOTB): New mode.
+ * config/arm/arm.c (get_arm_condition_code): Handle it.
+ * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
+ * config/arm/arm.md (subsi3_compare0_c): New pattern.
+ (compare_scc): Now a define_and_split. Add a number of extra
+ splitters before it.
+
+ PR target/42172
+ * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
+ and ZERO_EXTEND.
+ (arm_rtx_costs_1): Likewise.
+ (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
+ * config/arm/arm.md (is_arch6): New attribute.
+ (zero_extendhisi2, zero_extendqisi2, extendhisi2,
+ extendqisi2): Tighten the code somewhat, avoiding invalid
+ RTL to occur in the expander patterns.
+ (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
+ (thumb1_zero_extendhisi2_v6): Delete.
+ (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
+ (thumb1_extendhisi2_v6): Delete.
+ (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
+ (thumb1_extendqisi2_v6): Delete.
+ (zero_extendhisi2 for register input splitter): New.
+ (zero_extendqisi2 for register input splitter): New.
+ (thumb1_extendhisi2 for register input splitter): New.
+ (extendhisi2 for register input splitter): New.
+ (extendqisi2 for register input splitter): New.
+ (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
+ (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
+ and add support for a register alternative requiring a split.
+ (thumb1_zero_extendqisi2): Likewise.
+ (arm_zero_extendqisi2): Likewise.
+ (arm_extendhisi2): Likewise.
+ (arm_extendqisi2): Likewise.
+
+2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
+ instead of an unspec.
+ (neon_expand_vector_init): Likewise.
+ * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
+ (UNSPEC_VDUP_LANE): Delete.
+ (UNSPEC VDUP_N): Delete.
+ (UNSPEC_VGET_HIGH): Delete.
+ (UNSPEC_VGET_LANE): Delete.
+ (UNSPEC_VGET_LOW): Delete.
+ (UNSPEC_VMVN): Delete.
+ (UNSPEC_VSET_LANE): Delete.
+ (V_double_vector_mode): New.
+ (vec_set<mode>_internal): Make code emitted match that for the
+ corresponding intrinsics.
+ (vec_setv2di_internal): Likewise.
+ (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
+ (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
+ (neon_vset_lane<mode>): Combine double and quad patterns and
+ expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
+ (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
+ (neon_vdup_n<mode>): Rewrite RTL without unspec.
+ (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
+ (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
+ with neon_vdup_lanev2di, adjusting the pattern from the latter
+ to be predicable for consistency.
+ (neon_vdup_lane<mode>_internal): New.
+ (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
+ to avoid using an unspec.
+ (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
+ (neon_vdup_lanev2di): Turn into a define_expand.
+ (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
+ (neon_vget_high<mode>): Replace with....
+ (neon_vget_highv16qi): New pattern using canonical RTL.
+ (neon_vget_highv8hi): Likewise.
+ (neon_vget_highv4si): Likewise.
+ (neon_vget_highv4sf): Likewise.
+ (neon_vget_highv2di): Likewise.
+ (neon_vget_low<mode>): Replace with....
+ (neon_vget_lowv16qi): New pattern using canonical RTL.
+ (neon_vget_lowv8hi): Likewise.
+ (neon_vget_lowv4si): Likewise.
+ (neon_vget_lowv4sf): Likewise.
+ (neon_vget_lowv2di): Likewise.
+
+ * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
+ test for this emitting vmov.
+ (Vset_lane): Likewise.
+ (Vdup_n): Likewise.
+ (Vmov_n): Likewise.
+
+ * doc/arm-neon-intrinsics.texi: Regenerated.
+
+2010-07-02 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/arm/neon.md (vec_extractv2di): Correct error in register
+ numbering to reconcile with neon_vget_lanev2di.
+
+2010-07-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (pt_solution_set_var): New function.
+ * tree-ssa-alias.h (pt_solution_set_var): Declare.
+ * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
+ points-to information.
+
+2010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
+
+ * config/s390/s390.c (override_options): Adopt prefetching
+ at -O3 to handle flag_prefetch_loop_arrays as a tristate.
+
+2010-07-02 Jan Hubicka <jh@suse.cz>
+
+ * df-problems.c (df_kill_notes): Do not collect dead notes.
+ (df_set_note): Just call add_reg_note.
+ (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
+ df_create_unused_note): Do not deal with lists of old notes.
+ (df_note_bb_compute): Likewise.
+
+2010-07-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (find_func_aliases): Handle
+ pointer alignment via BIT_AND_EXPR.
+ * tree-vrp.c (extract_range_from_binary_expr): Likewise.
+
+2010-07-02 Richard Guenther <rguenther@suse.de>
+
+ * tree-data-ref.c (initialize_data_dependence_relation): Handle
+ mismatching number of dimensions properly.
+
+2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ PR target/44707
+ * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
+ (lo_sum (high ...) ...) patterns generated by earlier passes.
+
+2010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * doc/install.texi (Prerequisites): Document Perl requirement on
+ Solaris 2.
+ (Specific, *-*-solaris2*): Document GNU c++filt requirement.
+
+2010-07-02 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/44777
+ * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
+
+2010-07-02 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/44706
+ * predict.c (predict_paths_for_bb): Handle case when control dependence
+ BB has only abnormal edges.
+
+2010-07-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44748
+ * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
+ the embedded conversion in MEM_REFs.
+
+2010-07-01 López-Ibáñez <manu@gcc.gnu.org>
+
+ * reload.c: Include toplev.h.
+ * recog.c: Likewise.
+ * Makefile.in: Adjust dependencies.
+
+2010-07-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/44694
+ * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
+ or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
+
+2010-07-01 Richard Guenther <rguenther@suse.de>
+
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
+ types for offsets.
+
+2010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR target/44732
+ * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
+ Fix argument types.
+
+2010-07-01 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR target/44727
+ * config/i386/i386.md (peephole2 for arithmetic ops with memory):
+ Make sure operand 0 dies.
+
+2010-07-01 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/42834
+ PR middle-end/44468
+ * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
+ * doc/generic.texi (References to storage): Document MEM_REF.
+ * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
+ (print_call_name): Likewise.
+ * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
+ (build_simple_mem_ref_loc): New function.
+ (mem_ref_offset): Likewise.
+ * tree.h (build_simple_mem_ref_loc): Declare.
+ (build_simple_mem_ref): Define.
+ (mem_ref_offset): Declare.
+ * fold-const.c: Include tree-flow.h.
+ (operand_equal_p): Handle MEM_REF.
+ (build_fold_addr_expr_with_type_loc): Likewise.
+ (fold_comparison): Likewise.
+ (fold_unary_loc): Fold
+ VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
+ (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
+ fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
+ * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
+ (ptr_deref_may_alias_ref_p_1): Likewise.
+ (ao_ref_base_alias_set): Properly differentiate base object for
+ offset and TBAA.
+ (ao_ref_init_from_ptr_and_size): Use MEM_REF.
+ (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
+ (indirect_refs_may_alias_p): Likewise.
+ (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
+ chasing code.
+ (ref_maybe_used_by_call_p_1): Handle MEM_REF.
+ (call_may_clobber_ref_p_1): Likewise.
+ * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
+ * expr.c (expand_assignment): Handle MEM_REF.
+ (store_expr): Handle MEM_REFs from STRING_CSTs.
+ (store_field): If expanding a MEM_REF of a non-addressable
+ decl use bitfield operations.
+ (get_inner_reference): Handle MEM_REF.
+ (expand_expr_addr_expr_1): Likewise.
+ (expand_expr_real_1): Likewise.
+ * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
+ * alias.c (ao_ref_from_mem): Handle MEM_REF.
+ (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
+ * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
+ (dr_analyze_indices): Likewise.
+ (dr_analyze_alias): Likewise.
+ (object_address_invariant_in_loop_p): Likewise.
+ * gimplify.c (mark_addressable): Handle MEM_REF.
+ (gimplify_cond_expr): Build MEM_REFs.
+ (gimplify_modify_expr_to_memcpy): Likewise.
+ (gimplify_init_ctor_preeval_1): Handle MEM_REF.
+ (gimple_fold_indirect_ref): Adjust.
+ (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
+ * tree.def (MEM_REF): New tree code.
+ * tree-dfa.c: Include toplev.h.
+ (get_ref_base_and_extent): Handle MEM_REF.
+ (get_addr_base_and_unit_offset): New function.
+ * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
+ * gimple-fold.c (may_propagate_address_into_dereference): Handle
+ MEM_REF.
+ (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
+ accesses if the array has just one dimension. Remove always true
+ parameter. Do not require type compatibility here.
+ (maybe_fold_offset_to_component_ref): Remove.
+ (maybe_fold_stmt_indirect): Remove.
+ (maybe_fold_reference): Remove INDIRECT_REF handling.
+ Fold back to non-MEM_REF.
+ (maybe_fold_offset_to_address): Simplify. Deal with type
+ mismatches here.
+ (maybe_fold_reference): Likewise.
+ (maybe_fold_stmt_addition): Likewise. Also handle
+ &ARRAY + I in addition to &ARRAY[0] + I.
+ (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
+ (gimple_get_relevant_ref_binfo): Handle MEM_REF.
+ * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
+ * tree-ssa.c (useless_type_conversion_p): Make most pointer
+ conversions useless.
+ (warn_uninitialized_var): Handle MEM_REF.
+ (maybe_rewrite_mem_ref_base): New function.
+ (execute_update_addresses_taken): Implement re-writing of MEM_REFs
+ to SSA form.
+ * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
+ INDIRECT_REF handling.
+ (copy_tree_body_r): Handle MEM_REF.
+ * gimple.c (is_gimple_addressable): Adjust.
+ (is_gimple_address): Likewise.
+ (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
+ invariant base are invariant.
+ (is_gimple_min_lval): Adjust.
+ (is_gimple_mem_ref_addr): New function.
+ (get_base_address): Handle MEM_REF.
+ (count_ptr_derefs): Likewise.
+ (get_base_loadstore): Likewise.
+ * gimple.h (is_gimple_mem_ref_addr): Declare.
+ (gimple_call_fndecl): Handle invariant MEM_REF addresses.
+ * tree-cfg.c (verify_address): New function, split out from ...
+ (verify_expr): ... here. Use for verifying ADDR_EXPRs and
+ the address operand of MEM_REFs. Verify MEM_REFs. Reject
+ INDIRECT_REFs.
+ (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
+ INDIRECT_REF. Allow conversions.
+ (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
+ a register does not change its size.
+ (verify_types_in_gimple_reference): Verify MEM_REF.
+ (verify_gimple_assign_single): Disallow INDIRECT_REF.
+ Handle MEM_REF.
+ * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
+ New.
+ (mark_address_taken): Handle MEM_REF.
+ (get_indirect_ref_operands): Pass through opf_not_non_addressable.
+ (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.
+ (search_for_addr_array): Likewise.
+ (check_array_bounds): Likewise.
+ (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
+ * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
+ (ref_always_accessed_p): Likewise.
+ (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
+ * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
+ Handle MEM_REF.
+ * cgraphbuild.c (mark_load): Properly check for NULL result
+ from get_base_address.
+ (mark_store): Likewise.
+ * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
+ * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
+ handling for MEM_REF.
+ * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
+ &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
+ * builtins.c (stabilize_va_list_loc): Use the function ABI
+ valist type if we couldn't canonicalize the argument type.
+ Always dereference with the canonical va-list type.
+ (maybe_emit_free_warning): Handle MEM_REF.
+ (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
+ memmove to memcpy.
+ * builtins.c (fold_builtin_memory_op): Use ref-all types
+ for all memcpy foldings.
+ * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
+ (build_outer_var_ref): Likewise.
+ (scan_omp_1_op): Likewise.
+ (lower_rec_input_clauses): Likewise.
+ (lower_lastprivate_clauses): Likewise.
+ (lower_reduction_clauses): Likewise.
+ (lower_copyprivate_clauses): Likewise.
+ (expand_omp_atomic_pipeline): Likewise.
+ (expand_omp_atomic_mutex): Likewise.
+ (create_task_copyfn): Likewise.
+ * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
+ Remove old union trick. Initialize constant offsets.
+ (ao_ref_init_from_vn_reference): Likewise. Do not handle
+ INDIRECT_REF. Init base_alias_set properly.
+ (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
+ (vn_reference_fold_indirect): Adjust for MEM_REFs.
+ (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
+ for ARRAY_REFs.
+ (may_insert): Remove.
+ (visit_reference_op_load): Do not test may_insert.
+ (run_scc_vn): Remove parameter, do not fiddle with may_insert.
+ * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
+ a field to store the constant offset this op applies.
+ (run_scc_vn): Adjust prototype.
+ * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
+ * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
+ MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
+ bother about volatile qualifiers on pointers.
+ (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
+ * tree-ssa-loop-ivopts.c
+ * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
+ (strip_offset_1): Likewise.
+ (find_interesting_uses_address): Replace INDIRECT_REF handling with
+ MEM_REF handling.
+ (get_computation_cost_at): Likewise.
+ * ipa-pure-const.c (check_op): Handle MEM_REF.
+ * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
+ * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
+ and constants.
+ * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
+ * tree-parloops.c (take_address_of): Adjust for MEM_REF.
+ (eliminate_local_variables_1): Likewise.
+ (create_call_for_reduction_1): Likewise.
+ (create_loads_for_reductions): Likewise.
+ (create_loads_and_stores_for_name): Likewise.
+ * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
+ (ssa_accessed_in_tree): Handle MEM_REF.
+ (ssa_accessed_in_assign_rhs): Likewise.
+ (update_type_size): Likewise.
+ (analyze_accesses_for_call_stmt): Likewise.
+ (analyze_accesses_for_assign_stmt): Likewise.
+ (transform_access_sites): Likewise.
+ (transform_allocation_sites): Likewise.
+ * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
+ * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
+ not handle INDIRECT_REF.
+ * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
+ (cond_store_replacement): Likewise.
+ * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
+ MEM_REF, no not handle INDIRECT_REFs.
+ (insert_into_preds_of_block): Properly initialize avail.
+ (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
+ for ARRAY_REFs. Properly handle reference lookups that
+ require a bit re-interpretation.
+ (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
+ * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
+ (build_ref_for_offset_1): Remove.
+ (build_ref_for_offset): Build MEM_REFs.
+ (gate_intra_sra): Disable for now.
+ (sra_ipa_modify_expr): Handle MEM_REF.
+ (ipa_early_sra_gate): Disable for now.
+ * tree-sra.c (create_access): Swap INDIRECT_REF handling for
+ MEM_REF handling.
+ (disqualify_base_of_expr): Likewise.
+ (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
+ MEM_REF handling.
+ (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
+ Use mem_ref_offset. Remove bogus folding.
+ (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
+ (make_fancy_name_1): Add support for MEM_REF.
+ * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
+ * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
+ * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
+ (compute_complex_ancestor_jump_func): Likewise.
+ (ipa_analyze_virtual_call_uses): Likewise.
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
+ INDIRECT_REF folding with more generalized MEM_REF folding.
+ (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
+ (forward_propagate_addr_into_variable_array_index): Also handle
+ &ARRAY + I in addition to &ARRAY[0] + I.
+ * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
+ * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
+ creates assignments with overlap.
+ * tree-nested.c (get_static_chain): Adjust for MEM_REF.
+ (get_frame_field): Likewise.
+ (get_nonlocal_debug_decl): Likewise.
+ (convert_nonlocal_reference_op): Likewise.
+ (struct nesting_info): Add mem_refs pointer-set.
+ (create_nesting_tree): Allocate it.
+ (convert_local_reference_op): Insert to be folded mem-refs.
+ (fold_mem_refs): New function.
+ (finalize_nesting_tree_1): Perform defered folding of mem-refs
+ (free_nesting_tree): Free the pointer-set.
+ * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
+ (vectorizable_load): Likewise.
+ * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
+ (propagate_with_phi): Likewise.
+ * tree-object-size.c (addr_object_size): Handle MEM_REFs
+ instead of INDIRECT_REFs.
+ (compute_object_offset): Handle MEM_REF.
+ (plus_stmt_object_size): Handle MEM_REF.
+ (collect_object_sizes_for): Dispatch to plus_stmt_object_size
+ for &MEM_REF.
+ * tree-flow.h (get_addr_base_and_unit_offset): Declare.
+ (symbol_marked_for_renaming): Likewise.
+ * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
+ (fold-const.o): Add $(TREE_FLOW_H).
+ * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
+ (find_func_clobbers): Likewise.
+ * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
+ (decompose_access): Likewise.
+ (replace_field_acc): Likewise.
+ (replace_field_access_stmt): Likewise.
+ (insert_new_var_in_stmt): Likewise.
+ (get_stmt_accesses): Likewise.
+ (reorg_structs_drive): Disable.
+ * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
+ (ix86_canonical_va_list_type): Likewise.
+
2010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
PR other/44566
@@ -105,8 +3881,7 @@
* toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
to rtl.h.
(error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
- * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations
- here.
+ * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
* rtl-error.h: New.
* regrename.c: Do not include toplev.h. Include rtl-error.h.
* rtl-error.c: Likewise.
@@ -189,15 +3964,13 @@
(flags_needed_for_conditional): New function.
(flags_from_mode): New function.
(rx_compare_redundant): New function - scans backwards through
- insn list to find out if condition flags are already set
- correctly.
+ insn list to find out if condition flags are already set correctly.
(TARGET_CC_MODES_COMPATIBLE): Define.
* config/rx/rx-protos.h (rx_compare_redundant): Prototype.
* config/rx/rx.h (BRANCH_COST): Define.
(REGISTER_MOVE_COST): Define.
- * config/rx/predicates (rx_source_operand): Allow all constant
- types.
+ * config/rx/predicates (rx_source_operand): Allow all constant types.
* config/rx/rx.md (addsi3): Add alternative for swapped operands.
(tstsi4): New pattern.
* config/rx/rx.c (rx_memory_move_cost): Define.
@@ -387,8 +4160,8 @@
* predict.h (rebuild_frequencies): Declare.
* tree-inline.c (copy_cfg_body): Compute properly count & frequency of
entry block and edge reaching new_entry.
- (tree_function_versioning): When doing partial cloning, rebuild frequencies
- when done.
+ (tree_function_versioning): When doing partial cloning, rebuild
+ frequencies when done.
* passes.c (execute_function_todo): Use rebild_frequencies.
2010-06-29 Richard Guenther <rguenther@suse.de>
@@ -574,8 +4347,8 @@
2010-06-28 Jan Hubicka <jh@suse.cz>
PR tree-optimization/44357
- * ipa-inline.c (add_new_edges_to_heap): Do not add edges to uninlinable
- functions.
+ * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
+ uninlinable functions.
2010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
@@ -587,7 +4360,7 @@
* config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
* config/rs6000/titan.md: New file.
* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
-
+
2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
* tree-browser.c (TB_history_stack): Convert to a VEC.
@@ -621,22 +4394,22 @@
2010-06-28 Bingfeng Mei <bmei@broadcom.com>
- * cgraph.h (struct varpool_node): new used_from_object_file flag.
- (struct cgraph_local_info): new used_from_object_file flag.
- * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
- (cgraph_clone_node): initialize used_from_object_file.
- (cgraph_create_virtual_clone): initialize used_from_object_file.
- * lto-symbtab.c (lto_symtab_merge_decls_1): Set
- used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
- when compiling with -fwhole-program.
- (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
+ * cgraph.h (struct varpool_node): new used_from_object_file flag.
+ (struct cgraph_local_info): new used_from_object_file flag.
+ * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
+ (cgraph_clone_node): initialize used_from_object_file.
+ (cgraph_create_virtual_clone): initialize used_from_object_file.
+ * lto-symbtab.c (lto_symtab_merge_decls_1): Set
+ used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
+ when compiling with -fwhole-program.
+ (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
internal resolver.
- * ipa.c (function_and_variable_visibility): Set externally_visible
- flag of varpool_node if used_from_object_file flag is set.
- (cgraph_externally_visible_p): check used_from_object_file flag.
- * doc/invoke.texi (-fwhole-program option): Change description of
- externally_visible attribute accordingly.
- * doc/extend.texi (externally_visible): Ditto.
+ * ipa.c (function_and_variable_visibility): Set externally_visible
+ flag of varpool_node if used_from_object_file flag is set.
+ (cgraph_externally_visible_p): check used_from_object_file flag.
+ * doc/invoke.texi (-fwhole-program option): Change description of
+ externally_visible attribute accordingly.
+ * doc/extend.texi (externally_visible): Ditto.
2010-06-27 Jan Hubicka <jh@suse.cz>
@@ -661,7 +4434,7 @@
* 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.
@@ -748,8 +4521,7 @@
(visit_bb): Handle PHIs correctly.
* tree-inline.c (copy_phis_for_bb): Be able to copy
PHI from entry edge.
- (copy_cfg_body): Produce edge from entry BB before copying
- PHIs.
+ (copy_cfg_body): Produce edge from entry BB before copying PHIs.
2010-06-26 Richard Guenther <rguenther@suse.de>
@@ -952,8 +4724,7 @@
* config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
* doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
- * gcc.c (enum add_del, struct modify_target, modify_target):
- Remove.
+ * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
(process_command): Remove code conditional on MODIFY_TARGET_NAME.
* system.h (MODIFY_TARGET_NAME): Poison.
@@ -1177,10 +4948,10 @@
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>
@@ -1382,8 +5153,6 @@
(enable_warning_as_error): Likewise.
* diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
use in the history chain.
- * c-family/c-pragma.c (handle_pragma_diagnostic): Add push/pop,
- allow these pragmas anywhere.
* doc/extend.texi: Document pragma GCC diagnostic changes.
2010-06-21 Jakub Jelinek <jakub@redhat.com>
@@ -2118,10 +5887,6 @@
PR bootstrap/44509
* c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
- * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
- (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
- (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
- ggc_strdup instead of xstrdup.
2010-06-14 Ira Rosen <irar@il.ibm.com>
@@ -2313,10 +6078,6 @@
2010-06-10 Jakub Jelinek <jakub@redhat.com>
- * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
- (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
- (lazy_hex_fp_value): New function.
- (builtin_define_with_hex_fp_value): Provide definitions lazily.
* Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
2010-06-11 Sebastian Pop <sebastian.pop@amd.com>
@@ -3879,7 +7640,7 @@
* 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.).
@@ -4659,7 +8420,7 @@
* 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,
@@ -5567,7 +9328,7 @@
* sched-int.h: Likewise.
* sched-rgn.c: Likewise.
-2010-05-27 Jon Beniston <jon@beniston.com>
+2010-05-27 Jon Beniston <jon@beniston.com>
PR 43726
* config/lm32/lm32.h: Remove definition of
@@ -6020,7 +9781,7 @@
* Makefile.in (EXCEPT_H): Fix typo.
-2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
+2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
* ira-build.c (update_conflict_hard_reg_costs): New.
(ira_build): Call update_conflict_hard_reg_costs.
@@ -6616,7 +10377,7 @@
(*arm_return): New name for ARM return insn.
* config/arm/thumb2.md (*thumb2_return): New insn pattern.
-2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
+2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
* config.gcc (sparc64-*-rtems*): New target.
@@ -6697,7 +10458,7 @@
goto_locus of outgoing edge, or gimple_location of any of the
labels differs.
-2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
+2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
* ira.c (ira_non_ordered_class_hard_regs): Define.
(setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
@@ -8237,7 +11998,7 @@
* doc/standards.texi (Standards): Link to unversioned
cxx0x_status.html page.
-2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
+2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
PR target/43708
* config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
@@ -8262,7 +12023,7 @@
* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
a diagnostic info when the insn-to-mem ratio is too small.
-2010-05-07 Richard Guenther <rguenther@suse.de>
+2010-05-07 Richard Guenther <rguenther@suse.de>
* gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
the linker plugin.
@@ -8752,7 +12513,7 @@
in a temporary instead of invoking the macro multiple times.
(track_expr_p): Likewise.
-2010-05-04 Neil Vachharajani <nvachhar@google.com>
+2010-05-04 Neil Vachharajani <nvachhar@google.com>
* doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
per new semantics.
@@ -8874,7 +12635,7 @@
* c.opt (-fstrict-enums): New.
* doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
-2010-05-03 David Ung <davidu@mips.com>
+2010-05-03 David Ung <davidu@mips.com>
James E. Wilson <wilson@codesourcery.com>
* config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
@@ -9248,7 +13009,7 @@
2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
- From Dominique d'Humieres <dominiq@lps.ens.fr>
+ From Dominique d'Humieres <dominiq@lps.ens.fr>
PR bootstrap/43858
* ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
test_set.
@@ -9536,7 +13297,7 @@
* tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
- Jan Hubicka <hubicka@ucw.cz>
+ Jan Hubicka <hubicka@ucw.cz>
* doc/invoke.texi (-Wsuggest-attribute=const,
-Wsuggest-attribute=pure): Document.
@@ -9698,7 +13459,7 @@
bits for artificial defs at the top of the block.
* fwprop.c (single_def_use_enter_block): Don't call it.
-2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
+2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
PR 43715
* gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
@@ -12245,11 +16006,11 @@
* Makefile.in ($(out_object_file)): Depend on
gt-$(basename $(notdir $(out_file))).h.
-2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
+2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
* config.gcc (lm32-*-rtems*): Add t-lm32.
-2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
+2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
* config.gcc: Add lm32-*-rtems*.
* config/lm32/rtems.h: New file.
@@ -12304,8 +16065,8 @@
PR middle-end/43602
Revert
- 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
- Jack Howarth <howarth@bromo.med.uc.edu>
+ 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
+ Jack Howarth <howarth@bromo.med.uc.edu>
* tree-profile.c (tree_init_ic_make_global_vars): Make static
variables TLS.
@@ -12595,8 +16356,8 @@
* config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
stack check if the mask would be zero.
-2010-03-30 Seongbae Park <seongbae.park@gmail.com>
- Jack Howarth <howarth@bromo.med.uc.edu>
+2010-03-30 Seongbae Park <seongbae.park@gmail.com>
+ Jack Howarth <howarth@bromo.med.uc.edu>
* tree-profile.c (tree_init_ic_make_global_vars): Make static
variables TLS.
@@ -12939,7 +16700,7 @@
instead of callq.
2010-03-22 Janis Johnson <janis187@us.ibm.com>
- Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+ Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* doc/sourcebuild.texi (Test Directives): Split into six
subsections, with most of the current text in new subsections
@@ -13094,8 +16855,8 @@
(sparc_file_end): Emit a hidden comdat symbol for the PIC
thunk if possible. Output CFI information as needed.
-2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
- Jack Howarth <howarth@bromo.med.uc.edu>
+2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+ Jack Howarth <howarth@bromo.med.uc.edu>
PR target/36399
* config/i386/i386.h: Fix ABI on darwin x86-32.
@@ -13238,7 +16999,7 @@
* graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
statements before splitting block.
-2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* doc/sourcebuild.texi (Testsuites): Fix markup.
Use pathnames relative to gcc/testsuite.
@@ -13850,7 +17611,7 @@
* tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
uses of relevant DEFs that are dead outside the loop too.
-2010-03-06 Alexandre Oliva <aoliva@redhat.com>
+2010-03-06 Alexandre Oliva <aoliva@redhat.com>
* var-tracking.c (dataflow_set_merge): Swap src and src2.
Reverted:
@@ -14632,7 +18393,7 @@
* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
lang_hooks.types_compatible_p instead of comptypes.
-2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
+2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
* config/arm/lib1funcs.asm (__prefer_thumb__): New define.
(udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
@@ -14731,8 +18492,8 @@
flag_var_tracking_assignments.
* Makefile.in (var-tracking.o): Adjust dependencies.
-2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
- Jakub Jelinek <jakub@redhat.com>
+2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
+ Jakub Jelinek <jakub@redhat.com>
PR target/42854
* config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
@@ -14831,7 +18592,7 @@
2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
Jack Howarth <howarth@bromo.med.uc.edu>
- Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
+ Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
PR target/42982
Partial revert of unintended change in fix for PR41605.
@@ -16254,7 +20015,7 @@
(maybe_tidy_empty_bb): Delete prototype.
(purge_empty_blocks): Declare.
-2010-01-14 Andrey Belevantsev <abel@ispras.ru>
+2010-01-14 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/42249
* sel-sched.c (try_replace_dest_reg): When chosen register