Commit Graph

73078 Commits

Author SHA1 Message Date
Diego Novillo
953ff28998 [multiple changes]
2006-01-18  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
            Diego Novillo  <dnovillo@redhat.com>

	* libgomp: New directory.
	* Makefile.def: Add target_module libgomp.
	* Makefile.in: Regenerate.
	* configure.in (target_libraries): Add target-libgomp.
	* configure: Regenerate.


contrib/

2006-01-18  Richard Henderson  <rth@redhat.com>
            Diego Novillo  <dnovillo@redhat.com>

	* gcc_update (files_and_dependencies): Add libgomp files.


gcc/

2006-01-18  Richard Henderson  <rth@redhat.com>
            Aldy Hernandez  <aldyh@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
            Diego Novillo  <dnovillo@redhat.com>

	* omp-low.c: New file.
	* c-omp.c: New file.

2006-01-18  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
            Diego Novillo  <dnovillo@redhat.com>

	* doc/invoke.texi: Document -fopenmp.
	* tree-dump.h (debug_function): Declare.

	* hooks.c (hook_bool_tree_bool_false): New function.
	(hook_tree_tree_null): Remove.
	(hook_tree_tree_tree_null): New.
	* hooks.h: Update to match.

	* tree-pretty-print.c (debug_tree_chain): New.
	(print_generic_expr): Handle TDF_CHAIN.
	(dump_generic_node): Handle BLOCK.
	Do not abort with incomplete SWITCH_EXPRs.
	Do not dump body of an OpenMP directive if TDF_SLIM is given.
	<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
	print space after directive name.
	<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
	Handle OMP_MASTER and OMP_ORDERED.
	Handle printing of OMP_BODY just in one place, goto
	dump_omp_body in the rest of OMP_* nodes that have
	OMP_BODY.
	Don't handle clause nodes here.  Update omp statements to
	use dump_omp_clauses.
	Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
	OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
	OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
	GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
	GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
	GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
	Adjust output for GOMP_PARALLEL.
	(dump_omp_clauses): New.
	(print_declaration): Dump DECL_VALUE_EXPR.
	(op_symbol_1): Split out of op_symbol.
	(dumping_stmts): Remove.  Update all users.

	* cgraph.c (cgraph_analyze_queue): New.
	(cgraph_add_new_function): New.
	* cgraph.h (cgraph_analyze_queue): Declare.
	(cgraph_add_new_function): Declare.
	(cgraph_lower_function): Remove.

	* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
	nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
	and TYPE_P nodes in its default clause.
	(empty_body_p): New.
	(tree_range_check_failed): New.
	(build5_stat): New.

	* tree.h (OMP_CLAUSE_REDUCTION_INIT,
	OMP_CLAUSE_REDUCTION_MERGE,
	OMP_CLAUSE_REDUCTION_PLACEHOLDER,
	OMP_CLAUSE_PRIVATE_DEBUG,
	OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
	OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
	OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
	OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
	OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
	OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
	OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
	OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
	OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
	OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
	OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
	OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
	OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
	OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
	(TREE_RANGE_CHECK): New.
	(empty_body_p): Declare.
	(enum omp_clause_default_kind): New.
	(build_string_literal): Declare.
	(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
	(build5_stat, build5): Declare.

	* tree-pass.h (TDF_CHAIN): Define.
	* tree-pass.h (PROP_gimple_lomp): Define.
	(pass_lower_omp): Declare.

	* diagnostic.h (debug_tree_chain): Declare.

	* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
	mode_for_size.
	(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
	* builtins.c (build_string_literal): Make extern.

	* gcc.c (include_spec_function): New.
	(static_spec_functions): Add it.
	(main): Move load of libgomp.spec ...
	(LINK_COMMAND_SPEC): ... here.
	(link_gomp_spec): New.
	(static_specs): Include it.
	(LINK_COMMAND_SPEC): Add link_gomp.
	(GOMP_SELF_SPECS): New.
	(driver_self_specs): Include it.
	(switch_matches): Don't mark inline.
	(main): Load libgomp.spec.

	* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
	OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
	and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.

	* tree-gimple.h (enum omp_parallel): Declare.
	(determine_parallel_type): Declare.
	(omp_firstprivatize_variable): Declare.
	(omp_reduction_init): Declare.
	(diagnose_omp_structured_block_errors): Declare.
	(struct walk_stmt_info): Add want_return_expr.
	(struct walk_stmt_info): Add want_bind_expr, want_locations.
	(find_omp_clause): Declare.
	(insert_field_into_struct): Declare.
	(struct walk_stmt_info): Move from tree-nested.c
	(walk_stmts): Declare.

	* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
	to 200505.

	* cgraphunit.c (cgraph_lower_function): Make static.
	(cgraph_finalize_pending_functions): New.
	(cgraph_finalize_function): Call it.
	(cgraph_finalize_compilation_unit): Likewise.

	* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
	BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
	(BT_FN_UINT_UINT): New.
	(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
	DEF_FUNCTION_TYPE_VAR_4): Document.
	(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
	BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
	BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
	BT_FN_VOID_OMPFN_PTR_UINT_UINT,
	BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
	BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.

	* builtins.def: Update DEF_BUILTIN comment to include COND argument.
	Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
	into separate files.
	(DEF_GOMP_BUILTIN): New.
	(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
	BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
	BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
	BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
	BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
	BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
	BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
	BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
	BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
	BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
	BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
	BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
	BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
	BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
	BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
	BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
	* sync-builtins.def: New file, moved from builtins.def.
	* omp-builtins.def: New file, moved from builtins.def.

	* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.

	* gimple-low.c (lower_function_body): Clear data.
	(lower_stmt): Do not handle COMPOUND_EXPR.
	Remove call to print_node_brief.

	* c-tree.h (c_finish_omp_clauses): New prototype.
	(C_DECL_THREADPRIVATE_P): Define.
	(lookup_name_no_remap, c_omp_remap_private): Remove
	(c_begin_omp_parallel, c_finish_omp_parallel): Update.
	(check_for_loop_decls): Update decl.
	(lookup_name_no_remap, c_omp_remap_private): Declare.
	(build_indirect_ref, build_modify_expr, pushdecl,
	pushdecl_top_level): Move to c-common.h.

	* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
	before the switch, but just in the 2 places that need it.

	* c-decl.c (diagnose_mismatched_decls): Do not check for
	mismatched thread-local attributes when OLDDECL is marked
	threadprivate and NEWDECL has no thread-local attributes.
	(merge_decls): Merge C_DECL_THREADPRIVATE_P.
	(c_gimple_diagnostics_recursively): Rename from
	c_warn_unused_result_recursively.  Invoke
	diagnose_omp_structured_block_errors.
	(check_for_loop_decls): Return a singular decl found.

	* langhooks.c (lhd_omp_predetermined_sharing): Return
	OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
	(lhd_omp_firstprivatize_type_sizes): New.
	(lhd_omp_assignment): New.
	(lhd_omp_predetermined_sharing): New.

	* langhooks.h (struct gimplify_omp_ctx): Forward declare.
	(struct lang_hooks_for_types): Add
	omp_firstprivatize_type_sizes, omp_privatize_by_reference,
	omp_predetermined_sharing, omp_disregard_value_expr,
	omp_private_debug_clause, omp_clause_default_ctor,
	omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.

	(c_finish_omp_clauses): New.
	(c_finish_bc_stmt): Diagnose break within omp for.
	(c_begin_omp_parallel, c_finish_omp_parallel): New.
	(build_unary_op): Return error_mark after reporting
	a readonly_error.
	(build_modify_expr): Likewise.

	* gimplify.c: Include optabs.h and pointer-set.h.
	(enum gimplify_omp_var_data): Declare.
	(struct gimplify_omp_ctx): Declare.
	(struct gimplify_ctx): Add fields prev_context, combined_pre_p
	and combined_ctxp.
	(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
	(push_gimplify_context, pop_gimplify_context): Allow nesting.
	(splay_tree_compare_decl_uid): New.
	(new_omp_context): New.
	(delete_omp_context): New.
	(gimple_add_tmp_var): Call omp_add_variable.
	(gimplify_bind_expr): Likewise.
	(gimplify_var_or_parm_decl): If omp_notice_variable returned
	true, disregard DECL_VALUE_EXPR on the decl if any.
	(gimplify_expr_in_ctx): New.
	(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
	omp_add_variable, omp_notice_variable, omp_is_private
	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
	gimplify_adjust_omp_clauses, gimplify_omp_parallel
	gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
	gimplify_omp_atomic_fetch_op, goa_stabilize_expr
	gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
	gimplify_omp_atomic): New.
	(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
	OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
	OMP_CRITICAL and OMP_ATOMIC.
	(gimplify_body): Verify gimplify_ctxp is empty after gimplification.

	* c-pragma.h (enum pragma_kind): Add
	PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
	PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
	PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
	PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
	PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
	PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
	PRAGMA_OMP_THREADPRIVATE.

	* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
	OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
	OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
	OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
	OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
	OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
	OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
	OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
	OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.

	* print-tree.c (print_node): Dump DECL_VALUE_EXPR.

	* tree-ssa-dce.c (find_control_dependence): Do not assume that
	ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).

	* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
	OpenMP directives.
	(struct nesting_info): Add field_map,
	suppress_expansion, debug_var_chain.
	(create_nesting_tree): Initialize them.
	(lookup_field_for_decl): Use field_map.
	(get_nonlocal_debug_decl, get_local_debug_decl): New.
	(convert_local_omp_clauses): New.
	(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
	(walk_body): Split out of walk_function.
	(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
	(convert_nonlocal_reference): Handle omp statements.
	(convert_local_reference): Likewise.
	(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
	(unnest_nesting_tree): New.
	(lower_nested_functions): Call it.
	(insert_field_into_struct): Make extern.
	(struct walk_stmt_info): Move to tree-gimple.h.
	(walk_stmts): Make extern.

	* omp-builtins.def: New file.

	* tree-iterator.c (expr_only): Clarify comment.

	* c-common.h (pushdecl_top_level, pushdecl,
	build_modify_expr, build_indirect_ref,
	c_finish_omp_master, c_finish_omp_critical,
	c_finish_omp_ordered, c_finish_omp_barrier,
	c_finish_omp_atomic, c_finish_omp_flush,
	c_finish_omp_for, c_split_parallel_clauses,
	omp_clause_default_kind, c_omp_sharing_predetermined,
	c_omp_remap_decl): Declare.

	* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
	(OBJS-common): Add omp-low.o.
	(c-omp.o, omp-low.o): Add.
	(gimplify.o): Add dependency on $(OPTABS_H).
	(GTFILES): Add omp-low.c.
	(gt-stringpool.h): Add.

	* tree-cfg.c (set_bb_for_stmt): Do not update the
	block-to-labels map if we are currently expanding to RTL.
	(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
	checks.
	Handle IDENTIFIER_NODE.
	(tree_verify_flow_info): Do not ICE when emitting error
	messages about invalid labels.
	(dump_function_to_file): Reset CFUN before emitting the body
	of the function.
	(debug_function): New.

	* passes.c (init_optimization_passes): Schedule
	pass_lower_omp.

	* langhooks-def.h (lhd_omp_predetermined_sharing,
	lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
	Declare.
	(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
	(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
	LANG_HOOKS_OMP_PREDETERMINED_SHARING,
	LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
	LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
	LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
	LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
	LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
	LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
	(LANG_HOOK_DECLS): Use them.


2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
	    Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
            Diego Novillo  <dnovillo@redhat.com>

	* c-parser.c (pragma_omp_clause): Define.
	(c_parser_declaration_or_fndef): Document OpenMP syntax.
	(c_parser_compound_statement): Likewise.
	(c_parser_statement): Likewise.
	(c_parser_pragma): Handle omp pragmas.
	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
	OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
	(c_parser_omp_clause_name, check_no_duplicate_clause,
	c_parser_omp_variable_list,
	c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
	c_parser_omp_clause_copyprivate,
	c_parser_omp_clause_default,
	c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
	c_parser_omp_clause_lastprivate,
	c_parser_omp_clause_nowait,
	c_parser_omp_clause_num_threads,
	c_parser_omp_clause_ordered, c_parser_omp_clause_private,
	c_parser_omp_clause_reduction,
	c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
	c_parser_omp_all_clauses, c_parser_omp_structured_block,
	c_parser_omp_atomic, c_parser_omp_barrier,
	c_parser_omp_critical, c_parser_omp_flush,
	c_parser_omp_for_loop, c_parser_omp_for,
	c_parser_omp_master, c_parser_omp_ordered,
	c_parser_omp_sections_scope, c_parser_omp_sections,
	c_parser_omp_parallel, c_parser_omp_single,
	c_parser_omp_construct, c_parser_omp_threadprivate): New.
	* c-pragma.c (init_pragma): Do omp pragma registration here.
	* c.opt (fopenmp): New flag.


2006-01-18  Eric Christopher  <echristo@apple.com>

	* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
	* config/darwin.h (GOMP_SELF_SPECS): Define.


testsuite/

2006-01-18  Richard Henderson  <rth@redhat.com>
            Aldy Hernandez  <aldyh@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
            Diego Novillo  <dnovillo@redhat.com>
            Uros Bizjak  <uros@kss-loka.si>

	* testsuite/gcc.dg/gomp: New directory.

From-SVN: r109902
2006-01-18 14:21:25 -05:00
Paul Thomas
1902704eb7 re PR fortran/20869 (EXTERNAL and INTRINSIC cannot be used together)
2006-01-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/20869
	PR fortran/20875
	PR fortran/25024
	* symbol.c (check_conflict): Add pointer valued elemental
	functions and internal procedures with the external attribute
	to the list of conflicts.
	(gfc_add_attribute): New catch-all function to perform the
	checking of symbol attributes for attribute declaration
	statements.
	* decl.c (attr_decl1): Call gfc_add_attribute for each of -
	(gfc_match_external, gfc_match_intent, gfc_match_intrinsic,
	gfc_match_pointer, gfc_match_dimension, gfc_match_target):
	Remove spurious calls to checks in symbol.c.  Set the
	attribute directly and use the call to attr_decl() for
	checking.
	* gfortran.h:  Add prototype for gfc_add_attribute.

	PR fortran/25785
	* resolve.c (resolve_function): Exclude PRESENT from assumed size
	argument checking. Replace strcmp's with comparisons with generic
	codes.

2006-01-18  Paul Thomas  <pault@gcc.gnu.org>
	    Steven G. Kargl  <kargls@comcast.net>

	PR fortran/20869
	* gfortran.dg/intrinsic_external_1.f90: New test.

	PR fortran/20875.
	* gfortran.dg/elemental_pointer_1.f90: New test.

	PR fortran/25024
	* gfortran.dg/external_procedures_1.f90: New test.

	PR fortran/25785
	gfortran.dg/assumed_present.f90: New test.

Co-Authored-By: Steven G. Kargl <kargls@comcast.net>

From-SVN: r109899
2006-01-18 18:55:01 +00:00
Kazu Hirata
94a89f3bbc * rtl.h: Remove the prototype for reg_alloc.
From-SVN: r109898
2006-01-18 17:41:04 +00:00
Paul Brook
ddfd0d910b eh_personality.cc (PERSONALITY_FUNCTION): Use std::abort.
2006-01-18  Paul Brook  <paul@codesourcery.com>

	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Use std::abort.

From-SVN: r109896
2006-01-18 16:31:00 +00:00
John David Anglin
4720d5ca9c re PR target/25731 (Complex values passed in wrong registers)
PR target/25731
	* config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
	hppa[12]*-*-hpux11*): Override default shared libgcc version for both
	sjlj and dwarf2 exception handling.
	* pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
	Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
	* pa/pa.c (function_value): Treat complex and vector types as
	aggregates.
	(function_arg): Likewise.  Only pass scalar floats in the floating
	point argument registers.
	* pa/t-slibgcc-dwarf-ver: New file.
	* pa/t-slibgcc-sjlj-ver: New file.
	* pa/t-slibgcc-elf-ver: Delete file.

From-SVN: r109894
2006-01-18 15:44:57 +00:00
Alan Modra
4325ca904b rs6000.c (rs6000_assemble_integer): Correct unlikely_test_section_p test.
* config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
	unlikely_test_section_p test.

From-SVN: r109893
2006-01-19 01:46:10 +10:30
Kazu Hirata
2718724692 tree.c (find_tree_t, find_tree): Remove.
* tree.c (find_tree_t, find_tree): Remove.
	* cp-tree.h: Remove the prototype for find_tree.

From-SVN: r109892
2006-01-18 15:09:43 +00:00
Kazu Hirata
b6438f2ed0 regrename.c (regrename_optimize, [...]): Make them static.
* regrename.c (regrename_optimize, copyprop_hardreg_forward):
	Make them static.
	* rtl.h: Remove the prototypes for regrename_optimize and
	copyprop_hardreg_forward.

From-SVN: r109891
2006-01-18 15:05:35 +00:00
Kazu Hirata
cf4d5c758a reg-stack.c (reg_to_stack): Make it static.
* reg-stack.c (reg_to_stack): Make it static.
	* rtl.h: Remove the prototype for reg_to_stack.

From-SVN: r109890
2006-01-18 15:04:37 +00:00
Kazu Hirata
6e9ca1fa55 postreload-gcse.c (gcse_after_reload_main): Make it static.
* postreload-gcse.c (gcse_after_reload_main): Make it static.
	* rtl.h: Remove the prototype for gcse_after_reload_main.

From-SVN: r109889
2006-01-18 15:03:44 +00:00
Kazu Hirata
efa2fa3436 modulo-sched.c (sms_schedule): Make it static.
* modulo-sched.c (sms_schedule): Make it static.
	* rtl.h: Remove the prototype for sms_schedule.

From-SVN: r109888
2006-01-18 15:02:11 +00:00
Kazu Hirata
7399bcb0fa mode-switching.c (optimize_mode_switching): Make it static.
* mode-switching.c (optimize_mode_switching): Make it static.
	* basic-block.h: Remove the prototype for
	optimize_mode_switching.

From-SVN: r109887
2006-01-18 15:01:18 +00:00
Paolo Carlini
75c752a07f allocator.h: Include <bits/cpp_type_traits.h>.
2006-01-18  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/allocator.h: Include <bits/cpp_type_traits.h>.

From-SVN: r109886
2006-01-18 14:30:16 +00:00
Paolo Carlini
656032b8c1 [multiple changes]
2006-01-18  Perry Smith  <pedz@easesoftware.net>

	PR libstdc++/25823
	PR libstdc++/25824
	* libsupc++/eh_alloc.cc: Fix return type of memset declaration.
	* libsupc++/eh_globals.cc: If !_GLIBCXX_HOSTED declare malloc and free.

2006-01-18  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/pb_assoc/detail/value_type_adapter/
	value_type_adapter.hpp: Include <tr1/type_traits>.
	* include/ext/pb_assoc/detail/value_type_adapter/
	it_value_type_traits.hpp (it_value_type_traits_<>::value_type_holder):
	Use tr1::aligned_storage and tr1::alignment_of.
	(it_value_type_traits_<>::buf_t): Remove.
	(it_value_type_traits_<>::make_valid, recast): Adjust.

From-SVN: r109883
2006-01-18 11:22:10 +00:00
Eric Botcazou
b2f39494f9 alpha.c (alpha_split_tfmode_pair): Rename into alpha_split_tmode_pair.
* config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
	alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
	Test against the appropriate null constant for the mode.
	If 'fixup_overlap' is true, swap the operands if they overlap.
	(alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
	* config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
	alpha_split_tmode_pair and adjust for above change.
	* config/alpha/alpha.md (movtf_internal): Adjust call to
	alpha_split_tfmode_pair and rely on it to swap the operands.
	(movti_internal): New insn and post-reload splitter.
	(movti): New expander.

From-SVN: r109882
2006-01-18 11:20:51 +00:00
Andreas Jaeger
17dcd421bb Missing part from:
2006-01-17  Andreas Jaeger  <aj@suse.de>
            Janis Johnson <janis187@us.ibm.com>

        * g++.dg/abi/mangle25.C: Run always on ia64 but only on x86/x86-64
        in 64-bit.
        * gcc.dg/torture/fp-int-convert-float128-timode.c: Likewise.
        * gcc.dg/torture/fp-int-convert-float128.c: Likewise.

From-SVN: r109881
2006-01-18 12:05:00 +01:00
Jakub Jelinek
71aa1a7029 sysv.S (smst_two_register): Don't call __ashldi3, instead do the shifting inline.
* src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
	instead do the shifting inline.
	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
	shift count unconditionally.  Simplify load sequences for 1, 2, 3, 4
	and 8 byte structs, for the remaining struct sizes don't call
	__lshrdi3, instead do the shifting inline.

From-SVN: r109879
2006-01-18 09:04:52 +01:00
Jakub Jelinek
db2acc366e search.c (lookup_conversions_r): Fix a pasto.
* search.c (lookup_conversions_r): Fix a pasto.

	* g++.dg/parse/lookup5.C: New test.

From-SVN: r109877
2006-01-18 09:01:02 +01:00
Philippe De Muyter
9d757cdeda config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory operands.
From-SVN: r109876
2006-01-18 07:25:17 +00:00
Kazu Hirata
fe3c357180 regmove.c (regmove_optimize, [...]): Make them static.
* regmove.c (regmove_optimize, combine_stack_adjustments):
	Make them static.
	* rtl.h: Remove the prototypes for regmove_optimize and
	combine_stack_adjustments.

From-SVN: r109875
2006-01-18 06:40:08 +00:00
Kazu Hirata
e8d6954b96 function.c (instantiate_virtual_regs): Make it static.
* function.c (instantiate_virtual_regs): Make it static.
	* function.h: Remove the prototype for
	instantiate_virtual_regs.

From-SVN: r109874
2006-01-18 06:39:07 +00:00
Kazu Hirata
a0dc2bb654 flow.c (initialize_uninitialized_subregs): Make it static.
* flow.c (initialize_uninitialized_subregs): Make it static.
	* rtl.h: Remove the prototype for
	initialize_uninitialized_subregs.

From-SVN: r109873
2006-01-18 06:38:09 +00:00
Jerry DeLisle
40263924c8 re PR libfortran/25697 (libfortran - Segmentation fault/ Bad Address on unformatted read)
2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/25697
	* gfortran.dg/read_eof.f90: New test.

From-SVN: r109872
2006-01-18 06:23:24 +00:00
Kazu Hirata
15ed68f73d rtlanal.c (global_reg_mentioned_p_1, [...]): Remove.
* rtlanal.c (global_reg_mentioned_p_1,
	global_reg_mentioned_p): Remove.
	* rtl.h: Remove the prototype for global_reg_mentioned_p.

From-SVN: r109871
2006-01-18 06:22:04 +00:00
Jerry DeLisle
7b7034ea9a re PR libfortran/25697 (libfortran - Segmentation fault/ Bad Address on unformatted read)
2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25697
	* io/transfer.c (us_read): Detect end of file condition from previous
	operations and bail out (no need to pre-position).

From-SVN: r109870
2006-01-18 06:21:28 +00:00
Roger Sayle
3dd0df7f13 i386.c (COSTS_N_BYTES): New macro.
* config/i386/i386.c (COSTS_N_BYTES): New macro.
	(size_cost): Encode costs in bytes so that a reg-reg addition is
	equivalent to COSTS_N_INSNS(1).
	(override_options): Use the size_cost.branch_cost as the default
	ix86_branch_cost when optimizing for size.

From-SVN: r109867
2006-01-18 02:48:17 +00:00
Eric Christopher
c637eb15a2 Update copyright from last checkin.
From-SVN: r109866
2006-01-18 02:13:02 +00:00
Andrew Pinski
c1310792a4 fp-int-convert-float128.c: Fix dg-do line, add a closing brace.
2006-01-17  Andrew Pinski  <pinskia@physics.uc.edu>

        * gcc.dg/torture/fp-int-convert-float128.c: Fix dg-do line,
        add a closing brace.

From-SVN: r109864
2006-01-17 18:01:44 -08:00
Joseph Myers
ac77f9d6d4 * zh_CN.po: Update.
From-SVN: r109862
2006-01-18 01:58:50 +00:00
Jerry DeLisle
e2d393e541 re PR libfortran/25631 (tl format specifier not working correctly)
2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/25631
	* gfortran.dg/fmt_tl.f: New test.

From-SVN: r109860
2006-01-18 01:06:08 +00:00
Jerry DeLisle
272c35bd98 re PR libfortran/25631 (tl format specifier not working correctly)
2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25631
	* io/transfer.c (formatted_transfer_scalar): Adjust pending_spaces and
	skips so that TL works correctly when no bytes_used yet.

From-SVN: r109858
2006-01-18 00:52:21 +00:00
Ben Elliston
d190d56b7e Makefile.in (D32PBIT_FUNCS): New.
* Makefile.in (D32PBIT_FUNCS): New.
	(D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
	(libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
	D64PBIT_FUNCS and D128PBIT_FUNCS.
	(LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
	* mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
	D128PBIT are set.
	(decnumber_dep): Define.
	* doc/libgcc.texi (Decimal float library routines): New node.
	* config/dfp-bit.h, config/dfp-bit.c: New files.

From-SVN: r109856
2006-01-18 11:39:23 +11:00
GCC Administrator
242f8e90d0 Daily bump.
From-SVN: r109853
2006-01-18 00:18:00 +00:00
Eric Christopher
aa7349ebe2 call.c (convert_like_real): When issuing conversion warnings, depend on OPT_Wconversion.
2006-01-17  Eric Christopher  <echristo@apple.com>

        * call.c (convert_like_real): When issuing conversion
        warnings, depend on OPT_Wconversion.
        * cvt.c (build_expr_type_conversion): Ditto.

2006-01-17  Eric Christopher  <echristo@apple.com>

        * g++.old-deja/g++.warn/impint.C: Add -Wconversion.
        * g++.old-deja/g++.warn/impint2.C: Ditto.
        * g++.old-deja/g++.other/null1.C: Ditto.
        * g++.dg/warn/conv2.C: Ditto.
        * g++.dg/warn/conv4.C: New file.

From-SVN: r109847
2006-01-18 00:15:37 +00:00
Ben Elliston
ef7befe0d0 expr.c (emit_move_change_mode): Always adjust addresses, not just during reload.
* expr.c (emit_move_change_mode): Always adjust addresses, not
	just during reload.  Copy replacements only during reload.
	(emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
	emit_move_via_integer.

From-SVN: r109845
2006-01-18 10:43:27 +11:00
Tom Tromey
96c6b0e22a re PR classpath/20198 (java.security.CodeSource.getLocation output is different than expected)
PR classpath/20198:
	* java/net/URLClassLoader.java (FileURLLoader): Added argument.
	(JarURLLoader): Likewise.
	(addURLImpl): Canonicalize file URLs.

From-SVN: r109844
2006-01-17 23:25:12 +00:00
Andrew Pinski
a37a4460b5 mangle25.C: Fix dg-do line, add a closing brace.
2006-01-17  Andrew Pinski  <pinskia@physics.uc.edu>

        * g++.dg/abi/mangle25.C: Fix dg-do line, add a closing brace.

From-SVN: r109842
2006-01-17 14:32:01 -08:00
Shantonu Sen
88405bd3dd Makefile.in (check-%, [...]): Use $${srcdir} instead of $(srcdir) and ${srcdir}.
2006-01-17  Shantonu Sen  <ssen@opendarwin.org>

        * Makefile.in (check-%, check-consistency): Use $${srcdir}
        instead of $(srcdir) and ${srcdir}.

From-SVN: r109840
2006-01-17 12:49:17 -08:00
Richard Earnshaw
020a403534 re PR target/592 ([ARM/Thumb] Poor choice of PIC register)
PR target/592
	PR middle-end/11135
	* arm.h (struct machine_function): Add pic_reg.
	* arm.c (arm_pic_register): Make unsigned.
	(arm_override_options): Only set arm_pic_register if
	TARGET_SINGLE_PIC_BASE.
	(use_return_insn): Only test for a pic register if it is fixed.
	(arm_compute_save_reg0_reg12_mask): Likewise.
	(thumb_compute_save_reg_mask): Likewise.
	(legitimate_pic_operand): Factor out some known invariants.
	(legitimize_pic_address): If we don't have a fixed pic register,
	then set up a pseudo in the function entry sequence.  Handle the
	pic base being in a pseudo.
	(arm_load_pic_register): Handle the pic register being in a pseudo.
	(arm_expand_prologue): Only set up the pic register if it is fixed.
	(thumb_expand_prologue): Likewise.
	* arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
	(pic_load_addr_based_insn): Likewise.
	(builtin_setjmp_receiver): Don't restore the pic base if it isn't
	fixed.

From-SVN: r109839
2006-01-17 20:22:19 +00:00
Ben Elliston
a5a9792182 rs6000.c (rs6000_hard_regno_mode_ok): Reject decimal float modes for all floating point registers.
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
	decimal float modes for all floating point registers.

From-SVN: r109836
2006-01-18 06:58:35 +11:00
Ben Elliston
fc0d1c49a1 predicates.md (reg_or_mem_operand): Pair up match_code "mem" with match_test "macho_lo_sum_memory_operand".
* config/rs6000/predicates.md (reg_or_mem_operand): Pair up
	match_code "mem" with match_test "macho_lo_sum_memory_operand".

From-SVN: r109835
2006-01-18 06:57:14 +11:00
Andreas Jaeger
badb0b0734 mangle25.C: Run always on ia64 but only on
2006-01-17  Andreas Jaeger  <aj@suse.de>
            Janis Johnson <janis187@us.ibm.com>

        * g++.dg/abi/mangle25.C: Run always on ia64 but only on
        * x86/x86-64
        in 64-bit.
        * gcc.dg/torture/fp-int-convert-float128-timode.c: Likewise.
        * gcc.dg/torture/fp-int-convert-float128.c: Likewise.


Co-Authored-By: Janis Johnson <janis187@us.ibm.com>

From-SVN: r109832
2006-01-17 19:45:06 +01:00
Mark Wielaard
2127637945 Imported GNU Classpath 0.20
Imported GNU Classpath 0.20
       * Makefile.am (AM_CPPFLAGS): Add classpath/include.
       * java/nio/charset/spi/CharsetProvider.java: New override file.
       * java/security/Security.java: Likewise.
       * sources.am: Regenerated.
       * Makefile.in: Likewise.

From-SVN: r109831
2006-01-17 18:09:40 +00:00
Andrew Pinski
bcb36c3e02 struct-layout-encoding-1_generate.c (switchfiles): xfail txxx where xxx >= 25.
2006-01-17  Andrew Pinski  <pinskia@physics.uc.edu>

        * objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c (switchfiles):
        xfail txxx where xxx >= 25.

From-SVN: r109829
2006-01-17 09:30:12 -08:00
Andrew Pinski
30bdf688e0 re PR testsuite/25764 (gcc.dg/const-compare.c fails on i686-darwin)
2006-01-17  Andrew Pinski  <pinskia@physics.uc.edu>

        PR testsuite/25764
        * gcc.dg/const-compare.c: Restrict compiling to powerpc*-*-darwin*.

From-SVN: r109826
2006-01-17 09:06:40 -08:00
Kazu Hirata
dd7d8d710d name-lookup.c (lookup_namespace_name): Remove.
* name-lookup.c (lookup_namespace_name): Remove.
	* name-lookup.h: Remove the prototype for
	lookup_namespace_name.

From-SVN: r109821
2006-01-17 15:43:30 +00:00
Jakub Jelinek
84af16a69c configure.ac (dbexecdir): New substituted var.
* configure.ac (dbexecdir): New substituted var.
	* configure: Rebuilt.
	* Makefile.am (dbexecdir): Remove.
	* Makefile.in: Rebuilt.

From-SVN: r109814
2006-01-17 11:11:39 +01:00
Jakub Jelinek
3aa2ddb885 re PR c/25682 (ICE when using old sytle offsetof (with non zero start) as array size)
PR c/25682
	* c-typeck.c (build_unary_op): Fold offsetof-like expressions
	even when the pointer is not NULL.
cp/
	* decl.c (compute_array_index_type): After issuing not an integral
	constant-expression error, set size to 1 to avoid ICEs later on.
testsuite/
	* gcc.dg/pr25682.c: New test.
	* g++.dg/parse/array-size2.C: New test.

From-SVN: r109812
2006-01-17 10:57:56 +01:00
Ian Lance Taylor
474eccc603 common.opt (ftoplevel-reorder): New option.
./:	* common.opt (ftoplevel-reorder): New option.
	* cgraph.c (cgraph_asm_nodes): New global variable.
	(cgraph_asm_last_node): New static variable.
	(cgraph_order): New global variable.
	(cgraph_create_node): Set new order field.
	(cgraph_varpool_node): Likewise.
	(decide_is_variable_needed): Return true if not
	flag_toplevel_reorder.
	(cgraph_add_asm_node): New function.
	* cgraph.h (struct cgraph_node): Add order field.
	(struct cgraph_varpool_node): Add order field.
	(struct cgraph_asm_node): Define.
	(cgraph_asm_nodes, cgraph_order): Declare.
	(cgraph_add_asm_node): Declare.
	* cgraphunit.c (cgraph_varpool_assemble_decl): New static
	function.
	(cgraph_varpool_assemble_pending_decls): Call it.
	(cgraph_output_pending_asms): New static function.
	(cgraph_finalize_compilation_unit): Call it.
	(struct cgraph_order_sort): Define.
	(cgraph_output_in_order): New static function.
	(cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
	!flag_toplevel_reorder case.
	* c-parser.c: Include "cgraph.h".
	(c_parser_asm_definition): Call cgraph_add_asm_node rather than
	assemble_asm.
	* Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
	than -fno-unit-at-a-time.
	* doc/invoke.texi (Option Summary): Mention
	-fno-toplevel-reorder.
	(Optimize Options): Document -fno-toplevel-reorder.  Mention it in
	-funit-at-a-time documentation.
cp/:
	* parser.c: Include "cgraph.h".
	(cp_parser_asm_definition): Call cgraph_add_asm_node rather than
	assemble_asm.

From-SVN: r109811
2006-01-17 07:04:20 +00:00
Ian Lance Taylor
2fbdae3614 * consistency.vlad: Remove entire directory, 1652 files.
From-SVN: r109805
2006-01-17 04:36:13 +00:00