1. 29 Apr, 2010 6 commits
    • plugin.h (invoke_plugin_callbacks): New inline function. · efda3807
      2010-04-29  Brian Hackett   <bhackett1024@gmail.com>
      
      	* plugin.h (invoke_plugin_callbacks): New inline function.
      	* plugin.c (flag_plugin_added): New global flag.
      	(add_new_plugin): Initialize above flag.
      	(invoke_plugin_callbacks): Rename to ...
      	(invoke_plugin_callbacks_full): ... this.
      
      From-SVN: r158896
      Brian Hackett committed
    • * lto-symtab.c (lto_symtab_entry_def) Add vnode. · 2942c502
      	(lto_varpool_replace_node): New.
      	(lto_symtab_resolve_symbols): Resolve varpool nodes.
      	(lto_symtab_merge_decls_1): Prefer decls with varpool node.
      	(lto_symtab_merge_cgraph_nodes_1): Merge varpools.
      	* cgraph.h (varpool_node_ptr): New type.
      	(varpool_node_ptr): New vector.
      	(varpool_node_set_def): New structure.
      	(varpool_node_set): New type.
      	(varpool_node_set): New vector.
      	(varpool_node_set_element_def): New structure.
      	(varpool_node_set_element, const_varpool_node_set_element): New types.
      	(varpool_node_set_iterator): New type.
      	(varpool_node): Add prev pointers, add used_from_other_partition,
      	in_other_partition.
      	(varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
      	varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
      	varpool_get_node, varpool_remove_node): Declare.
      	(vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
      	varpool_node_set_size): New inlines.
      	* cgraph.c (dump_cgraph_node): Dump asm names of aliases.
      	* tree-pass.h (varpool_node_set_def): Forward declare.
      	(ipa_opt_pass_d): Summary writting takes vnode sets too.
      	(ipa_write_optimization_summaries): Update prototype.
      	* ipa-cp.c (ipcp_write_summary): Update.
      	* ipa-reference.c (ipa_reference_write_summary): Update.
      	* lto-cgraph.c (lto_output_varpool_node): New static function.
      	(output_varpool): New function.
      	(input_varpool_node): New static function.
      	(input_varpool_1): New function.
      	(input_cgraph): Input varpool.
      	* ipa-pure-const.c (pure_const_write_summary): Update.
      	* lto-streamer-out.c (lto_output): Update, output varpool too.
      	(write_global_stream): Kill WPA hack.
      	(produce_asm_for_decls): Update.
      	(output_alias_pair_p): Handle variables.
      	(output_unreferenced_globals): Output only needed partition of varpool.
      	* ipa-inline.c (inline_write_summary): Update.
      	* lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build cgraph.
      	* lto-section-in.c (lto_section_name): Add varpool and jump funcs.
      	* ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
      	varpool_node_set_new, varpool_node_set_add,
      	varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
      	debug_varpool_node_set): New functions.
      	* passes.c (rest_of_decl_compilation): when in LTO do not finalize.
      	(execute_one_pass): Process new decls too.
      	(ipa_write_summaries_2): Pass around vsets.
      	(ipa_write_summaries_1): Likewise.
      	(ipa_write_summaries): Build vset; be more selective about cgraph nodes
      	to add.
      	(ipa_write_optimization_summaries_1): Pass around vsets.
      	(ipa_write_optimization_summaries): Likewise.
      	* varpool.c (varpool_get_node): New.
      	(varpool_node): Update doubly linked lists.
      	(varpool_remove_node): New.
      	(dump_varpool_node): More dumping.
      	(varpool_enqueue_needed_node): Update doubly linked lists.
      	(decide_is_variable_needed): Kill ltrans hack.
      	(varpool_finalize_decl): Kill lto hack.
      	(varpool_assemble_decl): Skip decls in other partitions.
      	(varpool_assemble_pending_decls): Update doubly linkes lists.
      	(varpool_empty_needed_queue): Likewise.
      	(varpool_extra_name_alias): Likewise.
      	* lto-streamer.c (lto_get_section_name): Add vars section.
      	* lto-streamer.h (lto_section_type): Update.
      	(output_varpool, input_varpool): Declare.
      
      	* lto.c (lto_varpool_node_sets): New.
      	(lto_1_to_1_map): Partition varpool too.
      	(globalize_context_t, globalize_cross_file_statics,
      	lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
      	lto_scan_statics_in_remaining_global_vars): Remove.
      	(lto_promote_cross_file_statics): Rewrite.
      	(get_filename_for_set): Take vset argument.
      	(lto_wpa_write_files): Pass around vsets.
      
      From-SVN: r158854
      Jan Hubicka committed
    • Fix long lines · 74ca3393
      From-SVN: r158853
      Eric Botcazou committed
    • darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now. · da7f2697
      	* config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for
      	now.
      
      Fixes stubify-1.mm on i686-apple-darwin*.
      
      From-SVN: r158852
      Mike Stump committed
    • uninit-pred-1_b.C: Use dg-message instead of dg-excess-errors. · a143bf27
      	* g++.dg/uninit-pred-1_b.C: Use dg-message instead of
      	dg-excess-errors.
      	* g++.dg/uninit-pred-2_b.C: Likewise.
      
      From-SVN: r158851
      Mike Stump committed
    • Daily bump. · ca83a449
      From-SVN: r158850
      GCC Administrator committed
  2. 28 Apr, 2010 16 commits
    • re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays]) · a10da381
      2010-04-28  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/18918
              PR fortran/43919
              * simplify.c (simplify_cobound): Handle scalar coarrays.
      
      2010-04-28  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/18918
              PR fortran/43919
              * gfortran.dg/coarray_11.f90: Add scalar-coarrays test case.
      
      From-SVN: r158843
      Tobias Burnus committed
    • lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for record or… · 91eace2b
      lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for record or union type with RECORD_OR_UNION_TYPE_P predicate.
      
      	* lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
      	record or union type with RECORD_OR_UNION_TYPE_P predicate.
      	(lto_input_ts_type_tree_pointers): Likewise.
      	* lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
      	(lto_output_ts_type_tree_pointers): Likewise.
      
      From-SVN: r158841
      Eric Botcazou committed
    • plugin.exp: Run the plugindir tests. · ab6edba4
      2010-04-28  Matthias Klose  <doko@ubuntu.com>
      
              * gcc.dg/plugin/plugin.exp: Run the plugindir tests.
              * gcc.dg/plugindir1.c: Move to gcc.dg/plugin/plugindir1.c.
              * gcc.dg/plugindir2.c: Move to gcc.dg/plugin/plugindir2.c.
              * gcc.dg/plugindir3.c: Move to gcc.dg/plugin/plugindir3.c.
              * gcc.dg/plugindir4.c: Move to gcc.dg/plugin/plugindir4.c.
      
      From-SVN: r158840
      Matthias Klose committed
    • Fix nits · 20225a9b
      From-SVN: r158839
      Eric Botcazou committed
    • Uniquization of constants at the Tree level · 8478130d
      	Uniquization of constants at the Tree level
      	* tree.h (DECL_IN_CONSTANT_POOL): New macro
      	(tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
      	bit to the end.
      	(tree_output_constant_def): Declare.
      	* gimplify.c (gimplify_init_constructor): When using block copy,
      	uniquize the constant constructor on the RHS.
      	* lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal
      	with DECL_IN_CONSTANT_POOL flag.
      	* lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
      	* varasm.c (make_decl_rtl): Deal with variables belonging to the
      	global constant pool.
      	(assemble_variable): Deal with symbols belonging to the tree constant
      	pool.
      	(get_constant_section): Add ALIGN parameter and simplify.
      	(build_constant_desc): Build a VAR_DECL and attach it to the symbol.
      	(assemble_constant_contents): Use the expression of the VAR_DECL.
      	(output_constant_def_contents): Use the alignment of the VAR_DECL.
      	(tree_output_constant_def): New global function.
      	(mark_constant): Use the expression of the VAR_DECL.
      	(place_block_symbol): Use the alignment of the VAR_DECL and the size
      	of its expression.
      	(output_object_block): Likewise and assemble the expression.
      ada/
      	* gcc-interface/trans.c (gnat_gimplify_expr) <ADDR_EXPR>: Uniquize
      	constant constructors before taking their address.
      
      From-SVN: r158838
      Eric Botcazou committed
    • lto-streamer.c [...] (tree_htab, [...]): New tree hash table. · 331c7fcd
      	* lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
      	hash_tree, eq_tree): New tree hash table.
      	(lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
      	[LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
      	lto_orig_address_remove): Reimplement.
      
      From-SVN: r158836
      Eric Botcazou committed
    • predicate aware uninitialized analysis · 34f97b94
      From-SVN: r158835
      Xinliang David Li committed
    • elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object type if available. · 85fac79c
      	* config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
      	type if available.
      
      From-SVN: r158834
      Uros Bizjak committed
    • re PR target/22224 (Several Tru64 UNIX testsuite failures: Length of .lcomm was less than 1) · 902a51a1
      	PR target/22224
      	* config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
      
      From-SVN: r158831
      Rainer Orth committed
    • cgraph.h (struct cgraph_node): New field indirect_calls. · e33c6cd6
      2010-04-28  Martin Jambor  <mjambor@suse.cz>
      
      	* cgraph.h (struct cgraph_node): New field indirect_calls.
      	(struct cgraph_indirect_call_info): New type.
      	(struct cgraph_edge): Removed field indirect_call. New fields
      	indirect_info, indirect_inlining_edge and indirect_unknown_callee.
      	(cgraph_create_indirect_edge): Declare.
      	(cgraph_make_edge_direct): Likewise.
      	(enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
      	* ipa-prop.h (struct ipa_param_call_note): Removed.
      	(struct ipa_node_params): Removed field param_calls.
      	(ipa_create_all_structures_for_iinln): Declare.
      	* cgraph.c: Described indirect edges and uids in initial comment.
      	(cgraph_add_edge_to_call_site_hash): New function.
      	(cgraph_edge): Search also among the indirect edges, use
      	cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
      	(cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
      	one, use cgraph_add_edge_to_call_site_hash to add edges to the call
      	site hash.
      	(initialize_inline_failed): Assign a reason to indirect edges.
      	(cgraph_create_edge_1): New function.
      	(cgraph_create_edge): Moved some functionality to
      	cgraph_create_edge_1.
      	(cgraph_create_indirect_edge): New function.
      	(cgraph_edge_remove_callee): Add an assert checking for
      	non-indirectness.
      	(cgraph_edge_remove_caller): Special-case indirect edges.
      	(cgraph_remove_edge): Likewise.
      	(cgraph_set_edge_callee): New function.
      	(cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
      	(cgraph_make_edge_direct): New function.
      	(cgraph_update_edges_for_call_stmt_node): Do nothing only when also
      	the declaration of the call statement matches.
      	(cgraph_node_remove_callees): Special-case indirect edges.
      	(cgraph_clone_edge): Likewise.
      	(cgraph_clone_node): Clone also the indirect edges.
      	(dump_cgraph_node): Dump indirect_inlining_edge flag instead of
      	indirect_call, dump count of indirect_calls edges.
      	* ipa-prop.c (iinlining_processed_edges): New variable.
      	(ipa_note_param_call): Create indirect edges instead of
      	creating notes.  New parameter node.
      	(ipa_analyze_call_uses): New parameter node, pass it on to
      	ipa_note_param_call.
      	(ipa_analyze_stmt_uses): Likewise.
      	(ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
      	(print_edge_addition_message): Work on edges rather than on notes.
      	(update_call_notes_after_inlining): Likewise, renamed to
      	update_indirect_edges_after_inlining.
      	(ipa_create_all_structures_for_iinln): New function.
      	(ipa_free_node_params_substructures): Do not free notes.
      	(ipa_edge_duplication_hook): Propagate bits within
      	iinlining_processed_edges bitmap.
      	(ipa_node_duplication_hook): Do not duplicate notes.
      	(free_all_ipa_structures_after_ipa_cp): Renamed to
      	ipa_free_all_structures_after_ipa_cp.
      	(free_all_ipa_structures_after_iinln): Renamed to
      	ipa_free_all_structures_after_iinln.g
      	(ipa_write_param_call_note): Removed.
      	(ipa_read_param_call_note): Removed.
      	(ipa_write_indirect_edge_info): New function.
      	(ipa_read_indirect_edge_info): Likewise.
      	(ipa_write_node_info): Do not stream notes, do stream information
      	in indirect edges.
      	(ipa_read_node_info): Likewise.
      	(lto_ipa_fixup_call_notes): Removed.
      	* ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
      	* ipa-inline.c (pass_ipa_inline): Likewise.
      	* cgraphunit.c (verify_cgraph_node): Check also indirect edges.
      	* cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
      	* tree-inline.c (copy_bb): Removed an unnecessary double check for
      	is_gimple_call.
      	* tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
      	edges.
      	* lto-cgraph.c (output_outgoing_cgraph_edges): New function.
      	(output_cgraph): Stream also indirect edges.
      	(lto_output_edge): Added capability to stream indirect edges.
      	(input_edge): Likewise.
      	(input_cgraph_1): Likewise.
      
      	* testsuite/gcc.dg/lto/20091209-1_0.c: New testcase.
      
      From-SVN: r158827
      Martin Jambor committed
    • re PR tree-optimization/43879 (-fipa-pta causes various miscompilations) · 18abb35e
      2010-04-28  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/43879
      	PR tree-optimization/43909
      	* tree-ssa-structalias.c (struct variable_info): Add
      	only_restrict_pointers flag.
      	(new_var_info): Initialize it.  Increment stats.total_vars here.
      	(create_function_info_for): Do not increment stats.total_vars
      	here.
      	(get_function_part_constraint): Fix build with C++.
      	(insert_into_field_list): Remove.
      	(push_fields_onto_fieldstack): Properly merge fields.
      	(create_variable_info_for): Split and simplify.
      	(create_variable_info_for_1): New piece.
      	(intra_create_variable_infos): Properly make restrict constraints
      	from parameters.
      
      	* gcc.dg/ipa/ipa-pta-14.c: Adjust.
      
      From-SVN: r158825
      Richard Guenther committed
    • re PR middle-end/43880 (internal compiler error: in make_decl_rtl) · c718820a
      2010-04-28  Richard Guenther  <rguenther@suse.de>
      
      	PR c++/43880
      	* tree-inline.c (copy_bind_expr): Also copy bind expr vars
      	value-exprs.
      
      	* g++.dg/torture/pr43880.C: New testcase.
      
      From-SVN: r158824
      Richard Guenther committed
    • re PR c++/9335 (repeated diagnostic when maximum template depth is exceeded) · 4b414c93
      2010-04-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR c++/9335
      cp/
              * error.c (print_instantiation_partial_context_line): Handle
      	recursive instantiation.
              (print_instantiation_partial_context): Likewise.
      
      testsuite/
              * g++.dg/template/recurse2.C: Update
              * g++.dg/template/recurse.C: Update.
              * g++.dg/template/pr23510.C: Update.
              * lib/prune.exp: Filter out 'recursively instantiated'.
      
      From-SVN: r158823
      Manuel López-Ibáñez committed
    • * init.c (perform_member_init): Check CLASS_TYPE_P. · 012e6a1e
      From-SVN: r158822
      Jason Merrill committed
    • Daily bump. · a8ae1977
      From-SVN: r158821
      GCC Administrator committed
    • re PR c++/29043 (Constructor for POD type with const member without member initializer accepted) · 31d1acec
      	PR c++/29043
      	* init.c (perform_member_init): check for uninitialized const or
      	reference members, including array types.
      
      From-SVN: r158817
      Fabien Chêne committed
  3. 27 Apr, 2010 18 commits