+2010-04-28 Xinliang David Li <davidxl@google.com>
+
+ PR c/42643
+ * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
+ (compute_uninit_opnds_pos): New function.
+ (is_non_loop_exit_postdominating): New function.
+ (compute_control_dep_chain): New function.
+ (find_pdom): New function.
+ (convert_control_dep_chain_into_preds): New function.
+ (find_predicates): New function.
+ (find_control_equiv_block): New function.
+ (collect_phi_def_edges): New function.
+ (find_def_preds): New function.
+ (find_dom): New function.
+ (dump_predicates): New function.
+ (get_cmp_code): New function.
+ (is_value_included_in): New function.
+ (find_matching_predicate_in_rest_chains): New function.
+ (use_pred_not_overlap_with_undef_path_pred): New function.
+ (is_use_properly_guarded): New function.
+ (normalize_cond_1): New function.
+ (is_and_or_or): New function.
+ (normalize_cond): New function.
+ (is_gcond_subset_of): New function.
+ (is_subset_of_any): New function.
+ (is_or_set_subset_of): New function.
+ (is_and_set_subset_of): New function.
+ (is_norm_cond_subset_of): New function.
+ (is_pred_expr_subset_of): New function.
+ (is_pred_chain_subset_of): New function.
+ (is_included_in): New function.
+ (is_superset_of): New function.
+ (find_uninit_use): New function.
+ (warn_uninitialized_phi): New function.
+ (compute_possibly_undefined_names): New function.
+ (ssa_undefined_value_p): New function.
+ (execute_late_warn_uninitialized): New function.
+ * tree-ssa.c (ssa_undefined_value_p): Removed.
+ (warn_uninit): Changed to extern.
+ (warn_uninitialized_phi): Removed.
+ (warn_uninitialized_vars): Changed to extern.
+ (execute_late_warn_uninitialized): Removed
+ * tree-flow.h: Add new prototypes.
+ * timevar.def: Add new time variable.
+ * Makefile.in: Add new build file.
+
+2010-04-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
+ type if available.
+
+2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/22224
+ * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
+
+2010-04-28 Martin Jambor <mjambor@suse.cz>
+
+ * cgraph.h (struct cgraph_node): New field indirect_calls.
+ (struct cgraph_indirect_call_info): New type.
+ (struct cgraph_edge): Removed field indirect_call. New fields
+ indirect_info, indirect_inlining_edge and indirect_unknown_callee.
+ (cgraph_create_indirect_edge): Declare.
+ (cgraph_make_edge_direct): Likewise.
+ (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
+ * ipa-prop.h (struct ipa_param_call_note): Removed.
+ (struct ipa_node_params): Removed field param_calls.
+ (ipa_create_all_structures_for_iinln): Declare.
+ * cgraph.c: Described indirect edges and uids in initial comment.
+ (cgraph_add_edge_to_call_site_hash): New function.
+ (cgraph_edge): Search also among the indirect edges, use
+ cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
+ (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
+ one, use cgraph_add_edge_to_call_site_hash to add edges to the call
+ site hash.
+ (initialize_inline_failed): Assign a reason to indirect edges.
+ (cgraph_create_edge_1): New function.
+ (cgraph_create_edge): Moved some functionality to
+ cgraph_create_edge_1.
+ (cgraph_create_indirect_edge): New function.
+ (cgraph_edge_remove_callee): Add an assert checking for
+ non-indirectness.
+ (cgraph_edge_remove_caller): Special-case indirect edges.
+ (cgraph_remove_edge): Likewise.
+ (cgraph_set_edge_callee): New function.
+ (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
+ (cgraph_make_edge_direct): New function.
+ (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
+ the declaration of the call statement matches.
+ (cgraph_node_remove_callees): Special-case indirect edges.
+ (cgraph_clone_edge): Likewise.
+ (cgraph_clone_node): Clone also the indirect edges.
+ (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
+ indirect_call, dump count of indirect_calls edges.
+ * ipa-prop.c (iinlining_processed_edges): New variable.
+ (ipa_note_param_call): Create indirect edges instead of
+ creating notes. New parameter node.
+ (ipa_analyze_call_uses): New parameter node, pass it on to
+ ipa_note_param_call.
+ (ipa_analyze_stmt_uses): Likewise.
+ (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
+ (print_edge_addition_message): Work on edges rather than on notes.
+ (update_call_notes_after_inlining): Likewise, renamed to
+ update_indirect_edges_after_inlining.
+ (ipa_create_all_structures_for_iinln): New function.
+ (ipa_free_node_params_substructures): Do not free notes.
+ (ipa_edge_duplication_hook): Propagate bits within
+ iinlining_processed_edges bitmap.
+ (ipa_node_duplication_hook): Do not duplicate notes.
+ (free_all_ipa_structures_after_ipa_cp): Renamed to
+ ipa_free_all_structures_after_ipa_cp.
+ (free_all_ipa_structures_after_iinln): Renamed to
+ ipa_free_all_structures_after_iinln.g
+ (ipa_write_param_call_note): Removed.
+ (ipa_read_param_call_note): Removed.
+ (ipa_write_indirect_edge_info): New function.
+ (ipa_read_indirect_edge_info): Likewise.
+ (ipa_write_node_info): Do not stream notes, do stream information
+ in indirect edges.
+ (ipa_read_node_info): Likewise.
+ (lto_ipa_fixup_call_notes): Removed.
+ * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
+ * ipa-inline.c (pass_ipa_inline): Likewise.
+ * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
+ * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
+ * tree-inline.c (copy_bb): Removed an unnecessary double check for
+ is_gimple_call.
+ * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
+ edges.
+ * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
+ (output_cgraph): Stream also indirect edges.
+ (lto_output_edge): Added capability to stream indirect edges.
+ (input_edge): Likewise.
+ (input_cgraph_1): Likewise.
+
+2010-04-28 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/43879
+ PR tree-optimization/43909
+ * tree-ssa-structalias.c (struct variable_info): Add
+ only_restrict_pointers flag.
+ (new_var_info): Initialize it. Increment stats.total_vars here.
+ (create_function_info_for): Do not increment stats.total_vars
+ here.
+ (get_function_part_constraint): Fix build with C++.
+ (insert_into_field_list): Remove.
+ (push_fields_onto_fieldstack): Properly merge fields.
+ (create_variable_info_for): Split and simplify.
+ (create_variable_info_for_1): New piece.
+ (intra_create_variable_infos): Properly make restrict constraints
+ from parameters.
+
+2010-04-28 Richard Guenther <rguenther@suse.de>
+
+ PR c++/43880
+ * 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>
+
+ * doc/invoke.texi (-Wsuggest-attribute=const,
+ -Wsuggest-attribute=pure): Document.
+ * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
+ (function_always_visible_to_compiler_p,
+ suggest_attribute, warn_function_pure, warn_function_const):
+ New functions.
+ (check_call): Improve debug info.
+ (analyze_function): Do not check availability.
+ (add_new_function): Check availability.
+ (propagate): Output warnings.
+ (skip_function_for_local_pure_const): New function.
+ (local_pure_const): Use it; output warnings.
+ * common.opt (Wsuggest-attribute=const,
+ Wsuggest-attribute=pure): New.
+
+2010-04-27 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
+ force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
+ or DW_CFA_def_cfa_offset{,_sf}.
+
+2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree.h: Fix truncated long macros.
+
+2010-04-27 Kai Tietz <kai.tietz@onevision.com>
+
+ * collect2.c (TARGET_64BIT): Redefine to target's default.
+ * tlink.c: Likewise.
+ * config/i386/cygming.h (USER_LABEL_PREFIX): Define
+ dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
+ * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
+ for underscoring __USER_LABEL_PREFIX__.
+ * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
+ (SUB_LINK_ENTRY32): New.
+ (SUB_LINK_ENTRY64): New.
+ (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
+ * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
+ (SUB_LINK_ENTRY64): New.
+ (SUB_LINK_ENTRY): New.
+ (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
+ (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
+ x64 target is choosen.
+ * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
+ * configure: Regenerated.
+ * configure.ac (leading-mingw64-underscores): Option added.
+
+2010-04-27 Jan Hubicka <jh@suse.cz>
+
+ * doc/invoke.texi (-fipa-profile): Document.
+ * opts.c (decode_options): Enable ipa-profile at -O1.
+ * timevar.def (TV_IPA_PROFILE): Define.
+ * common.opt (fipa-profile): Add.
+ * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
+ flag for clones.
+ (cgraph_propagate_frequency): Handle only local ones.
+ * tree-pass.h (pass_ipa_profile): Declare.
+ * ipa-profile.c (gate_profile): Use flag_ipa_profile.
+ (pass_ipa_profile): Use TV_IPA_PROFILE.
+ * ipa.c (ipa_profile): New function.
+ (gate_ipa_profile): Likewise.
+ (pass_ipa_profile): New global variable.
+ * passes.c (pass_ipa_profile): New.
+
+2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
+
+2010-04-27 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/43812
+ * ipa.c (dissolve_same_comdat_group_list): New function.
+ (function_and_variable_visibility): Call
+ dissolve_same_comdat_group_list when comdat group contains external or
+ newly local nodes.
+ * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
+ lists are circular and that they contain only DECL_ONE_ONLY nodes.
+
+2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
+ (const_hash_1) <VECTOR_CST>: New case.
+ (compare_constant) <VECTOR_CST>: Likewise.
+ <ADDR_EXPR>: Deal with LABEL_REFs.
+ (copy_constant) <VECTOR_CST>: New case.
+
+2010-04-27 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.c (cgraph_propagate_frequency): New function.
+ * cgraph.h (cgraph_propagate_frequency): Declare.
+ * ipa-inline.c (cgraph_clone_inlined_nodes): Call
+ cgraph_propagate_frequency.
+
+2010-04-27 Jakub Jelinek <jakub@redhat.com>
+
+ * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
+
+2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR target/40657
+ * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
+ (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
+ here to determine which regs to push and how much stack to reserve.
+
+2010-04-27 Jie Zhang <jie@codesourcery.com>
+
+ * doc/gimple.texi (gimple_statement_with_ops): Remove
+ addresses_taken field.
+ (gimple_statement_with_memory_ops): Likewise.
+
+2010-04-27 Jan Hubicka <jh@suse.cz>
+
+ * tree-inline.c (eni_inlining_weights): Remove.
+ (estimate_num_insns): Special case more builtins.
+
+2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
+
+ PR c/32207
+ * c-typeck.c (build_binary_op): Move forward check for comparison
+ pointer with null pointer constant and adjust the diagnostic message.
+
+2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ PR lto/42776
+ * configure.ac (gcc_cv_as_section_has_align): Set if installed
+ binutils supports extended .section directive needed by LTO, or
+ warn if older binutils found.
+ (LTO_BINARY_READER): New AC_SUBST'd variable.
+ (LTO_USE_LIBELF): Likewise.
+ * gcc/config.gcc (lto_binary_reader): New target-specific configure
+ variable.
+ * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
+ (LTO_USE_LIBELF): Likewise.
+ * configure: Regenerate.
+
+ * collect2.c (is_elf): Rename from this ...
+ (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
+ object files in addition to ELF-formatted ones.
+ (scan_prog_file): Caller updated. Also allow for LTO info marker
+ symbol to be prefixed or not by an extra underscore.
+
+ * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
+ * config/i386/winnt.c: Also #include lto-streamer.h
+ (i386_pe_asm_named_section): Specify 1-byte section alignment for
+ LTO named sections.
+ (i386_pe_asm_output_aligned_decl_common): Add comment.
+ (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
+
+2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR target/43889
+ * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
+ Add missing earlyclobber for second alternative.
+
+2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
+
+ * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
+ 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>
+
+ PR 43715
+ * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
+ instead of "$gcc_cv_objdump -T".
+ Use "-undefined dynamic_lookup" on darwin.
+ * gcc/configure: Regenerate.
+
2010-04-26 Jakub Jelinek <jakub@redhat.com>
PR c/43893
2010-04-26 Ira Rosen <irar@il.ibm.com>
- * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
- determine if the statement is vectorizable, and a macro to
- access it.
- * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
- Skip statements that can't be vectorized. If the analysis
- fails, mark the statement as unvectorizable if vectorizing
- basic block.
+ * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
+ determine if the statement is vectorizable, and a macro to access it.
+ * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
+ Skip statements that can't be vectorized. If the analysis fails,
+ mark the statement as unvectorizable if vectorizing basic block.
(vect_compute_data_refs_alignment): Likewise.
- (vect_verify_datarefs_alignment): Skip statements marked as
+ (vect_verify_datarefs_alignment): Skip statements marked as
unvectorizable. Add print.
- (vect_analyze_group_access): Skip statements that can't be
- vectorized. If the analysis fails, mark the statement as
+ (vect_analyze_group_access): Skip statements that can't be
+ vectorized. If the analysis fails, mark the statement as
unvectorizable if vectorizing basic block.
- (vect_analyze_data_ref_accesses, vect_analyze_data_refs):
- Likewise.
- * tree-vect-stmts.c (vectorizable_store): Fix the number of
+ (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
+ * tree-vect-stmts.c (vectorizable_store): Fix the number of
generated stmts for SLP.
(new_stmt_vec_info): Initialize the new field.
- * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
+ * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
statements marked as unvectorizable.
2010-04-25 Joseph Myers <joseph@codesourcery.com>