Commit Graph

93429 Commits

Author SHA1 Message Date
Jan Hubicka
078c364462 tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
* 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
2009-05-10 15:20:27 +00:00
Jan Hubicka
ea5783ee95 Fix changelog entry.
From-SVN: r147343
2009-05-10 15:13:23 +00:00
Jan Hubicka
39ff5a9676 cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
* 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
2009-05-10 15:11:01 +00:00
Joseph Myers
9a0c618755 c-lex.c (c_lex_with_flags): Expect cpp_hashnode in tok->val.node.node.
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
2009-05-10 15:27:32 +01:00
Eric Botcazou
fb0be16980 Fix formatting
From-SVN: r147338
2009-05-10 12:09:47 +00:00
Jan Hubicka
4b685e144d re PR middle-end/40084 (Revision 147294 failed 483.xalancbmk in SPEC CPU 2006 at -O3)
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
2009-05-10 11:36:11 +00:00
Joseph Myers
51e61d333a * gcc.pot: Regenerate.
From-SVN: r147335
2009-05-10 11:36:44 +01:00
Joseph Myers
29d08eba74 arc.c (arc_handle_interrupt_attribute): Use %qE for identifiers in diagnostics.
* 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
2009-05-10 11:29:35 +01:00
Joseph Myers
f41c4af3d6 pretty-print.h (struct pretty_print_info): Add translate_identifiers.
* 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
2009-05-10 11:28:34 +01:00
Paul Thomas
082b1749a1 re PR fortran/40018 (ICE in output_constructor)
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
2009-05-10 10:22:37 +00:00
Paul Thomas
110ea21a35 re PR fortran/40018 (ICE in output_constructor)
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
2009-05-10 10:21:08 +00:00
Richard Guenther
896d7dbd74 re PR tree-optimization/40081 (verify_stmts failed with -O2)
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
2009-05-10 10:16:01 +00:00
Paul Thomas
eb74e79b1b re PR fortran/38863 (WHERE with multiple elemental defined assignments gives wrong answer)
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
2009-05-10 07:23:30 +00:00
David Billinghurst
a34dda5b51 re PR fortran/38956 (tests gfortran.dg/chmod_{1,2,3}.f90 fails on i686-pc-cygwin)
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
2009-05-10 01:14:50 +00:00
GCC Administrator
c7b658ebd1 Daily bump.
From-SVN: r147325
2009-05-10 00:16:45 +00:00
Jan Hubicka
9a23acef1d re PR middle-end/40080 (error: missing callgraph edge for call stmt)
PR middle-end/40080
	* cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
	indirect calls; verify cgraph afterwards.

From-SVN: r147320
2009-05-09 20:10:37 +00:00
Jan Hubicka
d563610d81 re PR bootstrap/40082 (Power bootstrap is broken in building libstdc++)
PR bootstrap/40082
	* ipa.c (update_inlined_to_pointer): New function.
	(cgraph_remove_unreachable_nodes): Use it.

