X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=689f70b1103ef40a249bb3688a3e5b0bcce8312f;hb=bd3c45b4247bafba79884cecdac79e00f136d283;hp=e42b826107eba84a60ba2c9b04ce2507a26c1c6e;hpb=01d25b4ce56f38a5200c1f713100341b6acc9738;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e42b826107e..689f70b1103 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,178 @@ +2010-04-28 Rainer Orth + + PR target/22224 + * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine. + +2010-04-28 Martin Jambor + + * 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 + + 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 + + PR c++/43880 + * tree-inline.c (copy_bind_expr): Also copy bind expr vars + value-exprs. + +2010-04-27 Manuel López-Ibáñez + Jan Hubicka + + * 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 + + * 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 + + * tree.h: Fix truncated long macros. + +2010-04-27 Kai Tietz + + * 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 + + * 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 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.