1. 11 May, 2009 4 commits
    • re PR tree-optimization/40074 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:944) · 4da39468
      	PR tree-optimization/40074
      	* tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
      	account in group size and step comparison.
      
      From-SVN: r147372
      Ira Rosen committed
    • passes.c (init_optimization_passes): Strip now incorrect comment. · 4effdf02
      2009-05-11  Richard Guenther  <rguenther@suse.de>
      
      	* passes.c (init_optimization_passes): Strip now incorrect comment.
      	(execute_function_todo): Do not set PROP_alias.
      	* tree-pass.h (PROP_alias): Remove.
      	* tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
      	* tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
      	* tree-nrv.c (pass_return_slot): Likewise.
      	* tree-object-size.c (pass_object_sizes): Likewise.
      	* tree-ssa-dom.c (pass_dominator): Likewise.
      	(pass_phi_only_cprop): Likewise.
      	* tree-ssa-dse.c (pass_dse): Likewise.
      	* tree-ssa-phiopt.c (pass_phiopt): Likewise.
      	(pass_cselim): Likewise.
      	* tree-ssa-pre.c (pass_pre): Likewise.
      	(pass_fre): Likewise.
      	* tree-ssa-reassoc.c (pass_reassoc): Likewise.
      	* tree-ssa-sink.c (pass_sink_code): Likewise.
      	* tree-stdarg.c (pass_stdarg): Likewise.
      	* tree-tailcall.c (pass_tail_calls): Likewise.
      	* tree-vrp.c (pass_vrp): Likewise.
      
      From-SVN: r147371
      Richard Guenther committed
    • basic-block.h (enum profile_status): Break out of struct control_flow_graph. · 24b97832
      ./:	* basic-block.h (enum profile_status): Break out of struct
      	control_flow_graph.
      	* cgraph.h (struct inline_summary): Break out of struct
      	cgraph_local_info.
      	* cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
      	of struct cgraph_order_sort.
      	* combine.c (enum undo_kind): New enum, broken out of struct
      	undo.
      	* cse.c (struct branch_path): Break out of struct
      	cse_basic_block_data.
      	* except.h (enum eh_region_type): Break out of struct eh_region.
      	* gcc.c (enum add_del): Break out of struct modify_target.
      	* genrecog.c (enum decision_type): Break out of struct
      	decision_test.
      	* ggc-page.c (struct ggc_pch_ondisk): Break out of struct
      	ggc_pch_data.
      	* matrix-reorg.c (struct free_info): Break out of struct
      	matrix_info.
      	* regmove.c (enum match_use): New enum, broken out of struct
      	match.
      	* sched-int.h (enum post_call_group): New enum, broken out of
      	struct deps.
      	(struct deps_reg): Break out of struct deps.
      	* target.h (struct asm_int_op): Break out of struct gcc_target.
      	* tree-eh.c (struct goto_queue_node): Break out of struct
      	leh_tf_state.
      	* tree-inline.h (enum copy_body_cge_which): Break out of
      	copy_body_data.
      	* tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
      
      	* c-decl.c (in_struct, struct_types): New static variables.
      	(pushtag): Add loc parameter.  Change all callers.
      	(lookup_tag): Add ploc parameter.  Change all callers.
      	(check_compound_literal_type): New function.
      	(parser_xref_tag): Add loc parameter.  Change all callers.  If
      	-Wc++-compat, warn about struct/union/enum types defined within a
      	struct or union.
      	(start_struct): Add enclosing_in_struct, enclosing_struct_types,
      	and loc parameters.  Change all callers.  Change error calls to
      	error_at, using loc.  For a redefinition, if the location of the
      	original definition is known, report it.  Set in_struct and
      	struct_types.  If -Wc++-compat warn if in sizeof, typeof, or
      	alignof.
      	(finish_struct): Add new parameters enclosing_in_struct and
      	enclosing_struct_types.  Change all callers.  Set
      	C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
      	in the struct.  If in a struct, add this struct to struct_types.
      	(start_enum): Add loc parameter.  Change all callers.  Use
      	error_at for errors, using loc.  For a redefinition, if the
      	location of the original definition is known, report it.  If in a
      	struct, add this enum type to struct_types.  If -Wc++-compat warn
      	if in sizeof, typeof, or alignof.
      	* c-parser.c (disable_extension_diagnostics): Disable
      	-Wc++-compat.
      	(enable_extension_diagnostics): Reenable -Wc++-compat if
      	appropriate.
      	(c_parser_enum_specifier): Get enum location for start_enum.
      	(c_parser_struct_or_union_specifier): Get struct location for
      	start_struct.  Save in_struct and struct_types status between
      	start_struct and finish_struct.
      	(c_parser_cast_expression): Get location of cast.
      	(c_parser_alignof_expression): Get location of type.
      	(c_parser_postfix_expression): Likewise.
      	(c_parser_postfix_expression_after_paren_type): Add type_loc
      	parameter.  Change all callers.  Call
      	check_compound_literal_type.  Use type_loc for error about
      	variable size type.
      	* c-typeck.c (build_external_ref): If -Wc++-compat, warn about a
      	use of an enum constant from an enum type defined in a struct or
      	union.
      	(c_cast_expr): Add loc parameter.  Change all callers.  If
      	-Wc++-compat, warn about defining a type in a cast.
      	* c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
      	(start_enum, start_struct, finish_struct): Update declarations.
      	(parser_xref_tag, c_cast_expr): Update declarations.
      	(check_compound_literal_type): Declare.
      fortran/:
      	* gfortran.h (enum gfc_omp_sched_kind): New enum, broken out of
      	gfc_omp_clauses.
      	(enum gfc_omp_default_sharing): Likewise.
      	* module.c (enum gfc_rsym_state): New enum, broken out of
      	pointer_info.
      	(enum gfc_wsym_state): Likewise.
      	* parse.c (enum state_order): New enum, broken out of st_state.
      objc/:
      	* objc-act.c (objc_building_struct): New static variable.
      	(objc_in_struct, objc_struct_types): New static variables.
      	(objc_start_struct, objc_finish_struct): New static functions.
      	(generate_struct_by_value_array): Call objc_start_struct instead
      	of start_struct, and call objc_finish_struct instead of
      	finish_struct.
      	(objc_build_struct, build_objc_symtab_template): Likewise.
      	(build_module_descriptor): Likewise.
      	(build_next_objc_exception_stuff): Likewise.
      	(build_protocol_template): Likewise.
      	(build_method_prototype_list_template): Likewise.
      	(build_method_prototype_template): Likewise.
      	(build_category_template, build_selector_template): Likewise.
      	(build_class_template, build_super_template): Likewise.
      	(build_ivar_template, build_ivar_list_template): Likewise.
      	(build_method_list_template): Likewise.
      	(build_method_template): Likewise.
      objcp/:
      	* objcp-decl.h (start_struct): Add three new, ignored, macro
      	parameters.
      	(finish_struct): Add two new, ignored, macro parameters.
      testsuite/:
      	* gcc.dg/Wcxx-compat-7.c: New testcase.
      	* gcc.dg/Wcxx-compat-8.c: New testcase.
      	* gcc.dg/c99-tag-1.c: Recognize new "originally defined here"
      	notes
      	* gcc.dg/pr17188-1.c: Likewise.
      	* gcc.dg/pr39084.c: Likewise.
      
      From-SVN: r147358
      Ian Lance Taylor committed
    • Daily bump. · 76a5dd01
      From-SVN: r147356
      GCC Administrator committed
  2. 10 May, 2009 19 commits
    • rs6000-c.c (altivec_categorize_keyword): Update for recent libcpp interface change. · 7a2738fa
      	* config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
      	for recent libcpp interface change.
      	(rs6000_macro_to_expand): Likewise.
      
      From-SVN: r147352
      Ben Elliston committed
    • re PR target/40031 (ARM broken with addresses in PHIs with -fPIC) · af618949
              PR target/40031
              * config/arm/arm.c (require_pic_register): Emit on entry
              edge, not at entry of function.
      testsuite/
              * gcc.dg/pr40031.c: New test.
      
      From-SVN: r147350
      Michael Matz committed
    • re PR tree-optimization/40081 (verify_stmts failed with -O2) · b7d7a473
      2009-05-10  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/40081
      	Revert
      	* tree-sra.c (instantiate_element): Instantiate scalar replacements
      	using the main variant of the element type.  Do not fiddle with
      	TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
      
      	* tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
      	structs with volatile fields.
      
      From-SVN: r147349
      Richard Guenther committed
    • Remove junk file · ade1f226
      From-SVN: r147348
      Eric Botcazou committed
    • tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare. · 078c3644
      	* tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
      	(estimate_move_cost): Assert that it does not get called for VOID_TYPE_P.
      	(estimate_num_insns): Skip VOID types in argument handling.
      	(optimize_inline_calls): Delete unreachable blocks and verify that
      	callgraph is valid.
      
      From-SVN: r147344
      Jan Hubicka committed
    • Fix changelog entry. · ea5783ee
      From-SVN: r147343
      Jan Hubicka committed
    • cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node. · 39ff5a96
      	* cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
      	* cgraph.c (cgraph_mark_address_taken_node): New function.
      	(dump_cgraph_node): Dump new flag.
      	* cgraph.h (struct cgraph_node): Add address_taken.
      	(cgraph_mark_address_taken_node): New function.
      	* cp/decl2.c (cxx_callgraph_analyze_expr): Use
      	cgraph_mark_address_taken.
      	* ipa.c (cgraph_postorder): Prioritize functions with address taken
      	since new direct calls can be born.
      
      From-SVN: r147342
      Jan Hubicka committed
    • c-lex.c (c_lex_with_flags): Expect cpp_hashnode in tok->val.node.node. · 9a0c6187
      gcc:
      	* c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
      	tok->val.node.node.
      
      libcpp:
      	* include/cpplib.h (enum cpp_token_fld_kind): Add
      	CPP_TOKEN_FLD_TOKEN_NO.
      	(struct cpp_macro_arg, struct cpp_identifier): Define.
      	(union cpp_token_u): Use struct cpp_identifier for identifiers.
      	Use struct cpp_macro_arg for macro arguments.  Add token_no for
      	CPP_PASTE token numbers.
      	* directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
      	do_pragma_poison, parse_assertion): Use val.node.node in place of
      	val.node.
      	* expr.c (parse_defined, eval_token): Use val.node.node in place
      	of val.node.
      	* lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
      	cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
      	cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
      	place of val.arg_no.  Use val.node.node in place of val.node.
      	* macro.c (replace_args, cpp_get_token, parse_params,
      	lex_expansion_token, create_iso_definition, cpp_macro_definition):
      	Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
      	Use val.node.node in place of val.node.
      
      From-SVN: r147341
      Joseph Myers committed
    • Fix formatting · fb0be169
      From-SVN: r147338
      Eric Botcazou committed
    • re PR middle-end/40084 (Revision 147294 failed 483.xalancbmk in SPEC CPU 2006 at -O3) · 4b685e14
      	PR middle-end/40084
      	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call argument;
      	rewrite.
      	(cgraph_update_edges_for_call_stmt): Take old_decl argument.
      	* cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
      	* tree-inline.c (copy_bb): Set frequency correctly.
      	(fold_marked_statements): Update call of cgraph_update_edges_for_call_stmt.
      
      From-SVN: r147337
      Jan Hubicka committed
    • * gcc.pot: Regenerate. · 51e61d33
      From-SVN: r147335
      Joseph Myers committed
    • arc.c (arc_handle_interrupt_attribute): Use %qE for identifiers in diagnostics. · 29d08eba
      	* config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
      	identifiers in diagnostics.
      	* config/arm/arm.c (arm_handle_fndecl_attribute,
      	arm_handle_isr_attribute): Likewise.
      	* config/avr/avr.c (avr_handle_progmem_attribute,
      	avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
      	Likewise.
      	* config/bfin/bfin.c (handle_int_attribute,
      	bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
      	bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
      	bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
      	Likewise.
      	* config/darwin.c (darwin_handle_kext_attribute,
      	darwin_handle_weak_import_attribute): Likewise.
      	* config/h8300/h8300.c (h8300_handle_fndecl_attribute,
      	h8300_handle_eightbit_data_attribute,
      	h8300_handle_tiny_data_attribute): Likewise.
      	* config/i386/i386.c (ix86_handle_cconv_attribute,
      	ix86_handle_abi_attribute, ix86_handle_struct_attribute):
      	Likewise.
      	* config/i386/winnt.c (ix86_handle_shared_attribute,
      	ix86_handle_selectany_attribute): Likewise.
      	* config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
      	* config/m32c/m32c.c (function_vector_handler): Likewise.
      	* config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
      	m68hc11_handle_fntype_attribute): Likewise.
      	* config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
      	* config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
      	* config/mips/mips.c (mips_insert_attributes,
      	mips_merge_decl_attributes, mips_expand_builtin): Likewise.
      	* config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
      	rs6000_handle_struct_attribute): Likewise.
      	* config/sh/sh.c (sh_insert_attributes,
      	sh_handle_resbank_handler_attribute,
      	sh_handle_interrupt_handler_attribute,
      	sh2a_handle_function_vector_handler_attribute,
      	sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
      	Likewise.
      	* config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
      	* config/spu/spu.c (spu_handle_fndecl_attribute,
      	spu_handle_vector_attribute): Likewise.
      	* config/stormy16/stormy16.c
      	(xstormy16_handle_interrupt_attribute): Likewise.
      	* config/v850/v850-c.c (ghs_pragma_section): Likewise.
      	* config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
      
      From-SVN: r147334
      Joseph Myers committed
    • pretty-print.h (struct pretty_print_info): Add translate_identifiers. · f41c4af3
      	* pretty-print.h (struct pretty_print_info): Add
      	translate_identifiers.
      	(pp_translate_identifiers): New.
      	(pp_identifier): Only conditionally translate identifier to locale
      	character set.
      	* pretty-print.c (pp_construct): Set pp_translate_identifiers.
      	(pp_base_tree_identifier): Only conditionally translate identifier
      	to locale character set.
      	* c-pretty-print.c (M_): Define.
      	(pp_c_type_specifier, pp_c_primary_expression): Mark English
      	fragments for conditional translation with M_.
      	* tree-pretty-print.c (maybe_init_pretty_print): Disable
      	identifier translation.
      
      cp:
      	* call.c (name_as_c_string): Call type_as_string_translate.
      	Translate identifiers to locale character set.
      	* cp-tree.h (lang_decl_name): Update prototype.
      	(type_as_string_translate, decl_as_string_translate,
      	cxx_printable_name_translate): Declare.
      	* cxx-pretty-print.c (M_): Define.
      	(pp_cxx_unqualified_id, pp_cxx_canonical_template_parameter): Mark
      	English fragments for conditional translation with M_.
      	* decl.c (grokdeclarator): Translate identifiers to locale
      	character set for diagnostics.
      	* error.c (M_): Define.
      	(dump_template_bindings, dump_type, dump_aggr_type,
      	dump_type_prefix, dump_global_iord, dump_simple_decl, dump_decl,
      	dump_function_decl, dump_template_parms, dump_expr,
      	dump_binary_op, op_to_string, assop_to_string): Mark English
      	fragments for conditional translation with M_.
      	(type_as_string): Disable translation of identifiers.
      	(type_as_string_translate): New.
      	(expr_as_string): Disable translation of identifiers.
      	(decl_as_string): Disable translation of identifiers.
      	(decl_as_string_translate): New.
      	(lang_decl_name): Add parameter translate.
      	(args_to_string): Call type_as_string_translate.
      	(cp_print_error_function): Call cxx_printable_name_translate.
      	(print_instantiation_full_context,
      	print_instantiation_partial_context): Call
      	decl_as_string_translate.
      	* parser.c (cp_lexer_get_preprocessor_token): Use %qE for
      	identifier in diagnostic.
      	* tree.c (cxx_printable_name): Change to
      	cxx_printable_name_internal.  Add parameter translate.
      	(cxx_printable_name, cxx_printable_name_translate): New wrappers
      	round cxx_printable_name_internal.
      
      objc:
      	* objc-act.c: Include intl.h.
      	(objc_lookup_protocol): Use complete sentences for diagnostics
      	with %qE for identifiers and translating results of
      	gen_type_name_0 to locale character set.
      	(objc_check_decl, check_protocol_recursively,
      	lookup_and_install_protocols, objc_build_string_object,
      	objc_get_class_reference, objc_declare_alias, objc_declare_class,
      	objc_get_class_ivars, error_with_ivar, check_duplicates,
      	objc_finish_message_expr, objc_build_protocol_expr,
      	objc_build_selector_expr, build_ivar_reference, objc_add_method,
      	add_category, add_instance_variable, objc_is_public,
      	check_methods, check_methods_accessible, check_protocol,
      	start_class, finish_class, start_protocol, really_start_method,
      	get_super_receiver, objc_lookup_ivar): Use %E and %qE for
      	identifiers in diagnostics.  Translate generated text to locale
      	character set as needed.
      	(check_protocol, check_protocols): Change name parameter to type
      	tree.
      	(lang_report_error_function): Remove.
      
      From-SVN: r147333
      Joseph Myers committed
    • re PR fortran/40018 (ICE in output_constructor) · 082b1749
      2009-05-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/40018
      	* trans-array.c (gfc_trans_array_constructor_value): Fold
      	convert numeric constants.
      	(gfc_build_constant_array_constructor): The same.
      
      2009-05-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/40018
      	* gfortran.dg/array_constructor_31.f90: New test.
      
      From-SVN: r147332
      Paul Thomas committed
    • re PR fortran/40018 (ICE in output_constructor) · 110ea21a
      2009-05-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/40018
      	* trans-array.c (gfc_trans_array_constructor_value): Fold
      	convert numeric constants.
      	(gfc_build_constant_array_constructor): The same.
      
      2009-05-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/40018
      	* gfortran.dg/array_constructor_31.f90: New test.
      
      From-SVN: r147331
      Paul Thomas committed
    • re PR tree-optimization/40081 (verify_stmts failed with -O2) · 896d7dbd
      2009-05-10  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/40081
      	* tree-sra.c (instantiate_element): Instantiate scalar replacements
      	using the main variant of the element type.  Do not fiddle with
      	TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
      
      	* g++.dg/torture/pr40081.C: New testcase.
      
      From-SVN: r147330
      Richard Guenther committed
    • re PR fortran/38863 (WHERE with multiple elemental defined assignments gives wrong answer) · eb74e79b
      2009-05-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/38863
      	* trans-expr.c (gfc_conv_operator_assign): Remove function.
      	* trans.h : Remove prototype for gfc_conv_operator_assign.
      	* trans-stmt.c (gfc_conv_elemental_dependencies): Initialize
      	derivde types with intent(out).
      	(gfc_trans_call): Add mask, count1 and invert arguments. Add
      	code to use mask for WHERE assignments.
      	(gfc_trans_forall_1): Use new arguments for gfc_trans_call.
      	(gfc_trans_where_assign): The gfc_symbol argument is replaced
      	by the corresponding code. If this has a resolved_sym, then
      	gfc_trans_call is called. The call to gfc_conv_operator_assign
      	is removed.
      	(gfc_trans_where_2): Change the last argument in the call to
      	gfc_trans_where_assign.
      	* trans-stmt.h : Modify prototype for gfc_trans_call.
      	* trans.c (gfc_trans_code): Use new args for gfc_trans_call.
      
      2009-05-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/38863
      	* gfortran.dg/dependency_24.f90: New test.
      	* gfortran.dg/dependency_23.f90: Clean up module files.
      
      From-SVN: r147329
      Paul Thomas committed
    • re PR fortran/38956 (tests gfortran.dg/chmod_{1,2,3}.f90 fails on i686-pc-cygwin) · a34dda5b
      2009-04-10  David Billinghurst <billingd@gcc.gnu.org>
      
              PR fortran/38956
              * gfortran.dg/chmod_1.f90: Don't run on *-*-cygwin*.
              * gfortran.dg/chmod_2.f90: Likewise.
              * gfortran.dg/chmod_3.f90: Likewise.
              * gfortran.dg/open_errors.f90: Likewise.
      
      From-SVN: r147326
      David Billinghurst committed
    • Daily bump. · c7b658eb
      From-SVN: r147325
      GCC Administrator committed
  3. 09 May, 2009 8 commits
  4. 08 May, 2009 9 commits
    • Update test to use __BIGGEST_ALIGNMENT__ · ece48253
      From-SVN: r147299
      Michael Meissner committed
    • Fix PR 40049 · ad6c0864
      From-SVN: r147298
      Michael Meissner committed
    • fold-const.c (fold_binary): Do not fold multiplication by 1 or -1 for complex… · c94f9067
      fold-const.c (fold_binary): Do not fold multiplication by 1 or -1 for complex floating-point types if...
      
      	* fold-const.c (fold_binary): Do not fold multiplication by 1 or
      	-1 for complex floating-point types if honoring signed zeros.
      
      testsuite:
      	* gcc.dg/torture/complex-sign-mul-minus-one.c,
      	gcc.dg/torture/complex-sign-mul-one.c: New tests.
      
      From-SVN: r147295
      Joseph Myers committed
    • cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function argument; handle… · 9187e02d
      cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function argument; handle correctly when profile is absent.
      
      	* cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function argument;
      	handle correctly when profile is absent.
      	(build_cgraph_edges): Update.
      	(rebuild_cgraph_edges): Update.
      	* cgraph.c: Do not include varrau.h 
      	(cgraph_set_call_stmt_including_clones, cgraph_create_edge_including_clones):
      	New function
      	(cgraph_update_edges_for_call_stmt_node): New stati cfunction.
      	(cgraph_update_edges_for_call_stmt): Handle clones.
      	(cgraph_remove_node): Handle clone tree.
      	(cgraph_remove_node_and_inline_clones): New function.
      	(dump_cgraph_node): Dump clone tree.
      	(cgraph_clone_node): Handle clone tree.
      	(clone_function_name): Bring here from tree-inline.c
      	(cgraph_create_virtual_clone): New function.
      	* cgraph.h (ipa_replace_map): Move ehre from ipa.h
      	(cgraph_clone_info): New function
      	(strut cgraph_node): Add clone_info and new clone tree pointers.
      	(cgraph_remove_node_and_inline_clones, cgraph_set_call_stmt_including_clones,
      	cgraph_create_edge_including_clones, cgraph_create_virtual_clone): Declare.
      	(cgraph_function_versioning): Use VEC argument.
      	(compute_call_stmt_bb_frequency): Update prototype.
      	(cgraph_materialize_all_clones): New function.
      	* ipa-cp.c (ipcp_update_cloned_node): Remove.
      	(ipcp_create_replace_map): Update to VECtors.
      	(ipcp_update_callgraph): Use virtual clones.
      	(ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
      	(ipcp_update_profiling): Do not update local profiling.
      	(ipcp_insert_stage): Use VECtors and virtual clones.
      	* cgraphunit.c (verify_cgraph_node): Verify clone tree.
      	(clone_of_p): New function.
      	(cgraph_preserve_function_body_p): Use clone tree.
      	(cgraph_optimize): Materialize clones.
      	(cgraph_function_versioning): Update for VECtors.
      	(save_inline_function_body): Use clone tree.
      	(cgraph_materialize_clone, cgraph_materialize_all_clones): New functions.
      	* ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
      	* ipa.c: Include gimple.h.
      	(cgraph_remove_unreachable_nodes): Use clone tree.
      	* ipa-prop.c (ipa_note_param_call): Update call of compute_call_stmt_bb_frequency.
      	* ipa-prop.h (ipa_replace_map): Move to cgraph.h.
      	* tree-inline.c: Do not include varray.h; do not include gt-tree-inline.h
      	(copy_bb): Handle updating of clone tree; add new edge when new call
      	appears.
      	(expand_call_inline): Be strict about every call having edge.
      	(clone_fn_id_num, clone_function_name): Move to cgraph.c.
      	(delete_unreachable_blocks_update_callgraph): New function.
      	(tree_function_versioning): Use VECtors; always remove unreachable blocks
      	and fold conditionals.
      	* tree-inline.h: Do not include varray.h
      	(tree_function_versioning): Remove.
      	* Makefile.in (GTFILES): Remove tree-inline.c
      	* passes.c (do_per_function): Do only functions having body.
      	* ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle cone tree.
      
      From-SVN: r147294
      Jan Hubicka committed
    • re PR c/36892 (Support __attribute__((deprecated("text string")))) · 9b86d6bb
      gcc/
      
      2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
      	    Andrew Morrow  <acm@google.com>
      
      	PR c/36892
      	* c-common.c (c_common_attribute_table): Permit deprecated
      	attribute to take an optional argument.
      	(handle_deprecated_attribute): If the optional argument to
      	__attribute__((deprecated)) is not a string ignore the attribute
      	and emit a warning.
      
      	* c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
      	* c-typeck.c (build_component_ref): Likewise.
      	(build_external_ref): Likewise.
      
      	* toplev.c (warn_deprecated_use): Add an attribute argument.
      	Emit the message associated with __attribute__((deprecated)).
      
      	* toplev.h (warn_deprecated_use): Updated.
      
      	* doc/extend.texi: Document new optional parameter to
      	__attribute__((deprecated))
      
      gcc/cp/
      
      2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR c/36892
      	* call.c (build_call_a): Updated warn_deprecated_use call.
      	(build_over_call): Likewise.
      	* decl.c (grokdeclarator): Likewise.
      	(grokparms): Likewise.
      	* semantics.c (finish_id_expression): Likewise.
      	* typeck.c (build_class_member_access_expr): Likewise.
      	(finish_class_member_access_expr): Likewise.
      
      gcc/testsuite/
      
      2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR c/36892
      	* g++.dg/warn/deprecated-6.C: New.
      	* gcc.dg/deprecated-4.c: Likewise.
      	* gcc.dg/deprecated-5.c: Likewise.
      	* gcc.dg/deprecated-6.c: Likewise.
      
      From-SVN: r147293
      H.J. Lu committed
    • Fix bug in movdf_softfloat32. · 82ad047f
      From-SVN: r147290
      Michael Eager committed
    • no-vfa-vect-37.c: Replace __aligned__(16) with __aligned__(__BIGGEST_ALIGNMENT__). · 03f1063f
      2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* gcc.dg/vect/no-vfa-vect-37.c: Replace __aligned__(16) with
      	__aligned__(__BIGGEST_ALIGNMENT__).
      	* gcc.dg/vect/no-vfa-vect-43.c: Likewise.
      	* gcc.dg/vect/no-vfa-vect-49.c: Likewise.
      	* gcc.dg/vect/no-vfa-vect-53.c: Likewise.
      	* gcc.dg/vect/no-vfa-vect-57.c: Likewise.
      	* gcc.dg/vect/no-vfa-vect-61.c: Likewise.
      	* gcc.dg/vect/no-vfa-vect-79.c: Likewise.
      	* gcc.dg/vect/Os-vect-95.c: Likewise.
      	* gcc.dg/vect/pr20122.c: Likewise.
      	* gcc.dg/vect/pr36493.c: Likewise.
      	* gcc.dg/vect/pr37385.c: Likewise.
      	* gcc.dg/vect/slp-7.c: Likewise.
      	* gcc.dg/vect/slp-9.c: Likewise.
      	* gcc.dg/vect/slp-widen-mult-s16.c: Likewise.
      	* gcc.dg/vect/slp-widen-mult-u8.c: Likewise.
      	* gcc.dg/vect/vect-35.c: Likewise.
      	* gcc.dg/vect/vect-40.c: Likewise.
      	* gcc.dg/vect/vect-42.c: Likewise.
      	* gcc.dg/vect/vect-44.c: Likewise.
      	* gcc.dg/vect/vect-46.c: Likewise.
      	* gcc.dg/vect/vect-48.c: Likewise.
      	* gcc.dg/vect/vect-52.c: Likewise.
      	* gcc.dg/vect/vect-54.c: Likewise.
      	* gcc.dg/vect/vect-56.c: Likewise.
      	* gcc.dg/vect/vect-58.c: Likewise.
      	* gcc.dg/vect/vect-60.c: Likewise.
      	* gcc.dg/vect/vect-74.c: Likewise.
      	* gcc.dg/vect/vect-75.c: Likewise.
      	* gcc.dg/vect/vect-76.c: Likewise.
      	* gcc.dg/vect/vect-77-alignchecks.c: Likewise.
      	* gcc.dg/vect/vect-77.c: Likewise.
      	* gcc.dg/vect/vect-77-global.c: Likewise.
      	* gcc.dg/vect/vect-78-alignchecks.c: Likewise.
      	* gcc.dg/vect/vect-78.c: Likewise.
      	* gcc.dg/vect/vect-78-global.c: Likewise.
      	* gcc.dg/vect/vect-80.c: Likewise.
      	* gcc.dg/vect/vect-85.c: Likewise.
      	* gcc.dg/vect/vect-87.c: Likewise.
      	* gcc.dg/vect/vect-88.c: Likewise.
      	* gcc.dg/vect/vect-92.c: Likewise.
      	* gcc.dg/vect/vect-93.c: Likewise.
      	* gcc.dg/vect/vect-95.c: Likewise.
      	* gcc.dg/vect/vect-97.c: Likewise.
      	* gcc.dg/vect/vect-complex-1.c: Likewise.
      	* gcc.dg/vect/vect-complex-4.c: Likewise.
      	* gcc.dg/vect/vect-complex-5.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-10.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-11.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-12.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-13.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-14.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-15.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-16.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-17.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-3.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-6.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-7.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-8.c: Likewise.
      	* gcc.dg/vect/vect-multitypes-9.c: Likewise.
      	* gcc.dg/vect/vect-outer-1a.c: Likewise.
      	* gcc.dg/vect/vect-outer-1.c: Likewise.
      	* gcc.dg/vect/vect-outer-2a.c: Likewise.
      	* gcc.dg/vect/vect-outer-2b.c: Likewise.
      	* gcc.dg/vect/vect-outer-2.c: Likewise.
      	* gcc.dg/vect/vect-outer-2c.c: Likewise.
      	* gcc.dg/vect/vect-outer-2d.c: Likewise.
      	* gcc.dg/vect/vect-outer-3a.c: Likewise.
      	* gcc.dg/vect/vect-outer-3b.c: Likewise.
      	* gcc.dg/vect/vect-outer-3.c: Likewise.
      	* gcc.dg/vect/vect-outer-3c.c: Likewise.
      	* gcc.dg/vect/vect-outer-5.c: Likewise.
      	* gcc.dg/vect/vect-outer-6.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-s16a.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-s16b.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-s8a.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-s8b.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-s8c.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-u16a.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-u16b.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-u8a.c: Likewise.
      	* gcc.dg/vect/vect-reduc-dot-u8b.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-s16.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-s8.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-u16.c: Likewise.
      	* gcc.dg/vect/vect-widen-mult-u8.c: Likewise.
      	* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Likewise.
      
      From-SVN: r147286
      H.J. Lu committed
    • re PR tree-optimization/40062 (high memory usage and compile time in SCEV cprop with -O3) · 788d3075
      2009-05-08  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/40062
      	* tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
      	Avoid exponential behavior.
      
      From-SVN: r147283
      Richard Guenther committed
    • re PR rtl-optimization/33928 (30% performance slowdown in floating-point code caused by r118475) · 00952e97
      2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR rtl-optimization/33928
      	PR 26854
      	* fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
      	process_uses, build_single_def_use_links): New.
      	(update_df): Update use_def_ref.
      	(forward_propagate_into): Use get_def_for_use instead of use-def
      	chains.
      	(fwprop_init): Call build_single_def_use_links and let it initialize
      	dataflow.
      	(fwprop_done): Free use_def_ref.
      	(fwprop_addr): Eliminate duplicate call to df_set_flags.
      	* df-problems.c (df_rd_simulate_artificial_defs_at_top, 
      	df_rd_simulate_one_insn): New.
      	(df_rd_bb_local_compute_process_def): Update head comment.
      	(df_chain_create_bb): Use the new RD simulation functions.
      	* df.h (df_rd_simulate_artificial_defs_at_top, 
      	df_rd_simulate_one_insn): New.
      	* opts.c (decode_options): Enable fwprop at -O1.
      	* doc/invoke.texi (-fforward-propagate): Document this.
      
      From-SVN: r147282
      Paolo Bonzini committed