From-SVN: r147319
2009-05-09 18:31:32 +00:00
Jan Hubicka
f08a18d078 tree-eh.c (struct leh_state): Remove prev_try.
* tree-eh.c (struct leh_state): Remove prev_try.
	(lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
	not track prev_try.
	* except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
	copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
	remove_eh_handler_and_replace, foreach_reachable_handler,
	verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
	* except.h (struct eh_region): Remove eh_region_u_cleanup.
	(gen_eh_region_cleanup): Update prototype.

From-SVN: r147318
2009-05-09 15:00:25 +00:00
Jan Hubicka
0afd721984 re PR middle-end/40043 (ICE with nested try/catch)
* g++.dg/eh/nested-try.C: New test.

	PR middle-end/40043
	* except.c (copy_eh_region): Always set prev_try.
	(redirect_eh_edge_to_label): Find outer try.
	(foreach_reachable_handler): When looking for prev try
	handle case where previous try is not going to be taken.

From-SVN: r147317
2009-05-09 10:52:24 +00:00
Uros Bizjak
7925c06c0b Fix even more formatting.
From-SVN: r147315
2009-05-09 09:37:38 +02:00
Eric Botcazou
e913423f2c Fix more formatting
From-SVN: r147314
2009-05-09 06:51:31 +00:00
Eric Botcazou
20acb8a2a2 Fix formatting
From-SVN: r147313
2009-05-09 06:47:29 +00:00
GCC Administrator
7acee3505b Daily bump.
From-SVN: r147304
2009-05-09 00:16:39 +00:00
Michael Meissner
ece48253c5 Update test to use __BIGGEST_ALIGNMENT__
From-SVN: r147299
2009-05-08 23:02:35 +00:00
Michael Meissner
ad6c0864ef Fix PR 40049
From-SVN: r147298
2009-05-08 22:38:49 +00:00
Joseph Myers
c94f9067af 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
2009-05-08 21:58:26 +01:00
Jan Hubicka
9187e02deb 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
2009-05-08 19:19:51 +00:00
H.J. Lu
9b86d6bb25 re PR c/36892 (Support __attribute__((deprecated("text string"))))
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
2009-05-08 11:44:50 -07:00
Michael Eager
82ad047f00 Fix bug in movdf_softfloat32.
From-SVN: r147290
2009-05-08 16:18:16 +00:00
H.J. Lu
03f1063fb4 no-vfa-vect-37.c: Replace __aligned__(16) with __aligned__(__BIGGEST_ALIGNMENT__).
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
2009-05-08 06:39:01 -07:00
Richard Guenther
788d3075c5 re PR tree-optimization/40062 (high memory usage and compile time in SCEV cprop with -O3)
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
2009-05-08 12:24:22 +00:00
Paolo Bonzini
00952e9784 re PR rtl-optimization/33928 (30% performance slowdown in floating-point code caused by r118475)
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
2009-05-08 12:22:30 +00:00
Joseph Myers
2ca862e9dd re PR c/24581 (Complex arithmetic on special cases is incorrect.)
PR c/24581
	* c-typeck.c (build_binary_op): Handle arithmetic between one real
	and one complex operand specially.
	* tree-complex.c (some_nonzerop): Do not identify a real value as
	zero if flag_signed_zeros.

testsuite:
	* gcc.dg/torture/complex-sign.h: New header.
	* gcc.dg/torture/complex-sign-add.c,
	gcc.dg/torture/complex-sign-mixed-add.c,
	gcc.dg/torture/complex-sign-mixed-div.c,
	gcc.dg/torture/complex-sign-mixed-mul.c,
	gcc.dg/torture/complex-sign-mixed-sub.c,
	gcc.dg/torture/complex-sign-mul.c,
	gcc.dg/torture/complex-sign-sub.c: New tests.

From-SVN: r147281
2009-05-08 11:22:08 +01:00
Janus Weil
cb8e4445ef re PR fortran/39876 (module procedure name that collides with the GNU intrinsic)
2009-05-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/39876
	* intrinsic.c (gfc_is_intrinsic): Do not add the EXTERNAL attribute if
	the symbol is a module procedure.


2009-05-08  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/39876
	* gfortran.dg/intrinsic_3.f90: New.

From-SVN: r147279
2009-05-08 11:08:13 +02:00
Paolo Bonzini
3e807ffc9d re PR rtl-optimization/33928 (30% performance slowdown in floating-point code caused by r118475)
2009-05-08  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/33928
        * loop-invariant.c (record_use): Fix && vs. || mishap.

From-SVN: r147274
2009-05-08 07:51:46 +00:00
Paolo Bonzini
1bfdbb2922 re PR rtl-optimization/33928 (30% performance slowdown in floating-point code caused by r118475)
2009-05-08  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/33928
        * loop-invariant.c (struct use): Add addr_use_p.
        (struct def): Add n_addr_uses.
        (struct invariant): Add cheap_address.
        (create_new_invariant): Set cheap_address.
        (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
        (record_uses): Pass df_ref to record_use.
        (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses used
	only as such.

From-SVN: r147270
2009-05-08 06:51:12 +00:00
Tobias Burnus
7e79080ad4 invoke.texi: Add do/recursion to the -fcheck= summary.
2009-05-08  Tobias Burnus  <burnus@net-b.de>

       * invoke.texi: Add do/recursion to the -fcheck= summary.

From-SVN: r147268
2009-05-08 08:21:15 +02:00
Kaz Kojima
702cb2a044 sh.c: Do not include c-pragma.h.
* config/sh/sh.c: Do not include c-pragma.h.

From-SVN: r147267
2009-05-08 03:39:09 +00:00
Andrew Pinski
5e8df75396 spu.c: Remove include of c-common.h.
2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * config/spu/spu.c: Remove include of c-common.h.

From-SVN: r147266
2009-05-07 18:01:34 -07:00
Paolo Carlini
29e357fd7c throw_allocator.h: Remove redundante include.
2009-05-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/ext/throw_allocator.h: Remove redundante include.

From-SVN: r147265
2009-05-08 00:49:35 +00:00
Paolo Carlini
9fcf9c24a1 throw_allocator.h (throw_allocator_base): Avoid out of line member functions definitions.
2009-05-07  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/ext/throw_allocator.h (throw_allocator_base): Avoid
	out of line member functions definitions.
	(throw_allocator_base::_S_g, _S_map, _S_throw_prob, _S_label):
	Remove, use static locals instead.
	(throw_allocator_base::do_check_allocated, print_to_string): Declare.
	* src/throw_allocator.cc: New.
	* src/Makefile.am: Add.
	* config/abi/pre/gnu.ver: Add exports.
	* src/Makefile.in: Regenerate.

From-SVN: r147264
2009-05-08 00:39:28 +00:00
GCC Administrator
c704f737f0 Daily bump.
From-SVN: r147263
2009-05-08 00:16:37 +00:00
Janis Johnson
6ec637a4b8 re PR c/39037 (FLOAT_CONST_DECIMAL64 pragma not supported)
gcc/
	PR c/39037
	* c-common.h (mark_valid_location_for_stdc_pragma,
	valid_location_for_stdc_pragma_p, set_float_const_decimal64,
	clear_float_const_decimal64, float_const_decimal64_p): New.
	* c.opt (Wunsuffixed-float-constants): New.
	* c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
	unsuffixed float constant, handle new warning.
	* c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
	* c-decl.c (c_scope): New flag float_const_decimal64.
	(set_float_const_decimal64, clear_float_const_decimal64,
	float_const_decimal64_p): New.
	(push_scope): Set new flag.
	* c-parser.c (c_parser_translation_unit): Mark when it's valid
	to use STDC pragmas.
	(c_parser_external_declaration): Ditto.
	(c_parser_compound_statement_nostart): Ditto.
	* c-pragma.c (valid_location_for_stdc_pragma,
	mark_valid_location_for_stdc_pragma,
	valid_location_for_stdc_pragma_p, handle_stdc_pragma,
	handle_pragma_float_const_decimal64): New.
	(init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
	* cp/semantics.c (valid_location_for_stdc_pragma_p,
	set_float_const_decimal64, clear_float_const_decimal64,
	float_const_decimal64_p): New dummy functions.
	* doc/extend.texi (Decimal Float): Remove statement that the
	pragma, and suffix for double constants, are not supported.
	* doc/invoke.texi (Warning Options): List new option.
	(-Wunsuffixed-float-constants): New.

gcc/testsuite
	PR c/39037
	* gcc.dg/Wunsuffixed-float-constants-1.c: New test.
	* gcc.dg/cpp/pragma-float-const-decimal64-1.c: New test.
	* gcc.dg/dfp/float-constant-double.c: New test.
	* gcc.dg/dfp/pragma-float-const-decimal64-1.c: New test.
	* gcc.dg/dfp/pragma-float-const-decimal64-2.c: New test.
	* gcc.dg/dfp/pragma-float-const-decimal64-3.c: New test.
	* gcc.dg/dfp/pragma-float-const-decimal64-4.c: New test.
	* gcc.dg/dfp/pragma-float-const-decimal64-5.c: New test.
	* gcc.dg/dfp/pragma-float-const-decimal64-6.c: New test.
	* gcc.dg/dfp/pragma-float-const-decimal64-7.c: New test.
	* gcc.dg/dfp/pragma-float-const-decimal64-8.c: New test.
	* g++.dg/cpp/pragma-float-const-decimal64-1.C: New test.

From-SVN: r147259
2009-05-07 22:34:08 +00:00
Francois-Xavier Coudert
2995ed9a27 re PR fortran/38830 (Document lack of "Variable Format Expression" support)
PR fortran/38830
	* gfortran.texi: Document that we don't support variable FORMAT
	expressions.

From-SVN: r147258
2009-05-07 22:14:23 +00:00
Francois-Xavier Coudert
13c7a7e5d6 re PR fortran/39576 (gcc/fortran/error.c's error.c missing "break")
PR fortran/39576
	* error.c (error_print): Add missing break statement.

From-SVN: r147257
2009-05-07 22:01:34 +00:00
Francois-Xavier Coudert
6e8cb9bef0 re PR fortran/36382 (Support $ as first character in symbol names and in IMPLICT)
PR fortran/36382
	* invoke.texi: Document that -fdollar-ok does not allow $ to be
	used in IMPLICIT statement.

From-SVN: r147256
2009-05-07 21:48:14 +00:00
François-Xavier Coudert
743460ea82 re PR libfortran/22423 (Warnings when building libgfortran)
PR fortran/22423

	* io/transfer.c (read_block_direct): Avoid warning.
	* runtime/string.c (compare0): Avoid warning.

From-SVN: r147254
2009-05-07 21:42:22 +00:00
Steven Bosscher
45b9b2e927 * config/i386/i386.c: Do not include c-common.h.
From-SVN: r147250
2009-05-07 20:47:24 +00:00
Mark Heffernan
e71da632ea invoke.texi (Debugging Options): Document change of debugging dump location.
2009-05-07  Mark Heffernan  <meheff@google.com>

	* doc/invoke.texi (Debugging Options): Document change of debugging
	dump location.
        * opts.c (decode_options): Make dump_base_name relative to
	aux_base_name directory.

From-SVN: r147249
2009-05-07 19:58:10 +00:00
Hariharan Sandanagobalane
fe4c7bc6ac picochip.h (NO_DOLLAR_IN_LABEL): Added.
* config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
* config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.

From-SVN: r147248
2009-05-07 17:52:30 +00:00