1. 29 May, 2013 1 commit
    • cgraph.h (symtab_node_base): Add definition, alias and analyzed flags... · e70670cf
      	* cgraph.h (symtab_node_base): Add definition, alias and analyzed
      	flags; reorder rest of fields in more consistent way.
      	(varpool_node): Remove analyzed, finalized and alias.
      	(cgraph_ndoe): Likewise.
      	(symtab_alias_ultimate_target): New function.
      	(cgraph_function_node): Move offline.
      	(cgraph_reset_node): Declare.
      	(cgraph_comdat_can_be_unshared_p): Remove.
      	(varpool_remove_initializer): Declare.
      	(varpool_first_defined_variable, varpool_next_defined_variable
      	cgraph_first_defined_function, cgraph_next_defined_function): Update.
      	(cgraph_function_with_gimple_body_p): Update.
      	(varpool_all_refs_explicit_p): Update.
      	(symtab_alias_target): New function.
      	(cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
      	(cgraph_alias_target, varpool_alias_target): .. this one; simplify.
      	(cgraph_function_or_thunk_node): Simplify using symtab_alias_ultimate_target.
      	(varpool_variable_node): Likewise.
      	* cgraph.c (cgraph_create_function_alias): Update.
      	(cgraph_add_thunk): Update.
      	(cgraph_remove_node): Update.
      	(dump_cgraph_node): Do not dump removed flags.
      	(cgraph_function_body_availability): Update.
      	(cgraph_propagate_frequency): Update.
      	(verify_cgraph_node): Check sanity of local flag.
      	(cgraph_function_node): Move here from cgraph.h; revamp for
      	cgraph_function_or_thunk_node.
      	* lto-symtab.c (lto_varpool_replace_node): Update.
      	(lto_symtab_resolve_can_prevail_p): Update.
      	(lto_symtab_merge_cgraph_nodes): Update.
      	* ipa-cp.c (determine_versionability, initialize_node_lattices,
      	propagate_constants_accross_call, devirtualization_time_bonus,
      	ipcp_propagate_stage): Update.
      	* tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
      	* ipa-inline-transform.c (clone_inlined_nodes, preserve_function_body_p): Update.
      	* ipa-reference.c (propagate): Update.
      	(write_node_summary_p): Update.
      	* toplev.c (wrapup_global_declaration_2): Update.
      	* cgraphunit.c (cgraph_analyze_function): Rename to ...
      	(analyze_function) ... this one.
      	(cgraph_process_new_functions): Update.
      	(cgraph_reset_node): Export.
      	(cgraph_finalize_function): Update.
      	(cgraph_add_new_function): Update.
      	(process_function_and_variable_attributes): Update.
      	(varpool_finalize_decl): Update.
      	(symbol_finalized): Remove.
      	(symbol_finalized_and_needed): Rename to ...
      	(symbol_defined_and_needed): ... update.
      	(cgraph_analyze_functions): Update.
      	(handle_alias_pairs): Update.
      	(mark_functions_to_output): Update.
      	(assemble_thunk): Update.
      	(output_in_order): Update.
      	(output_weakrefs): Update.
      	(finalize_compilation_unit): Update.
      	* lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
      	lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
      	input_node, input_varpool_node): Update.
      	* dbxout.c (dbxout_expand_expr): Update.
      	* cgraphclones.c (cgraph_clone_node): Update.
      	(cgraph_copy_node_for_versioning): Update.
      	(cgraph_materialize_clone): Update.
      	(cgraph_materialize_all_clones): Update.
      	* ipa-pure-const.c (analyze_function, pure_const_write_summary,
      	propagate_pure_const, propagate_nothrow): Update.
      	* lto-streamer-out.c (lto_output, write_symbol): Update.
      	* ipa-utils.c (ipa_reverse_postorder): Update.
      	* ipa-inline.c (can_inline_edge_p): Update.
      	(update_caller_keys, ipa_inline): Update.
      	* dwarf2out.c (reference_to_unused,
      	premark_types_used_by_global_vars_helper): Update.
      	* tree-eh.c (tree_could_trap_p): Update.
      	* ipa-split.c (consider_split, execute_split_functions): Update.
      	* ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
      	 has_addr_references_p): Update;
      	move ahead in file for better readability.
      	(process_references): Simplify.
      	(symtab_remove_unreachable_nodes): Update; cleanup way function/var
      	bodies are removed.
      	(cgraph_comdat_can_be_unshared_p): Make static.
      	(cgraph_externally_visible_p): Update.
      	(varpool_externally_visible_p): Update.
      	(function_and_variable_visibility): Update.
      	* trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
      	ipa_tm_mark_force_output_node): Update.
      	* ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
      	estimate_edge_devirt_benefit, inline_generate_summary,
      	inline_write_summary): Update.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
      	* ipa-prop.c (ipa_compute_jump_functions): Update.
      	(ipa_print_node_params, ipa_prop_read_section, ipa_update_after_lto_read,
      	read_replacements_section): Update.
      	* varasm.c (mark_decl_referenced): Update.
      	(assemble_alias, dump_tm_clone_pairs): Update.
      	* tree-inline.c (copy_bb): Update.
      	(estimate_num_insns, optimize_inline_calls, tree_function_versioning):
      	Update.
      	* symtab.c (dump_symtab_base): Print new flags.
      	(verify_symtab_base): Verify new flags.
      	(symtab_alias_ultimate_target): New function.
      	* tree-ssa-structalias.c (get_constraint_for_ssa_var,
      	create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
      	Update.
      	* passes.c (ipa_write_summaries, ipa_write_optimization_summaries): Update.
      	* i386.c (ix86_get_function_versions_dispatcher,
      	ix86_generate_version_dispatcher_body): Update.
      	(fold_builtin_cpu): Use varpool_add_new_variable.
      	* varpool.c (varpool_remove_initializer): Break out from ...
      	(varpool_remove_node): ... this one.
      	(dump_varpool_node, varpool_node_for_asm,
      	cgraph_variable_initializer_availability, varpool_analyze_node,
      	varpool_assemble_decl, varpool_remove_unreferenced_decls,
      	varpool_finalize_named_section_flags, varpool_create_variable_alias): Update
      
      	* decl.c (java_mark_decl_local): Update for new symtab flags.
      
      	* tree.c (cp_fix_function_decl_p): Update for new symtab flags.
      	* decl2.c )var_finalized_p, cp_write_global_declarations): Likewise.
      
      	* lto.c (has_analyzed_clone_p, lto_materialize_function): Update for new symtab
      	flags.
      	* lto-partition.c (get_symbol_class, lto_balanced_map): Likewise.
      
      From-SVN: r199422
      Jan Hubicka committed
  2. 08 May, 2013 1 commit
    • re PR lto/54095 (Unnecessary static variable renaming) · 702d8703
      	PR lto/54095
      	* cgraph.c (cgraph_make_node_local_1): Se unique_name.
      	* cgraph.h (symtab_node_base): Add unique_name.
      	* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
      	input_overwrite_node, input_varpool_node): Stream unique_name.
      	* cgraphclones.c (cgraph_create_virtual_clone,
      	cgraph_function_versioning): Set unique_name.
      	* ipa.c (function_and_variable_visibility): Set unique_name.
      
      From-SVN: r198710
      Jan Hubicka committed
  3. 10 Apr, 2013 1 commit
    • passes.c (execute_todo): Do not call ggc_collect conditional here. · bb313b93
      2013-04-10  Richard Biener  <rguenther@suse.de>
      
      	* passes.c (execute_todo): Do not call ggc_collect conditional here.
      	(execute_one_ipa_transform_pass): But unconditionally here.
      	(execute_one_pass): And here.
      	(init_optimization_passes): Remove reload pass.
      	* tree-pass.h (TODO_ggc_collect): Remove.
      	(pass_reload): Likewise.
      	* ira.c (do_reload): Merge into ...
      	(ira): ... this.
      	(rest_of_handle_reload): Remove.
      	(pass_reload): Likewise.
      	* config/i386/i386.c (ix86_option_override): Refer to ira instead
      	of reload for vzeroupper pass placement.
      	* <everywhere>: Remove TODO_ggc_collect from todo_flags_start
      	and todo_flags_finish of all passes.
      
      	* g++.dg/pr55604.C: Use -fdump-rtl-ira.
      
      From-SVN: r197671
      Richard Biener committed
  4. 09 Apr, 2013 1 commit
  5. 29 Mar, 2013 1 commit
    • lto-cgraph.c (output_profile_summary, [...]): Use gcov streaming; stream hot bb… · 0208f7da
      lto-cgraph.c (output_profile_summary, [...]): Use gcov streaming; stream hot bb threshold to ltrans.
      
      
      	* lto-cgraph.c (output_profile_summary, input_profile_summary): Use
      	gcov streaming; stream hot bb threshold to ltrans.
      	* predict.c (get_hot_bb_threshold): Break out from ....
      	(maybe_hot_count_p): ... here.
      	(set_hot_bb_threshold): New function.
      	* lto-section-in.c (lto_section_name): Add profile.
      	* profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
      	* ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
      	and data-streamer.h
      	(histogram_entry): New structure.
      	(histogram, histogram_pool): New global vars.
      	(histogram_hash): New structure.
      	(histogram_hash::hash): New method.
      	(histogram_hash::equal): Likewise.
      	(account_time_size): New function.
      	(cmp_counts): New function.
      	(dump_histogram): New function.
      	(ipa_profile_generate_summary): New function.
      	(ipa_profile_write_summary): New function.
      	(ipa_profile_read_summary): New function.
      	(ipa_profile): Decide on threshold.
      	(pass_ipa_profile): Add ipa_profile_write_summary and ipa_profile_read_summary.
      	* Makefile.in (ipa.o): Update dependencies.
      	* lto-streamer.h (LTO_section_ipa_profile): New section.
      
      From-SVN: r197243
      Jan Hubicka committed
  6. 17 Jan, 2013 1 commit
    • re PR tree-optimization/55264 (ICE: in ipa_make_edge_direct_to_target, at… · 8222c37e
      re PR tree-optimization/55264 (ICE: in ipa_make_edge_direct_to_target, at ipa-prop.c:2141 with -O2 -fno-early-inlining -fno-weak)
      
      2013-01-17  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimizations/55264
      	* ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
      	for virtual methods.
      	* ipa.c (symtab_remove_unreachable_nodes): Never return true for
      	virtual methods before inlining is over.
      	* cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
      	virtual functions.
      	* cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
      	non-virtual.
      
      testsuite/
      	* g++.dg/ipa/pr55264.C: New test.
      
      From-SVN: r195262
      Martin Jambor committed
  7. 10 Jan, 2013 1 commit
  8. 04 Jan, 2013 1 commit
  9. 18 Nov, 2012 1 commit
    • This patch rewrites the old VEC macro-based interface into a new one based on… · 9771b263
      This patch rewrites the old VEC macro-based interface into a new one based on the template class 'vec'.
      
      This patch rewrites the old VEC macro-based interface into a new one
      based on the template class 'vec'.  The user-visible changes are
      described in http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec.
      
      I have tested the patch pretty extensively:
      
      - Regular bootstraps on x86_64, ppc, ia64, sparc and hppa.
      - Bootstraps with --enable-checking=release
      - Bootstraps with --enable-checking=gc,gcac
      - Basic builds on all targets (using contrib/config-list.mk).
      
      We no longer access the vectors via VEC_* macros.  The pattern is
      "VEC_operation (T, A, V, args)" becomes "V.operation (args)".
      
      The only thing I could not do is create proper ctors and dtors for the
      vec class.  Since these vectors are stored in unions, we
      have to keep them as PODs (C++03 does not allow non-PODs in unions).
      
      This means that creation and destruction must be explicit.  There is a
      new method vec<type, allocation, layout>::create() and another vec<type,
      allocation, layout>::destroy() to allocate the internal vector.
      
      For vectors that must be pointers, there is a family of free functions
      that implement the operations that need to tolerate NULL vectors.
      These functions all start with the prefix 'vec_safe_'.  See the wiki
      page for details.
      
      The gengtype change removes the special handling for VEC() that used
      to exist in gengtype. Additionally, it allows gengtype to recognize
      templates of more than one argument and introduces the concept of an
      undefined type (useful for template arguments that may or may not be
      types).
      
      When a TYPE_UNDEFINED is reached, gengtype will ignore it if it
      happens inside a type marked with GTY((user)).  Otherwise, it will
      emit an error.
      
      Finally, gengtype rejects root types marked GTY((user)) that are not
      first class pointers.
      
      2012-11-16  Diego Novillo  <dnovillo@google.com>
      
      	VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
      
      	* vec.c (register_overhead): Convert it into
      	member function of vec_prefix.
      	(release_overhead): Likewise.
      	(calculate_allocation): Likewise.
      	(vec_heap_free): Remove.
      	(vec_gc_o_reserve_1): Remove.
      	(vec_heap_o_reserve_1): Remove.
      	(vec_stack_o_reserve_1): Remove.
      	(vec_stack_o_reserve_exact): Remove.
      	(register_stack_vec): New.
      	(stack_vec_register_index): New.
      	(unregister_stack_vec): New.
      	(vec_assert_fail): Remove.
      	* vec.h: Conditionally include ggc.h.  Document conditional
      	hackery.
      	Update top-level documentation.
      	(ALONE_VEC_CHECK_INFO): Remove.
      	(VEC_CHECK_INFO): Remove.
      	(ALONE_VEC_CHECK_DECL): Remove.
      	(VEC_CHECK_DECL): Remove.
      	(ALONE_VEC_CHECK_PASS): Remove.
      	(VEC_CHECK_PASS): Remove.
      	(VEC_ASSERT): Remove.
      	(vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and
      	va_stack.
      	Mark fields alloc_ and num_ as protected.
      	(struct vec_t): Remove.  Remove all function members.
      	(struct vl_embed): Declare.
      	(struct vl_ptr): Declare.
      	(free): Remove.
      	(reserve_exact): Remove.
      	(reserve): Remove.
      	(safe_splice): Remove.
      	(safe_push): Remove.
      	(safe_grow): Remove.
      	(safe_grow_cleared): Remove.
      	(safe_insert): Remove.
      	(DEF_VEC_I): Remove.
      	(DEF_VEC_ALLOC_I): Remove.
      	(DEF_VEC_P): Remove.
      	(DEF_VEC_ALLOC_P): Remove.
      	(DEF_VEC_O): Remove.
      	(DEF_VEC_ALLOC_O): Remove.
      	(DEF_VEC_ALLOC_P_STACK): Remove.
      	(DEF_VEC_ALLOC_O_STACK): Remove.
      	(DEF_VEC_ALLOC_I_STACK): Remove.
      	(DEF_VEC_A): Remove.
      	(DEF_VEC_ALLOC_A): Remove.
      	(vec_stack_p_reserve_exact_1): Remove.
      	(vec_stack_o_reserve): Remove.
      	(vec_stack_o_reserve_exact): Remove.
      	(VEC_length): Remove.
      	(VEC_empty): Remove.
      	(VEC_address): Remove.
      	(vec_address): Remove.
      	(VEC_last): Remove.
      	(VEC_index): Remove.
      	(VEC_iterate): Remove.
      	(VEC_embedded_size): Remove.
      	(VEC_embedded_init): Remove.
      	(VEC_free): Remove.
      	(VEC_copy): Remove.
      	(VEC_space): Remove.
      	(VEC_reserve): Remove.
      	(VEC_reserve_exact): Remove.
      	(VEC_splice): Remove.
      	(VEC_safe_splice): Remove.
      	(VEC_quick_push): Remove.
      	(VEC_safe_push): Remove.
      	(VEC_pop): Remove.
      	(VEC_truncate): Remove.
      	(VEC_safe_grow): Remove.
      	(VEC_replace): Remove.
      	(VEC_quick_insert): Remove.
      	(VEC_safe_insert): Remove.
      	(VEC_ordered_remove): Remove.
      	(VEC_unordered_remove): Remove.
      	(VEC_block_remove): Remove.
      	(VEC_lower_bound): Remove.
      	(VEC_alloc): Remove.
      	(VEC_qsort): Remove.
      
      	(va_heap): Declare.
      	(va_heap::default_layout): New typedef to vl_ptr.
      	(va_heap::reserve): New.
      	(va_heap::release): New.
      	(va_gc): Declare.
      	(va_gc::default_layout): New typedef to vl_embed.
      	(va_gc::reserve): New.
      	(va_gc::release): New.
      	(va_gc_atomic): Declare.  Inherit from va_gc.
      	(va_stack): Declare.
      	(va_stack::default_layout): New typedef to vl_ptr.
      	(va_stack::alloc): New.
      	(va_stack::reserve): New.
      	(va_stack::release): New.
      	(register_stack_vec): Declare.
      	(stack_vec_register_index): Declare.
      	(unregister_stack_vec): Declare.
      
      	(vec<T, A = va_heap, L = typename A::default_layout>): Declare
      	empty vec template.
      	(vec<T, A, vl_embed>): Partial specialization for embedded
      	layout.
      	(vec<T, A, vl_embed>::allocated): New.
      	(vec<T, A, vl_embed>::length): New.
      	(vec<T, A, vl_embed>::is_empty): New.
      	(vec<T, A, vl_embed>::address): New.
      	(vec<T, A, vl_embed>::operator[]): New.
      	(vec<T, A, vl_embed>::last New.
      	(vec<T, A, vl_embed>::space): New.
      	(vec<T, A, vl_embed>::iterate): New.
      	(vec<T, A, vl_embed>::iterate): New.
      	(vec<T, A, vl_embed>::copy): New.
      	(vec<T, A, vl_embed>::splice): New.
      	(vec<T, A, vl_embed>::quick_push New.
      	(vec<T, A, vl_embed>::pop New.
      	(vec<T, A, vl_embed>::truncate): New.
      	(vec<T, A, vl_embed>::quick_insert): New.
      	(vec<T, A, vl_embed>::ordered_remove): New.
      	(vec<T, A, vl_embed>::unordered_remove): New.
      	(vec<T, A, vl_embed>::block_remove): New.
      	(vec<T, A, vl_embed>::qsort): New.
      	(vec<T, A, vl_embed>::lower_bound): New.
      	(vec<T, A, vl_embed>::embedded_size): New.
      	(vec<T, A, vl_embed>::embedded_init): New.
      	(vec<T, A, vl_embed>::quick_grow): New.
      	(vec<T, A, vl_embed>::quick_grow_cleared): New.
      	(vec_safe_space): New.
      	(vec_safe_length): New.
      	(vec_safe_address): New.
      	(vec_safe_is_empty): New.
      	(vec_safe_reserve): New.
      	(vec_safe_reserve_exact): New.
      	(vec_alloc): New.
      	(vec_free): New.
      	(vec_safe_grow): New.
      	(vec_safe_grow_cleared): New.
      	(vec_safe_iterate): New.
      	(vec_safe_push): New.
      	(vec_safe_insert): New.
      	(vec_safe_truncate): New.
      	(vec_safe_copy): New.
      	(vec_safe_splice): New.
      
      	(vec<T, A, vl_ptr>): New partial specialization for the space
      	efficient layout.
      	(vec<T, A, vl_ptr>::exists): New.
      	(vec<T, A, vl_ptr>::is_empty): New.
      	(vec<T, A, vl_ptr>::length): New.
      	(vec<T, A, vl_ptr>::address): New.
      	(vec<T, A, vl_ptr>::operator[]): New.
      	(vec<T, A, vl_ptr>::operator!=): New.
      	(vec<T, A, vl_ptr>::operator==): New.
      	(vec<T, A, vl_ptr>::last): New.
      	(vec<T, A, vl_ptr>::space): New.
      	(vec<T, A, vl_ptr>::iterate): New.
      	(vec<T, A, vl_ptr>::copy): New.
      	(vec<T, A, vl_ptr>::reserve): New.
      	(vec<T, A, vl_ptr>::reserve_exact): New.
      	(vec<T, A, vl_ptr>::splice): New.
      	(vec<T, A, vl_ptr>::safe_splice): New.
      	(vec<T, A, vl_ptr>::quick_push): New.
      	(vec<T, A, vl_ptr>::safe_push): New.
      	(vec<T, A, vl_ptr>::pop): New.
      	(vec<T, A, vl_ptr>::truncate): New.
      	(vec<T, A, vl_ptr>::safe_grow): New.
      	(vec<T, A, vl_ptr>::safe_grow_cleared): New.
      	(vec<T, A, vl_ptr>::quick_grow): New.
      	(vec<T, A, vl_ptr>::quick_grow_cleared): New.
      	(vec<T, A, vl_ptr>::quick_insert): New.
      	(vec<T, A, vl_ptr>::safe_insert): New.
      	(vec<T, A, vl_ptr>::ordered_remove): New.
      	(vec<T, A, vl_ptr>::unordered_remove): New.
      	(vec<T, A, vl_ptr>::block_remove): New.
      	(vec<T, A, vl_ptr>::qsort): New.
      	(vec<T, A, vl_ptr>::lower_bound): New.
      	(vec_stack_alloc): Define.
      	(FOR_EACH_VEC_SAFE_ELT): Define.
      	* vecir.h: Remove.  Update all users.
      	* vecprim.h: Remove.  Update all users.
      	Move uchar to coretypes.h.
      
      	* Makefile.in (VEC_H): Add $(GGC_H).
      	Remove vecir.h and vecprim.h dependencies everywhere.
      
      2012-11-16  Diego Novillo  <dnovillo@google.com>
      
      	* gengtype-lex.l (VEC): Remove.
      	Add characters in the set [\!\>\.-].
      	* gengtype-parse.c (token_names): Remove "VEC".
      	(require_template_declaration): Remove handling of VEC_TOKEN.
      	(type): Likewise.
      	Call create_user_defined_type when parsing GTY((user)).
      	* gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED.
      	(write_state_undefined_type): New.
      	(write_state_type): Call write_state_undefined_type for
      	TYPE_UNDEFINED.
      	(read_state_type): Call read_state_undefined_type for
      	TYPE_UNDEFINED.
      	* gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED.
      	(create_user_defined_type): Make extern.
      	(type_for_name): Factor out of resolve_typedef.
      	(create_undefined_type): New
      	(resolve_typedef): Call it when we cannot find a previous
      	typedef and the type is not a template.
      	(find_structure): Accept TYPE_UNDEFINED.
      	(set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES,
      	default to false.
      	Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or
      	ALLOWED_UNDEFINED_TYPES is set.
      	Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT.
      	(filter_type_name): Accept templates with more than one
      	argument.
      	(output_mangled_typename): Handle TYPE_UNDEFINED
      	(walk_type): Likewise.
      	(write_types_process_field): Likewise.
      	(write_func_for_structure): If CHAIN_NEXT is set, ORIG_S
      	should not be a user-defined type.
      	(write_types_local_user_process_field): Handle TYPE_ARRAY,
      	TYPE_NONE and TYPE_UNDEFINED.
      	(write_types_local_process_field): Likewise.
      	(contains_scalar_p): Return 0 for TYPE_USER_STRUCT.
      	(write_root): Reject user-defined types that are not pointers.
      	Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT
      	and TYPE_PARAM_STRUCT.
      	(output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and
      	TYPE_ARRAY.
      	(dump_typekind): Handle TYPE_UNDEFINED.
      	* gengtype.h (enum typekind): Add TYPE_UNDEFINED.
      	(create_user_defined_type): Declare.
      	(enum gty_token): Remove VEC_TOKEN.
      
      2012-11-16  Diego Novillo  <dnovillo@google.com>
      
      	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
      
      	* coretypes.h (uchar): Define.
      	* alias.c: Use new vec API in vec.h.
      	* asan.c: Likewise.
      	* attribs.c: Likewise.
      	* basic-block.h: Likewise.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloop.h: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* combine.c: Likewise.
      	* compare-elim.c: Likewise.
      	* coverage.c: Likewise.
      	* cprop.c: Likewise.
      	* data-streamer.h: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* domwalk.h: Likewise.
      	* dse.c: Likewise.
      	* dwarf2cfi.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* dwarf2out.h: Likewise.
      	* emit-rtl.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      	* final.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* fwprop.c: Likewise.
      	* gcc.c: Likewise.
      	* gcse.c: Likewise.
      	* genattr.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genautomata.c: Likewise.
      	* genextract.c: Likewise.
      	* genopinit.c: Likewise
      	* ggc-common.c: Likewise.
      	* ggc.h: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple.c: Likewise.
      	* gimple.h: Likewise.
      	* gimplify.c: Likewise.
      	* graph.c: Likewise.
      	* graphds.c: Likewise.
      	* graphds.h: Likewise.
      	* graphite-blocking.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* graphite-dependences.c: Likewise.
      	* graphite-interchange.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* graphite-poly.h: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-scop-detection.h: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* graphite.c: Likewise.
      	* godump.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* hw-doloop.c: Likewise.
      	* hw-doloop.h: Likewise.
      	* ifcvt.c: Likewise.
      	* insn-addr.h: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-inline.h: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-ref-inline.h: Likewise.
      	* ipa-ref.c: Likewise.
      	* ipa-ref.h: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-utils.h: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lra.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.h: Likewise.
      	* lto-symtab.c: Likewise.
      	* mcf.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omp-low.c: Likewise.
      	* opts-common.c: Likewise.
      	* opts-global.c: Likewise.
      	* opts.c: Likewise.
      	* opts.h: Likewise.
      	* passes.c: Likewise.
      	* predict.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* profile.h: Likewise.
      	* read-rtl.c: Likewise.
      	* ree.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regrename.c: Likewise.
      	* regrename.h: Likewise.
      	* reload.c: Likewise.
      	* reload.h: Likewise.
      	* reload1.c: Likewise.
      	* rtl.h: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-int.h: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched-ir.h: Likewise.
      	* sel-sched.c: Likewise.
      	* sese.c: Likewise.
      	* sese.h: Likewise.
      	* statistics.h: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* tlink.c: Likewise.
      	* toplev.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-browser.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-diagnostic.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-flow.h: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-inline.h: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-iterator.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sccvn.h: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* tree-streamer.h: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vmsdbgout.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/c6x/c6x.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/rs6000/rs6000-c.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/spu/spu-c.c: Likewise.
      	* config/vms/vms.c: Likewise.
      	* config/vxworks.c: Likewise.
      	* config/epiphany/resolve-sw-modes.c: Likewise.
      
      From-SVN: r193595
      Diego Novillo committed
  10. 01 Nov, 2012 1 commit
    • invoke.texi: Update -fopt-info documentation. · 2b4e6bf1
      2012-11-01  Sharad Singhai  <singhai@google.com>
      
          * doc/invoke.texi: Update -fopt-info documentation.
          * dumpfile.c: Move dump_flags here from passes.c.
          Rename opt_info_options to optinfo_verbosity_options.
          Add optgroup_options.
          (dump_files): Add field for optinfo_flags in the static initializer.
          (dump_register): Handle additional parameter for optgroup_flags.
          (opt_info_enable_passes): Renamed opt_info_enable_all. Handle
          optgroup_flags. Fix documentation.
          (opt_info_switch_p_1): Handle optgroup options.
          (opt_info_switch_p): Handle optgroup_flags. Warn on multiple files.
          * dumpfile.h (dump_register): Additional argument for optgroup_flags.
          All callers updated.
          (struct dump_file_info): Add field for optgroup_flags.
          Define OPTGROUP_* flags.
          * tree-pass.h (struct opt_pass): Add addtional field for optinfo_flags.
          All opt_pass static initializers updated.
          * opts-global.c (dump_remap_tree_vectorizer_verbose): Use 'all'
          instead of 'optall'.
          (handle_common_deferred_options): Fix typo in error message.
          * passes.c (register_one_dump_file): Add argument for optgroup_flags.
          Turn on OPTGROUP_IPA for IPA passes.
          Move dump_flags from here to dumpfile.c.
          * statistics.c (statistics_early_init): Use OPTGROUP_NONE in call to
          dump_register.
      
      testsuite/ChangeLog
      
          * testsuite/gcc.dg/plugin/selfassign.c: Add opgtroup_flags initializer.
          * testsuite/gcc.dg/plugin/one_time_plugin.c: Likewise.
          * testsuite/g++.dg/plugin/selfassign.c: Likewise.
          * testsuite/g++.dg/plugin/dumb_plugin.c: Likewise.
      
      From-SVN: r193061
      Sharad Singhai committed
  11. 31 Oct, 2012 1 commit
    • This patch implements generic type query and conversion functions, · 5d59b5e1
      and applies them to the use of cgraph_node, varpool_node, and symtab_node.
      
      The functions are:
      
      bool is_a <TYPE> (pointer)
        Tests whether the pointer actually points to a more derived TYPE.
      
      TYPE *as_a <TYPE> (pointer)
        Converts pointer to a TYPE*.
      
      TYPE *dyn_cast <TYPE> (pointer)
        Converts pointer to TYPE* if and only if "is_a <TYPE> pointer".
        Otherwise, returns NULL.
        This function is essentially a checked down cast.
      
      These functions reduce compile time and increase type safety when treating a
      generic item as a more specific item.  In essence, the code change is from
      
        if (symtab_function_p (node))
          {
            struct cgraph_node *cnode = cgraph (node);
            ....
          }
      
      to
      
        if (cgraph_node *cnode = dyn_cast <cgraph_node> (node))
          {
            ....
          }
      
      The necessary conditional test defines a variable that holds a known good
      pointer to the specific item and avoids subsequent conversion calls and
      the assertion checks that may come with them.
      
      When, the property test is embedded within a larger condition, the variable
      declaration gets pulled out of the condition.  (This leaves some room for
      using the variable inappropriately.)
      
        if (symtab_variable_p (node)
            && varpool (node)->finalized)
          varpool_analyze_node (varpool (node));
      
      becomes
      
        varpool_node *vnode = dyn_cast <varpool_node> (node);
        if (vnode && vnode->finalized)
          varpool_analyze_node (vnode);
      
      Note that we have converted two sets of assertions in the calls to varpool
      into safe and efficient use of a variable.
      
      
      There are remaining calls to symtab_function_p and symtab_variable_p that
      do not involve a pointer to a more specific type.  These have been converted
      to calls to a functions is_a <cgraph_node> and is_a <varpool_node>.  The
      original predicate functions have been removed.
      
      The cgraph.h header defined both a struct and a function with the name
      varpool_node.  This name overloading can cause some unintuitive error messages
      when, as is common in C++, one omits the struct keyword when using the type.
      I have renamed the function to varpool_node_for_decl.
      
      Tested on x86_64.
      
      
      Index: gcc/ChangeLog
      
      2012-10-31  Lawrence Crowl  <crowl@google.com>
      
      	* is-a.h: New.
      	(is_a <T> (U*)): New.  Test for is-a relationship.
      	(as_a <T> (U*)): New.  Treat as a derived type.
      	(dyn_cast <T> (U*)): New.  Conditionally cast based on is_a.
      	* cgraph.h (varpool_node): Rename to varpool_node_for_decl.
      	Adjust callers to match.
      	(is_a_helper <cgraph_node>::test (symtab_node_def *)): New.
      	(is_a_helper <varpool_node>::test (symtab_node_def *)): New.
      	(symtab_node_def::try_function): New.  Change most calls to
      	symtab_function_p with calls to dyn_cast <cgraph_node> (p).
      	(symtab_node_def::try_variable): New.  Change most calls to
      	symtab_variable_p with calls to dyn_cast <varpool_node> (p).
      	(symtab_function_p): Remove.  Change callers to use
              is_a <cgraph_node> (p) instead.
      	(symtab_variable_p): Remove.  Change callers to use
              is_a <varpool_node> (p) instead.
      	* cgraph.c (cgraph_node_for_asm): Remove redundant call to
      	symtab_node_for_asm.
      	* cgraphunit.c (symbol_finalized_and_needed): New.
      	(symbol_finalized): New.
      	(cgraph_analyze_functions): Split complicated conditionals out into
      	above new functions.
      	* Makefile.in (CGRAPH_H): Add is-a.h as used by cgraph.h.
      
      From-SVN: r193051
      Lawrence Crowl committed
  12. 02 Aug, 2012 1 commit
    • Add free inline summary pass after pass_early_local_passes · a8da72b8
      	PR middle-end/53321
      	PR middle-end/53865
      	* ipa-inline-analysis.c (inline_free_summary): Return if
      	inline_edge_summary_vec is NULL.
      
      	* ipa-split.c (execute_split_functions): Check if a function
      	is inlinable only if inline_edge_summary_vec != NULL.
      
      	* ipa.c (symtab_remove_unreachable_nodes): Restore
      	cgraph_propagate_frequency call when something was changed.
      	(free_inline_summary): New function.
      	(pass_ipa_free_inline_summary): New pass.
      
      	* passes.c (init_optimization_passes): Add
      	pass_ipa_free_inline_summary before pass_ipa_tree_profile.
      
      	* timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New.
      
      	* tree-pass.h (pass_ipa_free_inline_summary): New.
      
      From-SVN: r190090
      H.J. Lu committed
  13. 16 Jul, 2012 1 commit
    • system.h (dump_file): Do not define. · 7ee2468b
      gcc/
      	* system.h (dump_file): Do not define.
      	* tree-pass.h: Include dumpfile.h, which is a new file containing...
      	(enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
      	dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
      	dump_flag_name, dump_file, dump_flags, dump_file_name,
      	get_dump_file_info, struct dump_file_info): all of this, moved to...
      	* dumpfile.h: Here, new file.
      	* tree-dump.h: Include dumpfile.h, but not tree-pass.h.
      	(dump_stmt): Remove prototype for C++ specific function.
      	(dump_enumerated_decls): Move prototype from here...
      	* tree-flow.h (dump_enumerated_decls): ... to here.
      	(get_ref_base_and_extent) Move prototype from here ...
      	* tree.h (get_ref_base_and_extent) ... to here.
      	* tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
      	gimple-pretty-print.h is enough.  Do not include tree-dump.h,
      	include timevar.h and dumpfile.h instead.
      	(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
      	* tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls):... to here.
      	Do not include timevar.h.
      	* tree.c: Do not include timevar.h.
      	* tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
      	timevar.h.
      	(dump_cfg_stats): Use current_function_name.
      	(gimple_cfg2vcg): Likewise.
      	(dump_function_to_file): Likewise.
      	* df-scan.c: Do not include tree-pass.h and timevar.h.
      	Include dumpfile.h.
      	(df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
      	use print_current_pass.
      	* df-problems.c: Include dumpfile.h.
      	Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
      	leads to errors in the code not selected.
      	(df_note_compute): Do not print_rtl_with_bb here.  Fix compilation
      	bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
      	* lcm.c: Include dumpfile.h.
      	Remove obsolete include of insn-attr.h.
      	* dojump.c (do_compare_rtx_and_jump): Remove failure printing for
      	missing probability notes.
      	* stmt.c: Include dumpfile.h.
      	(emit_case_decision_tree): Re-enable printing expand details only
      	if TDF_DETAILS.
      	* alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c, 
      	cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c, 
      	cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c, 
      	coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c, 
      	dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c, 
      	function.c, fwprop.c, gcse.c, gimple-fold.c, 
      	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, 
      	gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, 
      	graphite-dependences.c, graphite-interchange.c, 
      	graphite-optimize-isl.c, graphite-poly.c, 
      	graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c, 
      	ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c, 
      	ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c, 
      	ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c, 
      	jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c, 
      	loop-unroll.c, loop-unswitch.c, lower-subreg.c, 
      	lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c, 
      	mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c, 
      	plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c, 
      	print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c, 
      	regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c, 
      	sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c, 
      	store-motion.c, tracer.c, trans-mem.c, tree-affine.c, 
      	tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c, 
      	tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
      	tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c, 
      	tree-mudflap.c, tree-nrv.c, tree-object-size.c, 
      	tree-optimize.c, tree-outof-ssa.c, tree-predcom.c, 
      	tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, 
      	tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c, 
      	tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c, 
      	tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c, 
      	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c, 
      	tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c, 
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, 
      	tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, 
      	tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c, 
      	tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c, 
      	tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c, 
      	tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c, 
      	tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c, 
      	tree-ssa-threadedge.c, tree-ssa-threadupdate.c, 
      	tree-ssa-uncprop.c, tree-ssa-uninit.c, 
      	tree-switch-conversion.c, tree-tailcall.c, 
      	tree-vect-data-refs.c, tree-vect-loop.c, 
      	tree-vect-loop-manip.c, tree-vectorizer.c, 
      	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, 
      	tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
      	only if needed.  If tree-pass.h is included, do not include timevar.h
      	and dumpfile.h.  If tree-pass.h is not included but dump_file, or
      	dump_flags, or the TDF_* flags are used, include dumpfile.h.
      	If gimple-pretty-print.h is included, don't include tree-pretty-print.h.
      	Remove assorted unnecessary includes.
      
      	* config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
      	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
      	config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
      	Include dumpfile.h.
      	* config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
      	* arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
      	spu/t-spu-elf: Fix dependencies.
      
      c-family/
      	* c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
      	* c-ada-spec.c: Likewise.
      	* c-dump.c (dump_stmt): Move to cp/dump.c, the only user.
      
      c/
      	* c-decl.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      cp/
      	* dump.c (dump_stmt): Moved here from c-dump.c.
      	* optimize.c: Include dumpfile.h instead of tree-dump.h.
      	* class.c: Likewise.
      	* decl2.c: Likewise.
      	* Make-lang.in: Fix dependencies.
      
      fortran/
      	* f95-lang.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      java/
      	* java-gimplify.c Include dumpfile.h instead of tree-dump.h
      	* Make-lang.in: Fix dependencies.
      
      lto/
      	* lto.c: Do not include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      ada/
      	* gcc-interface/utils.c: Include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      From-SVN: r189519
      Steven Bosscher committed
  14. 04 Jul, 2012 1 commit
  15. 29 May, 2012 1 commit
    • LANGUAGES: Fix typos. · 073a8998
      	* LANGUAGES: Fix typos.
      	* Makefile.in: Fix typos.
      	* alias.c: Fix typos.
      	* auto-inc-dec.c: Fix typos.
      	* bb-reorder.c: Fix typos.
      	* cfgcleanup.c: Fix typos.
      	* cgraph.c: Fix typos.
      	* cgraph.h: Fix typos.
      	* cgraphunit.c: Fix typos.
      	* collect2-aix.h: Fix typos.
      	* collect2.c: Fix typos.
      	* compare-elim.c: Fix typos.
      	* config/alpha/vms.h: Fix typos.
      	* config/arm/README-interworking: Fix typos.
      	* config/arm/arm.c: Fix typos.
      	* config/arm/iterators.md: Fix typos.
      	* config/arm/vxworks.h: Fix typos.
      	* config/avr/avr.c: Fix typos.
      	* config/avr/avr.h: Fix typos.
      	* config/avr/avr.md: Fix typos.
      	* config/avr/builtins.def: Fix typos.
      	* config/c6x/c6x.c: Fix typos.
      	* config/cr16/cr16.c: Fix typos.
      	* config/cr16/cr16.md: Fix typos.
      	* config/cris/cris.md: Fix typos.
      	* config/darwin.c: Fix typos.
      	* config/darwin.opt: Fix typos.
      	* config/i386/i386-c.c: Fix typos.
      	* config/i386/i386.c: Fix typos.
      	* config/ia64/ia64.c: Fix typos.
      	* config/m68k/cf.md: Fix typos.
      	* config/mep/mep.c: Fix typos.
      	* config/microblaze/microblaze.c: Fix typos.
      	* config/microblaze/microblaze.h: Fix typos.
      	* config/mn10300/mn10300.c: Fix typos.
      	* config/mn10300/mn10300.md: Fix typos.
      	* config/pa/pa.c: Fix typos.
      	* config/picochip/picochip.h: Fix typos.
      	* config/rs6000/a2.md: Fix typos.
      	* config/rs6000/rs6000.c: Fix typos.
      	* config/rs6000/vector.md: Fix typos.
      	* config/rx/rx.md: Fix typos.
      	* config/rx/rx.opt: Fix typos.
      	* config/s390/2097.md: Fix typos.
      	* config/s390/s390.c: Fix typos.
      	* config/s390/s390.h: Fix typos.
      	* config/sh/sh.c: Fix typos.
      	* config/sh/sh.md: Fix typos.
      	* config/sparc/sync.md: Fix typos.
      	* config/spu/spu.c: Fix typos.
      	* config/spu/spu.md: Fix typos.
      	* config/vms/vms.c: Fix typos.
      	* config/vxworks-dummy.h: Fix typos.
      	* config/vxworks.h: Fix typos.
      	* cselib.c: Fix typos.
      	* df-scan.c: Fix typos.
      	* df.h: Fix typos.
      	* doc/extend.texi: Fix typos.
      	* doc/install.texi: Fix typos.
      	* doc/invoke.texi: Fix typos.
      	* doc/md.texi: Fix typos.
      	* doc/plugins.texi: Fix typos.
      	* doc/rtl.texi: Fix typos.
      	* dse.c: Fix typos.
      	* dwarf2asm.c: Fix typos.
      	* dwarf2out.c: Fix typos.
      	* except.h: Fix typos.
      	* expr.c: Fix typos.
      	* fold-const.c: Fix typos.
      	* gcc.c: Fix typos.
      	* gcse.c: Fix typos.
      	* genautomata.c: Fix typos.
      	* gengtype-state.c: Fix typos.
      	* gengtype.c: Fix typos.
      	* genhooks.c: Fix typos.
      	* gimple-fold.c: Fix typos.
      	* gimple-pretty-print.c: Fix typos.
      	* gimple.c: Fix typos.
      	* gimple.h: Fix typos.
      	* gimplify.c: Fix typos.
      	* graphite-interchange.c: Fix typos.
      	* graphite-sese-to-poly.c: Fix typos.
      	* ifcvt.c: Fix typos.
      	* input.c: Fix typos.
      	* ipa-cp.c: Fix typos.
      	* ipa-inline-analysis.c: Fix typos.
      	* ipa-inline-transform.c: Fix typos.
      	* ipa-inline.c: Fix typos.
      	* ipa-pure-const.c: Fix typos.
      	* ipa-ref.h: Fix typos.
      	* ipa-reference.c: Fix typos.
      	* ipa-utils.c: Fix typos.
      	* ipa.c: Fix typos.
      	* ira-emit.c: Fix typos.
      	* ira-lives.c: Fix typos.
      	* lto-streamer.c: Fix typos.
      	* lto-streamer.h: Fix typos.
      	* lto-wrapper.c: Fix typos.
      	* mcf.c: Fix typos.
      	* mode-switching.c: Fix typos.
      	* modulo-sched.c: Fix typos.
      	* plugin.c: Fix typos.
      	* postreload.c: Fix typos.
      	* sched-deps.c: Fix typos.
      	* sel-sched-ir.c: Fix typos.
      	* sel-sched-ir.h: Fix typos.
      	* sel-sched.c: Fix typos.
      	* sese.c: Fix typos.
      	* stor-layout.c: Fix typos.
      	* target-hooks-macros.h: Fix typos.
      	* target.def: Fix typos.
      	* trans-mem.c: Fix typos.
      	* tree-eh.c: Fix typos.
      	* tree-predcom.c: Fix typos.
      	* tree-sra.c: Fix typos.
      	* tree-ssa-address.c: Fix typos.
      	* tree-ssa-loop-ivopts.c: Fix typos.
      	* tree-ssa-loop-niter.c: Fix typos.
      	* tree-ssa-math-opts.c: Fix typos.
      	* tree-ssa-pre.c: Fix typos.
      	* tree-ssa-propagate.c: Fix typos.
      	* tree-ssa-reassoc.c: Fix typos.
      	* tree-ssa-sccvn.c: Fix typos.
      	* tree-ssa-ter.c: Fix typos.
      	* tree-ssa-uninit.c: Fix typos.
      	* tree-ssanames.c: Fix typos.
      	* tree-vect-generic.c: Fix typos.
      	* tree-vect-slp.c: Fix typos.
      	* tree.c: Fix typos.
      	* tree.h: Fix typos.
      	* varasm.c: Fix typos.
      	* varpool.c: Fix typos.
      
      From-SVN: r187959
      Joseph Myers committed
  16. 24 May, 2012 1 commit
    • tree.h (alias_diag_flags): Remove. · 07250f0e
      	* tree.h (alias_diag_flags): Remove.
      	(alias_pair): Remove emitted_diags.
      	(finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
      	symbol_alias_set_t, symbol_alias_set_destroy,
      	symbol_alias_set_contains, propagate_aliases_backward): Remove.
      	* toplev.c (compile_file): Do not call finish_aliases_2
      	* cgraphunit.c (cgraph_process_new_functions): Do not call finish_aliases_1.
      	(handle_alias_pairs): Output diagnostics about aliases to externals.
      	(assemble_thunks_and_aliases): Use do_assemble_alias.
      	(output_weakrefs): Likewise.
      	(finalize_compilation_unit): Do not call finish_aliases_1.
      	* ipa.c (symtab_remove_unreachable_nodes): De not call remove_unreachable_alias_pairs.
      	* varasm.c (do_assemble_alias): Export.
      	(symbol_alias_set_create, symbol_alias_set_destroy, symbol_alias_set_contains,
      	symbol_alias_set_insert, propagate_aliases_forward, propagate_aliases_backward,
      	propagate_aliases_backward, trivially_visible_alias, trivially_defined_alias,
      	remove_unreachable_alias_pairs, finish_aliases_1, finish_aliases_2, 
      	assemble_alias): Remove.
      	* output.h (do_assemble_alias): Declare.
      	* varpool.c (varpool_remove_unreferenced_decls): Do not call finish_aliases_1.
      
      From-SVN: r187823
      Jan Hubicka committed
  17. 18 May, 2012 1 commit
  18. 17 May, 2012 1 commit
    • lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with constructor over decl without. · 6649df51
      	* lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with constructor
      	over decl without.
      	* cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
      	* cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
      	* cgraphunit.c (process_function_and_variable_attributes): Finalize 
      	extrnal decls.
      	(mark_functions_to_output): Also accept bodies for functions with clones.
      	(output_in_order): Skip external vars.
      	* lto-cgraph.c (lto_output_node): External functions are never in other
      	partition.
      	(lto_output_varpool_node): Likewise.
      	* lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
      	forgotten initializers.
      	* ipa.c (process_references): Handle external vars.
      	(symtab_remove_unreachable_nodes): Update to handle external vars.
      	(varpool_externally_visible_p): External vars are externally visible.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
      	* varpool.c (varpool_remove_node): Remove constructor.
      	(decide_is_variable_needed): Handle externals.
      	(varpool_remove_unreferenced_decls): Likewise.
      
      	* lto-partition.c (add_references_to_partition): Handle external vars.
      	(partition_varpool_node_p): Likewise.
      	(lto_promote_cross_file_statics): Do not promote externals.
      
      From-SVN: r187631
      Jan Hubicka committed
  19. 10 May, 2012 2 commits
    • cgraph.h (cgraph_remove_unreachable_nodes): Rename to ... · 04142cc3
      	* cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
      	(symtab_remove_unreachable_nodes): ... this one.
      	* ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
      	* cgraphunit.c (ipa_passes): Update.
      	* cgraphclones.c (cgraph_materialize_all_clones): Update.
      	* cgraph.c (cgraph_release_function_body): Only turn initial
      	into error mark when initial was previously set.
      	* ipa-inline.c (ipa_inline): Update.
      	* ipa.c: Include ipa-inline.h
      	(enqueue_cgraph_node, enqueue_varpool_node): Remove.
      	(enqueue_node): New function.
      	(process_references): Update.
      	(symtab_remove_unreachable_nodes): Cleanup.
      	* passes.c (execute_todo, execute_one_pass): Update.
      
      From-SVN: r187375
      Jan Hubicka committed
  20. 03 May, 2012 1 commit
  21. 30 Apr, 2012 1 commit
    • cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c · 65d630d4
      	* cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
      	(cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
      	(cgraph_add_to_same_comdat_group): Remove.
      	(cgraph_add_asm_node): Move to cgraphunit.c.
      	(cgraph_make_decl_local): Move to symtab.c
      	(cgraph_make_node_local_1): Update.
      	(cgraph_can_remove_if_no_direct_calls_and): Update.
      	(used_from_object_file_p): Update.
      	(resolution_used_from_other_file_p): Move to symtab.c
      	(cgraph_used_from_object_file_p): move to symtab.c
      	(verify_cgraph_node): Verify same comdat groups.
      	* cgraph.h (cgraph_asm_node): Rename to ...
      	(asm_node): ... this one.
      	(cgraph_asm_nodes): Rename to ...
      	(asm_nodes): ... this one.
      	(symtab_add_to_same_comdat_group): New function.
      	(symtab_dissolve_same_comdat_group_list): New function.
      	(symtab_used_from_object_file_p): Declare.
      	(symtab_make_decl_local): Declare.
      	(cgraph_add_to_same_comdat_group): Remove.
      	(cgraph_add_asm_node): Remove.
      	(cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
      	Remove.
      	(cgraph_finalize_compilation_unit): Rename to ...
      	(finalize_compilation_unit): ... this one.
      	(cgraph_optimize): Rename to ....
      	(compile): ... this one.
      	(add_asm_node): Declare.
      	(fixup_same_cpp_alias_visibility): Declare.
      	(cgraph_make_decl_local): Remove.
      	(varpool_assemble_pending_decls): Rename to ...
      	(varpool_output_variables): ... this one.
      	(varpool_remove_unreferenced_decls): Remove.
      	* ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
      	(preserve_function_body_p): Make static.
      	* toplev.c (compile_file): Update comments;
      	update.
      	* cgraphunit.c: Update comments.
      	(cgraph_expand_all_functions): Rename to ...
      	(expand_all_functions): ... this one; update.
      	(cgraph_mark_functions_to_output): Rename to ...
      	(mark_functions_to_output): ... this one; cleanup.
      	(cgraph_output_pending_asms): Remove prototype.
      	(asm_nodes, asm_last_node): New static vars.
      	(cgraph_process_new_functions): Update.
      	(cgraph_reset_node): Cleanup; add comment.
      	(cgraph_add_new_function): Update.
      	(cgraph_output_pending_asms): Rename to ...
      	(output_asm_statements): ... this one.
      	(add_asm_node): New function.
      	(fixup_same_cpp_alias_visibility): New function based on code
      	in cgraph_analyze_function.
      	(cgraph_analyze_function): Use it.
      	(cgraph_order_sort): Update.
      	(cgraph_output_in_order): Update.
      	(cgraph_function_versioning): Update.
      	(cgraph_optimize): Rename to ...
      	(compile): ... this one; initialize streamer hooks here.
      	(cgraph_finalize_compilation_unit): Rename to ...
      	(finalize_compilation_unit): ... this one; do not initialize streamer
      	hook here.
      	* lto-streamer-out.c (lto_output_toplevel_asms): Update.
      	* dwarf2out.c: Update ocmment.
      	* optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
      	* method.c (use_thunk): Likewise.
      	* semantics.c (maybe_add_lambda_conv_op): Likewise.
      	* decl2.c (maybe_emit_vtables): Likewise.	
      	(cp_write_global_declarations): Use finalize_compilation_unit.
      	* parser.c (cp_parser_asm_definition): Use add_asm_node.
      	* lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
      	* c-decl.c (c_write_global_declarations): Use finalize_compilation_unit.
      	* langhooks.c (write_global_declarations): Update.
      	* ipa.c (cgraph_externally_visible_p): Update.
      	(dissolve_same_comdat_group_list): Remove.
      	(function_and_variable_visibility): Update.
      	* symtab.c: Inlcude lto-streamer.h and rtl.h
      	(ld_plugin_symbol_resolution_names): New.
      	(symtab_add_to_same_comdat_group): New.
      	(symtab_dissolve_same_comdat_group_list): New.
      	(resolution_used_from_other_file_p): Move here from cgraph.c
      	(symtab_used_from_object_file_p): New.
      	(symtab_make_decl_local): New.
      	* passes.c (register_pass): Update comments.
      	* c-parser.c (c_parser_asm_definition): Update.
      	* varpool.c (varpool_analyze_node): Use fixup_same_cpp_alias_visibility.
      	(varpool_remove_unreferenced_decls): Make static.
      	(varpool_assemble_pending_decls): Rename to ...
      	(varpool_output_variables): ... this one; call
      	varpool_remove_unreferenced_decls.
      	(varpool_used_from_object_file_p): Remove.
      
      	* gogo-tree.cc (Gogo::write_globals): Use finalize_compilation_unit.
      
      	* gcc-interface/utils.c (rest_of_subprog_body_compilation): Update
      	comment.
      	(gnat_write_global_declarations): Use finalize_compilation_unit.
      
      	* f95-lang.c (gfc_finish): Update comments.
      
      	* lto.c (lto_main): Use compile ().
      	* lto-partition.c (partition_cgraph_node_p): Use symtab_used_from_object_file_p.
      	(partition_varpool_node_p): Likewise.
      
      From-SVN: r186998
      Jan Hubicka committed
  22. 23 Apr, 2012 1 commit
    • lto-symtab.c (lto_cgraph_replace_node): Do not call mark_reahcable_node. · 93a18a70
      	* lto-symtab.c (lto_cgraph_replace_node): Do not call
      	mark_reahcable_node.
      	* cgraph.c (cgraph_remove_node): Do not clear reachable.
      	(cgraph_mark_reachable_node): Remove.
      	(cgraph_mark_force_output_node): Do not set reachable.
      	(dump_cgraph_node): Do not dump reachable.
      	(cgraph_create_virtual_clone): Do not set reachable.
      	* cgraph.h (cgraph_node): Remove reachable flag.
      	(varpool_node): Remove reachable flag.
      	(cgraph_mark_if_needed): Remove.
      	(cgraph_mark_reachable_node): Remove.
      	* tree-emutls.c (ipa_lower_emutls): Do not check
      	reachable.
      	* cgraphunit.c (cgraph_finalize_function): Do not mark node as
      	reachable.
      	(cgraph_add_new_function): Likewise.
      	(cgraph_mark_if_needed): Remove.
      	(cgraph_analyze_function): Do not set target as reachable.
      	(process_function_and_variable_attributes): Do not care about dllexport.
      	(cgraph_analyze_functions): Do not set reachable flags.
      	(cgraph_mark_functions_to_output): Do not check reachability.
      	(cgraph_copy_node_for_versioning): Do not set reachable flag.
      	(dbxout_expand_expr): Update.
      	* c-decl.c (merge_decls): Do not track changed externs.
      	* ipa.c: Include pointer-set.h
      	(enqueue_cgraph_node): Use reachable pointer set.
      	(process_references): Likewise.
      	(cgraph_remove_unreachable_nodes): Likewise.
      	(whole_program_function_and_variable_visibility): Do not recompute reachable.
      	* trans-mem.c (ipa_tm_execute): Do not check reachable flag.
      
      From-SVN: r186700
      Jan Hubicka committed
  23. 22 Apr, 2012 1 commit
    • lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags. · 66058468
      	* lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
      	* cgraphbuild.c (record_reference, record_type_list, mark_address,
      	mark_load, mark_store): Do not mark varpool nodes as needed.
      	* cgraph.c (cgraph_new_nodes): Remove.
      	(cgraph_create_function_alias): Do not mark nodes as reachable.
      	(cgraph_add_thunk): Likewise.
      	(cgraph_mark_reachable_node): Do not manage the queue.
      	* cgraph.h (cgraph_node): Remove next_needed.
      	(varpool_nodes_queue): Remove next_needed and prev_needed.
      	(x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
      	(cgraph_new_nodes): Declare.
      	(x_varpool_nodes_queue, varpool_nodes_queue); Remove.
      	(varpool_analyze_pending_decls): Remove.
      	(varpool_analyze_node): New.
      	(varpool_mark_needed_node): Remove.
      	(varpool_first_variable, varpool_next_variable): New inlines.
      	(varpool_first_static_initializer, varpool_next_static_initializer): Update.
      	(FOR_EACH_STATIC_VARIABLE): Remove unused walker.
      	(varpool_first_defined_variable): New inline.
      	(varpool_next_defined_variable): New inline
      	(FOR_EACH_VARIABLE): Reimplement.
      	(FOR_EACH_DEFINED_VARIABLE): Reimplement.
      	* toplev.c (wrapup_global_declaration_2): Use analyzed instead of
      	needed flag.
      	* cgraphunit.c (cgraph_new_nodes): Declare here.
      	(enqueue_node): New function.
      	(cgraph_process_new_functions): update for new
      	node set; when constructing cgraph enqueue node for processing.
      	(cgraph_add_new_function): Use new node set.
      	(process_function_and_variable_attributes): Do not set varpool needed
      	flags.
      	(referred_to_p): New function.
      	(varpool_finalize_decl): Move here from varpool.c; enqueue needed node
      	when varpool is in construction.
      	(cgraph_analyze_functions): Rewrite.
      	(cgraph_expand_all_functions): Update.
      	(cgraph_output_in_order): Do not analyze pending decls; do not set needed flags.
      	(cgraph_optimize): Do not analyze pending decls.
      	* lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects in other
      	partition; do not mark node as needed.
      	* dwarf2out.c (reference_to_unused): Use analyzed flag.
      	(premark_types_used_by_global_vars_helper): Likewise.
      	* ipa.c (process_references): Do not call varpool_mark_needed_node.
      	(cgraph_remove_unreachable_nodes): Do not rely on varpool and
      	cgrpah queues.
      	(function_and_variable_visibility): Do not mark node as needed.
      	(whole_program_function_and_variable_visibility): Likewise.
      	* Makefile.in (gt-varpool.h): No longer needed.
      	* passes.c (execute_one_pass, execute_ipa_pass_list): Update.
      	(ipa_write_summaries): Do not use needed flag.
      	* varpool.c: Do not include gt-varpool.h
      	(x_varpool_nodes_queue, x_varpool_last_needed_node,
      	x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
      	x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
      	Remove.
      	(varpool_remove_node): Do not update the lists.
      	(dump_varpool_node): Do not dump needed flag.
      	(varpool_enqueue_needed_node): Remove.
      	(varpool_mark_needed_node): Remove.
      	(varpool_reset_queue): Remove.
      	(varpool_finalize_decl): Move to cgraphunit.c
      	(varpool_analyze_node): New functions based on former
      	varpool_analyze_pending_decls.
      	(varpool_analyze_pending_decls): Remove.
      	(varpool_assemble_decl): Do not update the lists.
      	(enqueue_node): New function.
      	(varpool_remove_unreferenced_decls): Rewrite.
      	(varpool_empty_needed_queue): Remove.
      	(add_new_static_var): Do not mark node as needed.
      	(varpool_create_variable_alias): Handle expansion state
      	creation.
      	* except.c (output_ttype): Do not mark node as needed.
      	* varasm.c (mark_decl_referenced): Do not use mark_needed_node.
      	* tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
      	Likewise.
      	* tree-switch-conversion.c (build_one_array): Likewise.
      
      	* class.c (build_utf8_ref): Do not mark varpool node as needed.
      
      	* gcc-interface/utils.c (gnat_write_global_declarations): Do not mark
      	needed node.
      
      	* lto-partition.c (partition_varpool_node_p): Do not use needed flag.
      
      	* decl2.c (maybe_make_one_only): Mark keyed COMDATs as USED so they
      	gets finalized.
      
      From-SVN: r186687
      Jan Hubicka committed
  24. 20 Apr, 2012 1 commit
    • lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of force flags. · ead84f73
      	* lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of force flags.
      	* cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
      	(cgraph_remove_node): Update.
      	(cgraph_mark_needed_node): Remove.
      	(cgraph_mark_force_output_node): New.
      	(dump_cgraph_node): Do not dump needed flag.
      	(cgraph_node_cannot_be_local_p_1): Update.
      	(cgraph_can_remove_if_no_direct_calls_and_refs): Update.
      	* cgraph.h (symtab_node_base): Add force_output flag.
      	(cgraph_node): Remove needed flag.
      	(varpool_node): Remove force_output flag.
      	(cgraph_mark_needed_node): Remove.
      	(cgraph_mark_force_output_node): New.
      	(cgraph_only_called_directly_or_aliased_p,
      	varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
      	* ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
      	* cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
      	(cgraph_add_new_function); Update.
      	(cgraph_mark_if_needed); Update.
      	(verify_cgraph_node): Update.
      	(cgraph_analyze_function): Alias target is reachable.
      	(process_function_and_variable_attributes): Update: externally_visible
      	flag makes function reachable.
      	(cgraph_analyze_functions): Update dumping.
      	* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
      	input_overwrite_node, input_varpool_node): Update streaming.
      	* lto-streamer-out.c (produce_symtab): Use force_output.
      	* ipa.c (process_references): Weakrefs must be processed.
      	(cgraph_remove_unreachable_nodes): Likewise; update for new
      	force_output flag.
      	(varpool_externally_visible_p); Weakrefs are externally visible
      	even if they are not.
      	(function_and_variable_visibility): Update; when processing alias
      	pair force the targets to be output.
      	(whole_program_function_and_variable_visility): Use mark_reachable_node.
      	* trans-mem.c (ipa_tm_mark_needed_node): Remove
      	(ipa_tm_mark_force_output_node): New function.
      	(ipa_tm_create_version_alias, ipa_tm_create_version): Update.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about aliases.
      	* varasm.c (mark_decl_referenced): Update.
      	(find_decl_and_mark_needed): Remove.
      	(find_decl): New function.
      	(weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
      	alias targets as needed.
      	(dump_tm_clone_pairs): Update.
      	* tree-inline.c (copy_bb): Update check.
      	* symtab.c (dump_symtab_base): Dump force_output.
      	* tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
      	* passes.c (execute_todo): Fix dumping.
      	* varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
      	(varpool_analyze_pending_decls): Alias target is reachable.
      	(varpool_create_variable_alias): Finalize weakrefs.
      
      	* class.c (make_local_function_alias): Do not mark symbol referenced.
      
      	* objc-acct.c (mark_referenced_methods); Use
      	cgraph_mark_force_output_node.
      
      	* gcc-interface/utils.c (gnat_write_global_declarations): Update for new
      	force_output placement.
      
      	* lto/lto-partition.c (partition_cgraph_node_p): Use force_output.
      
      From-SVN: r186624
      Jan Hubicka committed
  25. 18 Apr, 2012 3 commits
    • cgraph.h (verify_symtab, [...]): Declare. · 474ffc72
      	* cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
      	Declare.
      	* cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify 
      	cgraph hash and same comdat groups.
      	(cgraph_optimize); Verify symbol table.
      	* ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
      	(dissolve_same_comdat_group_list): Work on symtab nodes.
      	(function_and_variable_visibility): Dissolve variable same comdat group
      	lists, too.
      	* symtab.c: Include timevar.h
      	(verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
      
      From-SVN: r186578
      Jan Hubicka committed
    • lto-symtab.c (lto_cgraph_replace_node): Update. · 5932a4d4
      	* lto-symtab.c (lto_cgraph_replace_node): Update.
      	* cgraphbuild.c (record_reference, record_type_list,
      	record_eh_tables, mark_address, mark_load, mark_store): Update.
      	* cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
      	cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
      	Update.
      	* cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
      	(cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
      	* reload.c: Fix typo in comment.
      	* rtlanal.c: Likewise.
      	* tree-emultls.c (gen_emutls_addr): Update.
      	* ipa-reference.c (analyze_function): Update.
      	* cgraphunit.c (cgraph_analyze_function,
      	cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
      	Update.
      	* ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
      	(ipa_remove_reference): Likewise.
      	(ipa_remove_all_refering): Rename to ...
      	(ipa_remove_all_referring): ... this one; update.
      	(ipa_dump_references): Update.
      	(ipa_dump_referring): Update.
      	(ipa_clone_references): Update.
      	(ipa_clone_refering): Rename to ...
      	(ipa_clone_referring): ... this one; update.
      	(ipa_ref_cannot_lead_to_return): Update.
      	(ipa_ref_has_aliases_p): Update.
      	* ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
      	forward typedefs.
      	(ipa_ref_type): Remove.
      	(ipa_ref_ptr_u): Remove.
      	(ipa_ref): Remove referencing, refered, refered_index, refering_type
      	and refered_type; add referring, referred and referred_index.
      	(ipa_ref_list): Rename refering to referring.
      	(ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
      	ipa_clone_references, ipa_clone_referring): Update prototypes.
      	* lto-cgraph.c (referenced_from_other_partition_p): Update.
      	(lto_output_ref): Update.
      	(add_references): Update.
      	(input_varpool_node): Update.
      	(input_refs): Update.
      	* ipa-ref-inline.h (ipa_ref_node): Update.
      	(ipa_ref_varpool_node): Update.
      	(ipa_ref_referring_node); Update.
      	(ipa_ref_referring_varpool_node): Update.
      	(ipa_ref_referring_ref_list); Update.
      	(ipa_ref_referred_ref_list): Update.
      	(ipa_ref_list_first_referring): Update.
      	(ipa_empty_ref_list): Update.
      	(ipa_ref_list_refering_iterate): Rename to ...
      	(ipa_ref_list_referring_iterate): ... this one.
      	* cse.c: Update comment.
      	* ipa-utils.c (ipa_reverse_postorder): Update.
      	* tree-ssa-alias.c: Update.
      	* ipa-inline.c (reset_edge_caches): Update.
      	(update_caller_keys): Update.
      	* ipa-inline.h: Update comments.
      	* jump.c: Update comment.
      	* alias.c: Likewise.
      	* ipa.c (process_references): Update.
      	(cgraph_remove_unreachable_nodes): Likewise.
      	(ipa_discover_readonly_nonaddressable_var): Likewise.
      	(cgraph_address_taken_from_non_vtable_p): Likewise.
      	* trans-mem.c (ipa_tm_execute): Update.
      	* simplify-rtx.c: Fix comment.
      	* rtl.c: Fix comment.
      	* symtab.c (symtab_unregister_node): Update.
      	* varpool.c (dump_varpool_node): Update.
      	(varpool_analyze_pending_decls): Update.
      	(assemble_aliases): Update.
      	(varpool_for_node_and_aliases): Update.
      
      From-SVN: r186564
      Jan Hubicka committed
    • cgraph.c (cgraph_node_name): Remove. · 8f940ee6
      	* cgraph.c (cgraph_node_name): Remove.
      	(dump_cgraph_node): Use dump_symtab_base; reformat.
      	* cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
      	debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
      	Declare.
      	(cgraph_node_name, varpool_node_name): Remove.
      	(cgraph_node_asm_name, varpool_node_asm_name,
      	cgraph_node_name, varpool_node_name): New.
      	* tree-pass.h (TODO_dump_cgraph): Rename to ...
      	(TODO_dump_symtab): ... this one.
      	* ipa-cp (pass_ipa_cp): Update.
      	* ia-reference.c (generate_summary, read_write_all_from_decl,
      	propagate, ipa_reference_read_optimization_summary): Update.
      	* cgraphunit.c (cgraph_analyze_functions): Update.
      	(cgraph_optimize): Update.
      	* ipa-ref.c (ipa_dump_references): Update.
      	(ipa_dump_refering): Update.
      	* ipa-inline.c (pass_ipa_inline): Update.
      	* matrix-reorg.c (pass_ipa_matrix_reorg): Update.
      	* ipa.c (pass_ipa_function_visibility,
      	pass_ipa_whole_program_visibility): Update.
      	* tree-sra.c (pass_early_ipa_sra): Update.
      	* symtab.c: Include langhooks.h
      	(symtab_node_asm_name): New.
      	(symtab_node_name): New.
      	(symtab_type_names): New static var.
      	(dump_symtab_base): New.
      	(dump_symtab_node, dump_symtab): New.
      	(debug_symtab_node,  debug_symtab): New.
      	* tree-ssa-structalias.c: Dump symbol table.
      	* pases.c (execute_todo): Handle TODO_dump_symtab instead
      	of TODO_dump_cgraph.
      	* varpoo.c (varpool_node_name): Remove.
      	(dump_varpool_node): Use dump_symtab_base; reformat.
      
      From-SVN: r186559
      Jan Hubicka committed
  26. 16 Apr, 2012 2 commits
    • cgraph.h (symtab_node_base): Add next and previous pointers. · 2aae7680
      	* cgraph.h (symtab_node_base): Add next and previous pointers.
      	(cgraph_node): Remove next and preivous pointers.
      	(varpool_node): Likewise; remove next/previous GTY marker;
      	it is not type safe.
      	(symtab_node_def): Update GTY marker
      	(x_cgraph_nodes, cgraph_nodes): Remove.
      	(symtab_nodes): New function.
      	(cgraph_order): Rename to ...
      	(symtab_order): ... this one.
      	(symtab_register_node, symtab_unregister_node, symtab_remove_node):
      	Declare.
      	(x_varpool_nodes, varpool_nodes): Remove.
      	(FOR_EACH_STATIC_VARIABLE): Update.
      	(symtab_function_p, symtab_variable_p): New function.
      	(FOR_EACH_VARIABLE): Update.
      	(varpool_first_variable, varpool_next_variable): New functions.
      	(FOR_EACH_VARIABLE): Update.
      	(cgraph_first_defined_function): Update.
      	(cgraph_next_defined_function, cgraph_next_defined_function): Update.
      	(FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
      	(cgraph_first_function, cgraph_next_function): New.
      	(FOR_EACH_FUNCTION): Update.
      	(cgraph_first_function_with_gimple_body,
      	cgraph_next_function_with_gimple_body): Update.
      	* symtab.c: New file.
      	* cgraph.c: Update copyright dates.
      	(x_cgraph_nodes, cgraph_order): Remove.
      	(NEXT_FREE_NODE): Update.
      	(SET_NEXT_FREE_NODE): New.
      	(cgraph_create_node_1): Remove common code.
      	(cgraph_create_node); Remove common code; call symtab_register_node.
      	(cgraph_remove_node): Remove common code; call symtab_unregister-node.
      	(cgraph_add_asm_node); update.
      	(cgraph_clone_node): Register new node.
      	* cgraphunit.c (process_function_and_variable_attributes): Update.
      	(cgraph_analyze_functions): Update.
      	(cgraph_analyze_functions): Update.
      	(cgraph_output_in_order): Update.
      	* lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1): Update.
      	* ipa-inline.c (recursive_inlining); update.
      	* lto-streamer-in.c (lto_input_toplevel_asms); Update.
      	* ipa.c (cgraph_remove_unreachable_nodes): Update.
      	* Makefile.in: Add symtab.o
      	* varpool.c (x_varpool_nodes): Remove
      	(varpool_node): Remove common code; call symtab_register_node.
      	(varpool_remove_node); Remove common code; call symtab_unregister_node.
      
      From-SVN: r186496
      Jan Hubicka committed
    • cgraph.h (FOR_EACH_VARIABLE, [...]): New macros. · 65c70e6b
      	* cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
      	New macros.
      	* lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
      	walkers to walk cgraph and varpool.
      	* cgraph.c (cgraph_node_for_asm): Likewise.
      	(dump_cgraph): Likewise.
      	* value-prof.c (init_node_map): Likewise.
      	* tree.c (free_lang_data_in_cgraph): Likewise.
      	* tree-emutls.c: (ipa_lower_emutls): Likewise.
      	* ipa-reference.c (generate_summary, propagate): Likewise.
      	* cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
      	cgraph_mark_functions_to_output, cgraph_output_in_order,
      	output_weakrefs, cgraph_materialize_all_clones,
      	cgraph_optimize): Likewise.
      	* lto-cgraph.c (merge_profile_summaries): Likewise.
      	(input_cgraph): Likewise.
      	* ipa-pure-const.c (generate_summary): Likewise.
      	(propagate): Likwise.
      	* ipa-utils.c (ipa_reduced_postorder): Likewise.
      	(ipa_free_postorder_info): Likewise.
      	(ipa_reverse_postorder): Likewise.
      	* ipa-inline.c (ipa_inline): Likewise.
      	* matrix-reorg.c (find_matrices_decl): Likewise.
      	(matrix_reorg): Likewise.
      	* tree-vectorizer.c (increase_alignment): Likewise.
      	* ipa.c (cgraph_remove_unreachable_nodes): Likewise.
      	(function_and_variable_visibility): Likewise.
      	(whole_program_function_and_variable_visibility): Likewise.
      	(ipa_cdtor_merge): Likewise.
      	* trans-mem.c (ipa_tm_execute): Likewise.
      	* ipa-inline-analysis.c (dump_inline_summaries): Likewise.
      	* ipa-prop.c (ipa_print_all_jump_functions): Likewise.
      	(ipa_print_all_params): Likewise.
      	(ipa_update_after_lto_read): Likewise.
      	* tree-profie.c (tree_profiling): Likewise.
      	* tree-ssa-structalias.c (ipa_pta_execute): Likewise.
      	* passes.c (dump_passes): Likewise.
      	(do_per_function): Likewise.
      	(ipa_write_summaries): Likewise.
      	* varpool.c (dump_varpool): Likewise.
      	(varpool_node_for_asm): Likewise.
      	(varpool_assemble_pending_decls): Likewise.
      
      
      	* decl2.c (collect_candidates_for_java_method_alias): Use FOR_EACH
              walkers to walk cgraph and varpool.
      
      	* lto.c (read_cgraph_and_symbols): Use FOR_EACH
              walkers to walk cgraph and varpool.
      	(materialize_cgraph): Likewise.
      	* lto-partition.c (lto_1_to_1_map): Likewise.
      	(lto_balanced_map): Likewise.
      	(lto_promote_cross_file_statics): Likewise.
      
      From-SVN: r186492
      Jan Hubicka committed
  27. 14 Apr, 2012 1 commit
    • cgraph.h: Update copyrights; · 960bfb69
      	* cgraph.h: Update copyrights;
      	(symtab_node): Turn to union typedef.
      	(symtab_node_base): New structure.
      	(symtab_type): Add SYMTAB_SYMBOL tag.
      	* cgraph.c: Update references to fields
      	(cgraph_hash, assembler_name_hash): Turn into symtab_node.
      	(cgraph_local_info): Remove lto_file_data
      	and externally_visible.
      	(cgraph_node): Remove decl; same_comdat_group list;
      	aux; ref_list; order; address_taken; reachable_from_other_parittion,
      	in_other_partition; resolution.
      	(varpool_node): Remove decl; same_comdat_group;
      	ref_list; lto_file_data; aux; order; resolution; externally_visible;
      	used_from_other_partition; in_other_partition.
      	(symtab_node_def); New union.
      	(cgraph, varpool): Update.
      	(varpool_first_static_initializer, varpool_next_static_initializer,
      	cgraph_only_called_directly_or_aliased_p,
      	varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
      	varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
      	varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
      	field references.
      	* cgraph.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* lto-symtab.c: Likewise.
      	* c-gimplify.c: Likewise.
      	* value-prof.c: Likewise.
      	* tree.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* ipa-inline-transform.c: Likwise.
      	* ipa-reference.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* ipa-ref.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* ipa-ref-inline.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa.c: Likewise.
      	* trans-mem.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* gimplify.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* tree-sra.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* varasm.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* passes.c: Likewise.
      	* varpool.c: Likewise.
      
      	* tree.c: Update field referenced for new cgraph/varpool layout.
      	* decl2.c: Likewise.
      
      	* gcc-interface/trans.c (finalize_nrv): Update field referenced for new
      	cgraph/varpool layout.
      
      	* lto.c: Update field referenced for new cgraph/varpool layout.
      	* lto-partition.c: Likewise.
      
      From-SVN: r186450
      Jan Hubicka committed
  28. 25 Mar, 2012 1 commit
    • re PR middle-end/51663 (Desirable/undesirable elimination of unused variables &… · 47a1ae3c
      re PR middle-end/51663 (Desirable/undesirable elimination of unused variables & functions at -O0, -O0 -flto and -O0 -fwhole-program)
      
      	PR lto/51663
      	* varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
      	(decide_is_variable_needed): Do not handle toplevel reorder here.
      	* cgraph.h (varpool_can_remove_if_no_refs): Likewise.
      	* ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
      	even at -O0.
      
      From-SVN: r185777
      Jan Hubicka committed
  29. 02 Dec, 2011 1 commit
  30. 14 Nov, 2011 1 commit
    • sw-1.c: Force rep;movsb. · 38877e98
      	* gcc.target/i386/sw-1.c: Force rep;movsb.
      
              * config/i386/i386.h (processor_costs): Add second dimension to
              stringop_algs array.
              * config/i386/i386.c (cost models): Initialize second dimension of
              stringop_algs arrays.
      	(core_cost): New costs based on generic64 costs with updated stringop
      	values.
              (promote_duplicated_reg): Add support for vector modes, add
              declaration.
              (promote_duplicated_reg_to_size): Likewise.
      	(processor_target): Set core costs for core variants.
              (expand_set_or_movmem_via_loop_with_iter): New function.
              (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
              different loops, produced by this function.
              (emit_strset): New function.
              (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
              use SSE-moves where possible.
              (expand_setmem_epilogue): Likewise.
              (expand_movmem_prologue): Likewise for prologue.
              (expand_setmem_prologue): Likewise.
              (expand_constant_movmem_prologue): Likewise.
              (expand_constant_setmem_prologue): Likewise.
              (decide_alg): Add new argument align_unknown.  Fix algorithm of
              strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
              (decide_alignment): Update desired alignment according to chosen move
              mode.
              (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
              (ix86_expand_setmem): Likewise.
              (ix86_slow_unaligned_access): Implementation of new hook
              slow_unaligned_access.
              * config/i386/i386.md (strset): Enable half-SSE moves.
              * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
              (vec_dupv2di): Add expand for vec_dupv2di.
      
      Co-Authored-By: Jan Hubicka <jh@suse.cz>
      
      From-SVN: r181357
      Zolotukhin Michael committed
  31. 02 Oct, 2011 2 commits
    • cgraphunit.c (ipa_passes): Remove unrechable nodes. · 467a8db0
      	* cgraphunit.c (ipa_passes): Remove unrechable nodes.
      	* lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
      	* ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
      	functions are reachable when address is taken.
      	* ipa-inline-analysis.c (reset_inline_edge_summary): New
      
      	* gcc.dg/ipa/ctor-empty-1.c: Update dump file.
      
      From-SVN: r179429
      Jan Hubicka committed
    • re PR lto/47247 (Linker plugin specification makes it difficult to handle COMDATs) · ed0d2da0
      	PR lto/47247
      	* lto-plugin.c (get_symbols_v2): New variable.
      	(write_resolution): Use V2 API when available.
      	(onload): Handle LDPT_GET_SYMBOLS_V2.
      
      	* lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
      	when resolution is already availbale from plugin.
      	(lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
      	* cgraph.c (ld_plugin_symbol_resolution): Add prevailing_def_ironly_exp.
      	* lto-cgraph.c (LDPR_NUM_KNOWN): Update.
      	* ipa.c (varpool_externally_visible_p): IRONLY variables are never
      	externally visible.
      	* varasm.c (resolution_to_local_definition_p): Add
      	LDPR_PREVAILING_DEF_IRONLY_EXP.
      	(resolution_local_p): Likewise.
      
      	* common.c (lto_resolution_str): Add new resolution.
      	* common.h (lto_resolution_str): Likewise.
      
      From-SVN: r179424
      Jan Hubicka committed
  32. 09 Jul, 2011 1 commit
    • cgraph.c (cgraph_add_to_same_comdat_group): New. · 2fda8e14
      gcc/
      	* cgraph.c (cgraph_add_to_same_comdat_group): New.
      	* cgraph.h: Declare it.
      	* ipa.c (function_and_variable_visibility): Make sure thunks
      	have the right visibility.
      gcc/cp/
      	* method.c (use_thunk): Use cgraph_add_to_same_comdat_group.
      	* optimize.c (maybe_clone_body): Likewise.
      	* semantics.c (maybe_add_lambda_conv_op): Likewise.
      
      From-SVN: r176071
      Jason Merrill committed
  33. 27 Jun, 2011 1 commit
  34. 18 Jun, 2011 1 commit
    • lto-symtab.c (lto_varpool_replace_node): Remove code handling extra name aliases. · 0e27699a
      	* lto-symtab.c (lto_varpool_replace_node): Remove code handling
      	extra name aliases.
      	(lto_symtab_resolve_can_prevail_p): Likewise.
      	(lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
      	* cgraphbuild.c (record_reference): Remove extra body alias code.
      	(mark_load): Likewise.
      	(mark_store): Likewise.
      	* cgraph.h (varpool_node): Remove extra_name filed;
      	add alias_of and extraname_alias.
      	(varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
      	(varpool_alias_aliased_node): New inline function.
      	(varpool_variable_node): New function.
      	* cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
      	* ipa-ref.c (ipa_record_reference): Allow aliases on variables.
      	* lto-cgraph.c (lto_output_varpool_node): Update streaming.
      	(input_varpool_node): Likewise.
      	* lto-streamer-out.c (produce_symtab): Remove extra name aliases.
      	(varpool_externally_visible_p): Remove extra body alias code.
      	(function_and_variable_visibility): Likewise.
      	* tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
      	(ipa_pta_execute): Use it.
      	* varpool.c (varpool_remove_node): Remove extra name alias code.
      	(varpool_mark_needed_node): Likewise.
      	(varpool_analyze_pending_decls): Analyze aliases.
      	(assemble_aliases): New functoin.
      	(varpool_assemble_decl): Use it.
      	(varpool_create_variable_alias): New function.
      	(varpool_extra_name_alias): Rewrite.
      	(varpool_for_node_and_aliases): New function.
      
      From-SVN: r175169
      Jan Hubicka committed
  35. 15 Jun, 2011 1 commit