Skip to content
Snippets Groups Projects
  1. Jan 23, 2006
    • Zack Weinberg's avatar
      r110121@banpei: zack | 2006-01-22 14:39:11 -0800 · cbbbdc2c
      Zack Weinberg authored
       
               * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
               $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
               practical.  Eliminate per-generator-program link rules.
      
      From-SVN: r110117
      cbbbdc2c
  2. Jan 20, 2006
    • Paul Brook's avatar
      Makefile.in (lang_checks): Keep going if mkdir fails. · 577092ba
      Paul Brook authored
      2005-01-20  Paul Brook  <paul@codesourcery.com>
      
      	* Makefile.in (lang_checks): Keep going if mkdir fails.
      
      From-SVN: r110012
      577092ba
    • Zdenek Dvorak's avatar
      loop-iv.c: Include df.h and hashtab.h. · 03fd2215
      Zdenek Dvorak authored
      	* loop-iv.c: Include df.h and hashtab.h.
      	(enum iv_grd_result): New enum.
      	(DF_REF_IV, DF_REF_IV_SET): New macros.
      	(struct biv_entry): New.
      	(df, bivs): New global variables.
      	(struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
      	assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
      	Removed.
      	(clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
      	iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
      	analyzed_for_bivness_p, record_biv): New functions.
      	(iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
      	get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
      	iv_analyze, biv_p, iv_analysis_done): Work with df representation of
      	UD chains.
      	(iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
      	analysed.
      	(iv_number_of_iterations): Use new interface to iv analysis.
      	* loop-unroll.c: Do not include varray.h.
      	(analyze_iv_to_split_insn): Use new interface to iv
      	analysis.
      	* loop-unswitch.c (may_unswitch_on): Ditto.
      	* df.c (df_bitmaps_free): Only work for bbs for that structures are
      	allocated.
      	(df_bb_modify): Realloc tables to the new index.
      	(df_find_use): New function.
      	* df.h (df_find_use): Declare.
      	* optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
      	outmode.
      	* cfgloop.h (struct rtx_iv): Remove analysed field.
      	(iv_get_reaching_def): Removed.
      	(iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
      	* Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
      	(loop-iv.o): Add df.h and hashtab.h dependency.
      	* df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
      
      From-SVN: r110005
      03fd2215
  3. Jan 19, 2006
    • Dorit Nuzman's avatar
      Makefile.in (tree-vect-patterns.o): Add rule for new file. · 20f06221
      Dorit Nuzman authored
              * Makefile.in (tree-vect-patterns.o): Add rule for new file.
              * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
              existing STMT_VINFO_VECTYPE if available.
              (vect_mark_relevant): Add special handling for stmts that are
              marked as STMT_VINFO_IN_PATTERN_P.
              (vect_analyze_loop): Call vect_pattern_recog.
              * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
              * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
              stmt_info.
              (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
              (vect_recog_func_ptr): New function-pointer type.
              * tree-vect-patterns.c: New file.
              (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
              (vect_recog_dot_prod_pattern, vect_pattern_recog):
              (vect_pattern_recog_1): New functions.
              (vect_pattern_recog_funcs): New array of function pointers.
      
              * tree-vectorizer.h (ternary_op): New enum value.
              * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
              declaration. Revised documentation. Removed redundant dump prints.
              Removed redundant argument. Added support for reduction patterns.
              (vectorizable_reduction): Added support for reduction patterns.
              (vect_transform_stmt): Added support for patterns.
      
              * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
              * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
              * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
              (expand_widen_pattern_expr): New function.
              (init_optabs): Initialize new optabs udot_prod_optab,
              sdot_prod_optab.
              * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
              (sdot_prod_optab, udot_prod_optab): Define new optabs.
              (expand_widen_pattern_expr): New function declaration.
              * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
              tree-codes.
              * tree-inline.c (estimate_num_insns_1): Added cases for new
              tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
              * tree-pretty-print.c (dump_generic_node): Likewise.
              (op_prio): Likewise.
              (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
              * tree-ssa-operands.c (get_expr_operands): Added case for
              DOT_PROD_EXPR.
              * tree-vect-patterns.c (widened_name_p): New function.
              (vect_recog_dot_prod_pattern): Added function implementation.
              * tree-vect-transform.c (get_initial_def_for_reduction): Added
              cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
              * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
              * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
      
              * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
              * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
              * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
              (init_optabs): Initialize new optabs widen_ssum_optab,
              widen_usum_optab.
              * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
              (widen_ssum_optab, widen_usum_optab): Define new optabs.
              * tree-vect-generic.c: (expand_vector_operations_1): Check type of
              use instead of type of def.
              * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
              function implementation.
              * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
              widen_ssumv8hi): New.
      
              * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
              patterns.
      
      From-SVN: r109954
      20f06221
    • Andrew Pinski's avatar
      diagnostic.h: Include options.h. · e79b9d54
      Andrew Pinski authored
      2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
      
              * diagnostic.h: Include options.h.
              * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
              dependancies for diagnostic.h.
              * Makefile.in (DIAGNOSTIC_H): Add options.h.
      
      From-SVN: r109941
      e79b9d54
  4. Jan 18, 2006
    • Diego Novillo's avatar
      [multiple changes] · 953ff289
      Diego Novillo authored
      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
      953ff289
    • Ben Elliston's avatar
      Makefile.in (D32PBIT_FUNCS): New. · d190d56b
      Ben Elliston authored
      	* 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
      d190d56b
  5. Jan 17, 2006
    • Shantonu Sen's avatar
      Makefile.in (check-%, [...]): Use $${srcdir} instead of $(srcdir) and ${srcdir}. · 88405bd3
      Shantonu Sen authored
      2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
      
              * Makefile.in (check-%, check-consistency): Use $${srcdir}
              instead of $(srcdir) and ${srcdir}.
      
      From-SVN: r109840
      88405bd3
    • Ian Lance Taylor's avatar
      common.opt (ftoplevel-reorder): New option. · 474eccc6
      Ian Lance Taylor authored
      ./:	* 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
      474eccc6
    • Hans-Peter Nilsson's avatar
      * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h. · be694a52
      Hans-Peter Nilsson authored
      From-SVN: r109802
      be694a52
    • Kazu Hirata's avatar
      Makefile.in (FUNCTION_H): New. · 90f90283
      Kazu Hirata authored
      	* Makefile.in (FUNCTION_H): New.  Use it instead of
      	function.h throughout the file.
      	* function.h: Include tree.h.
      
      From-SVN: r109800
      90f90283
    • Richard Henderson's avatar
      backport: Makefile.in (TREE_INLINE_H): New. · 1b369fae
      Richard Henderson authored
              Merge from gomp branch:
              * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
              * tree-inline.h (struct copy_body_data): Move from tree-inline.c
              and rename from struct inline_data.  Rename callee* to dst*;
              caller* to src*; add copy_decl hook, transform_call_graph_edges,
              transform_new_cfg, transform_return_to_modify, and
              transform_lang_insert_block flags; remove cloning_p, versioning_p,
              update_clones_p.
              (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
              (copy_decl_for_dup): Remove.
              * tree-inline.c (struct inline_data): Move to header.
              (insert_decl_map): Export.
              (remap_decl): Update for member name changes.  Use copy_decl hook.
              Allow for replacement to be a non-decl.  Remove dead code.
              (remap_type_1): Check for existing mapping.
              (remap_type): Export.
              (remap_decls): Update for member name changes.
              (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
              (copy_body, setup_one_parameter, declare_return_variable): Likewise.
              (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
              (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
              (tree_function_versioning, build_duplicate_type): Likewise.
              (copy_body_r): Likewise.  Export.
              (copy_decl_for_dup): Split into ...
              (copy_decl_for_dup_finish, copy_decl_to_var,
              copy_decl_no_change, copy_decl_maybe_to_var): ... these.
              (replace_ref_tree, inlining_p): Remove.
      
      From-SVN: r109797
      1b369fae
  6. Jan 16, 2006
    • H.J. Lu's avatar
      re PR testsuite/25741 (Gcc testsuite isn't parallel build safe) · fea4cfe0
      H.J. Lu authored
      gcc/
      
      2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR testsuite/25741
      	* Makefile.in (check-%): Depend on site.exp instead of
      	$(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
      	directories.
      
      gcc/testsuite/
      
      2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR testsuite/25741
      	* lib/g++.exp (g++_init): Use $base_dir/../../ instead of
      	$base_dir/../.
      	* lib/gfortran.exp (gfortran_init): Likewise.
      	* lib/obj-c++.exp (obj-c++_init): Likewise.
      	* lib/scanasm.exp (scan-assembler-dem): Likewise.
      	(scan-assembler-dem-not): Likewise.
      	* lib/scandump.exp (scan-dump-dem): Likewise.
      	(scan-dump-dem-not): Likewise.
      
      From-SVN: r109773
      fea4cfe0
    • Gabor Loki's avatar
      rtl-factoring.c: Add sequence abstraction algorithm. · 38109dab
      Gabor Loki authored
      2006-01-16  Gabor Loki <loki@gcc.gnu.org>
      
      	* rtl-factoring.c : Add sequence abstraction algorithm.
      	* cfgcleanup.c (outgoing_edges_match): Extra checks.
      	(try_crossjump_to_edge): Avoid deleting preserve label when redirecting
      	ABNORMAL edges.
      	(block_has_preserve_label): New function.
      	* common.opt: Register new pass.
      	* Makefile.in: Ditto.
      	* passes.c: Ditto.
      	* timevar.def: Ditto.
      	* tree-pass.h: Ditto.
      	* emit-rtl.c (make_jump_insn_raw): Remove forward decl.
      	* rtl.h (make_jump_insn_raw): Add forward decl.
      	* doc/invoke.texi: Add documentation for
      																	                  -frtl-abstract-sequences.
      
      From-SVN: r109750
      38109dab
  7. Jan 14, 2006
    • Richard Guenther's avatar
      re PR tree-optimization/22548 (Aliasing can not tell array members apart) · a916f21d
      Richard Guenther authored
      2006-01-14  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/22548
      	PR tree-optimization/22555
      	PR tree-optimization/22501
      	* Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
      	* params.def (salias-max-array-elements): New parameter.
      	* params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
      	* doc/invoke.texi (salias-max-array-elements): Document.
      	* tree-flow-inline.h (var_can_have_subvars): We also handle
      	arrays now.
      	* tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
      	COMPONENT_REF.
      	* tree-ssa-structalias.c (params.h): Include.
      	(push_fields_onto_fieldstack): Handle ARRAY_TYPE.
      	(find_func_aliases): Handle multiple constraints from ARRAY_REF.
      	(get_constraint_for): For ADDR_EXPR operating on something
      	containing an ARRAY_REF, add all subvars to the solution.
      	(handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
      	* tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
      	for creating MUST_DEFs.
      	(get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
      
      	* gcc.dg/tree-ssa/alias-4.c: New testcase.
      	* gcc.dg/tree-ssa/alias-5.c: Likewise.
      	* gcc.dg/tree-ssa/alias-6.c: Likewise.
      	* gcc.dg/tree-ssa/alias-7.c: Likewise.
      	* gcc.dg/tree-ssa/alias-8.c: Likewise.
      	* gcc.dg/tree-ssa/alias-9.c: Likewise.
      	* gcc.dg/tree-ssa/alias-10.c: Likewise.
      	* gcc.dg/tree-ssa/alias-11.c: Likewise.
      	* gcc.dg/tree-ssa/alias-12.c: Likewise.
      
      From-SVN: r109703
      a916f21d
  8. Jan 11, 2006
    • Kenneth Zadeck's avatar
      2005-01-11 Kenneth Zadeck <zadeck@naturalbridge.com> · b963cc60
      Kenneth Zadeck authored
      	* Makefile.in Removed rotted odf.c entry.
      
      From-SVN: r109587
      b963cc60
    • Paolo Bonzini's avatar
      re PR tree-optimization/23109 (compiler generates wrong code leading to... · bc23502b
      Paolo Bonzini authored
      re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
      
      gcc:
      2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR tree-optimization/23109
      	PR tree-optimization/23948
      	PR tree-optimization/24123
      
      	* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
              * tree-cfg.c (single_noncomplex_succ): New.
              * tree-flow.h (single_noncomplex_succ): Declare it.
              * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
              * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
              (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
      	insert_bb, register_division_in, insert_reciprocals,
      	replace_reciprocal, free_bb): New.
              (execute_cse_reciprocals_1): Rewritten.
              (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
              Do not commit any edge insertion.  Always compute dominators and
              create the allocation pool.
              * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
      	* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
      	* targhooks.c (default_min_divistions_for_recip_mul): New.
      	* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
              * passes.c (init_optimization_passes): Run recip after tree loop
              optimizations.
              * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
      
      gcc/testsuite:
      2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
              
              PR tree-optimization/23109
              PR tree-optimization/23948
              PR tree-optimization/24123
      
              * gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
              gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
              gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
              g++.dg/tree-ssa/pr23948.C: New testcases.
              * gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
      	three divisions in order to do the optimization.
      
      From-SVN: r109578
      bc23502b
    • Daniel Berlin's avatar
      df.h (DF_SCAN, [...]): New macros. · 4d779342
      Daniel Berlin authored
      
      2005-01-11  Danny Berlin <dberlin@dberlin.org>
                  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
      	DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
      	DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
      	DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
      	DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
      	DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
      	DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
      	DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
      	DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
      	DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
      	DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
      	DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
      	DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
      	DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
      	DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
      	DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
      	DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
      	DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
      	DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
      	DF_SCAN_POST_ALLOC): New macros.
      	(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
      	df_free_bb_function, df_local_compute_function, df_init_function,
      	df_dataflow_function, df_confluence_function_0,
      	df_confluence_function_n, df_transfer_function,
      	df_finalizer_function, df_free_function, df_dump_problem_function,
      	df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
      	df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
      	df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
      	df_urec_bb_info, ) New types.
      	(df_invalidated_by_call, df_all_hard_regs, df_state) New public
      	variables.
      	(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
      	df_analyze_simple_change_some_blocks,
      	df_analyze_simple_change_one_block, df_compact_blocks,
      	df_bb_replace, df_bb_regno_last_use_find,
      	df_bb_regno_first_def_find, df_bb_regno_last_def_find,
      	df_insn_regno_def_p, df_find_def, df_find_use,
      	df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
      	df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
      	df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
      	debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
      	debug_df_chain, df_get_dependent_problem, df_chain_create,
      	df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
      	df_grow_bb_info, df_chain_dump, df_print_bb_index,
      	df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
      	df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
      	df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
      	df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
      	df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
      	df_rescan_blocks, df_ref_create, df_get_artificial_defs,
      	df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
      	df_ref_remove, df_insn_refs_delete, df_refs_delete,
      	df_reorganize_refs, df_set_state, df_hard_reg_init,
      	df_read_modify_subreg_p) New public functions.
              * df-core.c: The core dataflow solver and glue routines for rtl
      	dataflow.
      	(df_init, df_add_problem, df_set_blocks, df_finish,
      	df_hybrid_search_forward, df_hybrid_search_backward,
      	df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
      	df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
      	df_bb_regno_last_use_find, df_bb_regno_first_def_find,
      	df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
      	df_reg_defined, df_find_use, df_reg_used, df_dump,
      	df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
      	df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
      	debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
      	debug_df_useno, reset_df_after_reload): New functions.
      	* df-scan.c: The scanning fuctions, once in df.c, completely
      	rewritten so that they now fully model the functionality of
      	register usage at the backend.
      	(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
      	df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
      	df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
      	df_grow_insn_info, df_rescan_blocks, df_ref_create,
      	df_get_artificial_defs, df_get_artificial_uses,
      	df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
      	df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
      	df_refs_delete, df_reorganize_refs, df_set_state,
      	df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
      	df_def_record_1, df_defs_record, df_uses_record,
      	df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
      	df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
      	df_record_exit_block_uses, df_hard_reg_init): New functions.
      
      	* df-problems.c: Seven concrete dataflow problems that use the
      	scanning in df-scan.c and are solved by the engine in df-core.c.
      	(df_get_dependent_problem, df_chain_create, df_chain_unlink,
      	df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
      	df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
      	df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
      	df_ru_free_bb_info, df_ru_alloc,
      	df_ru_bb_local_compute_process_def,
      	df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
      	df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
      	df_ru_transfer_function, df_ru_free, df_ru_dump,
      	df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
      	df_rd_free_bb_info, df_rd_alloc,
      	df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
      	df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
      	df_rd_transfer_function, df_rd_free, df_rd_dump,
      	df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
      	df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
      	df_lr_local_compute, df_lr_init, df_lr_confluence_0,
      	df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
      	df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
      	df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
      	df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
      	df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
      	df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
      	df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
      	df_urec_mark_reg_change, df_urec_check_earlyclobber,
      	df_urec_mark_reg_use_for_earlyclobber,
      	df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
      	df_urec_local_compute, df_urec_init, df_urec_local_finalize,
      	df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
      	df_urec_dump, df_urec_add_problem, df_chain_alloc,
      	df_chain_create_bb_process_use, df_chain_create_bb,
      	df_chain_finalize, df_chain_free, df_chains_dump,
      	df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
      	df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
      	df_reg_lifetime): New functions.
      	* df.c: Deleted file.
              * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
      	consistent with new df api.
              * modulo-sched.c (sms_schedule, rest_of_handle_sms,
              rest_of_handle_sms): Ditto.
              * web.c (unionfind_union, union_defs, entry_register, web_main):
      	Ditto.
      	* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
      	invariant_expr_equal_p, find_defs, check_dependencies,
      	find_invariant_insn, find_invariants_to_move, move_invariant_reg,
      	free_inv_motion_data, move_loop_invariants): Ditto.
      	* sched-deps.c (sched_analyze_1): Ditto.
      
      
      Co-Authored-By: default avatarKenneth Zadeck <zadeck@naturalbridge.com>
      
      From-SVN: r109577
      4d779342
  9. Jan 04, 2006
    • Richard Henderson's avatar
      directives.c (struct pragma_entry): Add is_deferred. · bc4071dd
      Richard Henderson authored
      libcpp/
      	* directives.c (struct pragma_entry): Add is_deferred.  Add ident
      	entry to value union.
      	(end_directive): Don't eat the line if in_deferred_pragma.
      	(run_directive): Remove pragma hacks.
      	(insert_pragma_entry): Remove.
      	(new_pragma_entry): New.
      	(register_pragma_1): Split out of register_pragma.  Only handle
      	the lookup tree and return the new entry.
      	(cpp_register_pragma): Fill in the pragma entry here.
      	(cpp_register_deferred_pragma): New.
      	(register_pragma_internal): New.
      	(_cpp_init_internal_pragmas): Use register_pragma_internal.
      	(do_pragma): Allow pragma expansion after namespace.  For deferred
      	pragmas, don't slurp the line into a string.
      	(destringize_and_run): Save tokens for deferred pragmas.
      	(cpp_handle_deferred_pragma): Remove.
      	* macro.c (builtin_macro): Remove pragma token hack.
      	(_cpp_push_token_context): Rename from push_token_context and export.
      	* internal.h (struct lexer_state): Add pragma_allow_expansion.
      	(_cpp_push_token_context): Declare.
      	* lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
      	a token.  Update the line number correctly if so.
      	(_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
      	(cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
      	* include/cpplib.h (PRAGMA_EOL): New.
      	(CPP_TOKEN_FLD_PRAGMA): New.
      	(struct cpp_token): Add val.pragma.
      	(struct cpp_options): Remove defer_pragmas.
      	(cpp_handle_deferred_pragma): Remove.
      	(cpp_register_deferred_pragma): Declare.
      
      gcc/
      	* c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
      	via integer constant.
      	(pragma_lex): Remove.
      	* c-pch.c (c_common_pch_pragma): Accept the name as an argument,
      	rather than parsing it.
      	* c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
      	handle_pragma_extern_prefix): Add %< %> quotes.
      	(registered_pragmas): New.
      	(c_register_pragma_1): New.
      	(c_register_pragma): Use it.
      	(c_register_pragma_with_expansion): Likewise.
      	(c_invoke_pragma_handler): New.
      	(init_pragma): Use cpp_register_deferred_pragma directly for
      	pch_preprocess.
      	* c-pragma.h (enum pragma_kind): New.
      	(pragma_handler): New.
      	(c_invoke_pragma_handler): Declare.
      	* c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
      	CPP_PRAGMA_EOL.
      	* c-common.h (c_common_pch_pragma): Update decl.
      	* Makefile.in (c-parser.o): Update dependencies.
      	(GTFILES): Add c-pragma.h.
      	* c-parser.c (struct c_token): Add pragma_kind.
      	(struct c_parser): Add in_pragma.
      	(c_lex_one_token): Always initialize keyword and pragma_kind.
      	Extract data for CPP_PRAGMA.
      	(c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
      	(c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
      	Don't allow CPP_PRAGMA_EOL if in_pragma.
      	(c_parser_consume_pragma): New.
      	(c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
      	(c_parser_skip_to_end_of_parameter): Likewise.
      	(c_parser_skip_to_end_of_block_or_statement): Likewise.
      	(c_parser_skip_to_pragma_eol): New.
      	(c_parser_external_declaration): Handle CPP_PRAGMA.
      	(c_parser_compound_statement_nostart): Likewise.
      	(c_parser_statement_after_labels): Likewise.
      	(c_parser_pragma): New.
      	(pragma_lex): Likewise.
      	(c_parser_pragma_pch_preprocess): New.
      	(c_parser_new): Merge into ...
      	(c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
      
      gcc/cp/
      	* lex.c (handle_pragma_java_exceptions): Fix whitespace.
      	* parser.c (struct cp_token): Add pragma_kind.
      	(eof_token): Update to match.
      	(struct cp_lexer): Add in_pragma; rearrange next for better packing.
      	(cp_parser_initial_pragma): New.
      	(cp_lexer_new_main): Use it.  Don't bother clearing
      	c_lex_return_raw_strings.
      	(cp_lexer_get_preprocessor_token): Always initialize keyword
      	and pragma_kind fields.  Handle CPP_PRAGMA.
      	(cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when 
      	in_pragma is set.
      	(cp_lexer_handle_pragma): Remove.  Update callers to cp_parser_pragma.
      	(cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
      	(cp_parser_skip_to_pragma_eol): New.
      	(cp_parser_error): Use it.
      	(cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
      	rearrange with switch statement.
      	(cp_parser_skip_to_end_of_statement): Likewise.
      	(cp_parser_skip_to_end_of_block_or_statement): Likewise.
      	(cp_parser_skip_to_closing_brace): Likewise.
      	(cp_parser_skip_until_found): Likewise.
      	(cp_parser_statement): Add in_compound argument; update callers.
      	Use it to decide how to handle pragma parsing.
      	(cp_parser_labeled_statement): Add in_compound argument; pass
      	it on to cp_parser_statement.
      	(cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
      	(cp_parser_declaration_seq_opt): Likewise.
      	(cp_parser_parameter_declaration): Likewise.
      	(cp_parser_member_specification_opt): Likewise.
      	(cp_parser_function_definition_after_decl): Likewise.
      	(cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
      	(cp_parser_pragma): New.
      	(pragma_lex): New.
      
      gcc/testsuite/
      	* g++.dg/parse/pragma2.C: Update expected error lines.
      
      From-SVN: r109336
      bc4071dd
  10. Jan 02, 2006
    • Paolo Bonzini's avatar
      re PR libgomp/25259 (bootstrap failures on non-C99 platforms (no stdint.h)) · 4c4b3eb0
      Paolo Bonzini authored
      config:
      2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR target/25259
      	* stdint.m4: New.
      
      gcc:
      2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR target/25259
      	* Makefile.in (DECNUMINC): Include libdecnumber's build directory.
      
      libgfortran:
      2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR target/25259
      	* configure.ac: Use GCC_HEADER_STDINT.
      	* libgfortran.h: Include gstdint.h.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      libdecnumber:
      2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR target/25259
      	* configure.ac: Use GCC_HEADER_STDINT.
      	* decContext.h: Include gstdint.h.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      From-SVN: r109241
      4c4b3eb0
  11. Dec 23, 2005
    • Jakub Jelinek's avatar
      backport: builtins.def: Move all DEF_SYNC_BUILTIN to ... · a0274e3e
      Jakub Jelinek authored
              Merge from gomp-branch.
              * builtins.def: Move all DEF_SYNC_BUILTIN to ...
              * sync-builtins.def: ... new file.
              (BUILT_IN_FETCH_AND_ADD_16,
              BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16,
              BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16,
              BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16,
              BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16,
              BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16,
              BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
              BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16,
              BUILT_IN_LOCK_RELEASE_16): New builtins.
              * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
              BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
              * builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
              * c-common.c (enum c_builtin_type): Move to top-level from
              c_common_nodes_and_builtins enum builtin_type.
              (builtin_types): Move from c_common_nodes_and_builtins.
              (def_fn_type): New.
              (c_common_nodes_and_builtins): Use it.
              (def_builtin_1): Check for error_mark_node.
              (sync_resolve_size): Handle also 128 bit sync builtins.
              * Makefile.in (BUILTINS_DEF): New.  Use it instead of builtins.def.
      
              * config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls.
              (TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define.
              * config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables.
              * config/i386/sync.md (CASMODE, DCASMODE): New mode macros.
              (doublemodesuffix, DCASHMODE): New mode attrs.
              (sync_compare_and_swap<mode>): Change into expand, use CASMODE
              instead of IMODE, if mode is wider than a word, expand into
              sync_double_compare_and_swap*.
              (*sync_compare_and_swap<mode>): New insn.
              (sync_double_compare_and_swap<mode>): Likewise.
              (*sync_double_compare_and_swapdi_pic): Likewise.
              (sync_compare_and_swap_cc<mode>): Use CASMODE instead of IMODE, if
              mode is wider than a word, expand into
              sync_double_compare_and_swap_cc*.
              (sync_double_compare_and_swap_cc<mode>): New insn.
              (*sync_double_compare_and_swap_ccdi_pic): Likewise.
      
      From-SVN: r108997
      a0274e3e
  12. Dec 22, 2005
    • Zdenek Dvorak's avatar
      df.c (df_bitmaps_free): Only work for bbs for that structures are allocated. · 1052bd54
      Zdenek Dvorak authored
      
      	* df.c (df_bitmaps_free): Only work for bbs for that structures are
      	allocated.
      	(df_bb_modify): Realloc tables to the new index.
      	(df_find_use): New function.
      	(df_find_def, df_reg_used): Handle subregs.
      	* df.h (df_find_use): Declare.
      
      	* loop-invariant.c: Include hashtab.h.
      	(struct invariant): Remove processed field, add eqto and reg fields.
      	(struct invariant_expr_entry): New.
      	(invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
      	hash_invariant_expr, eq_invariant_expr, find_or_insert_inv,
      	find_identical_invariants, merge_identical_invariants): New functions.
      	(create_new_invariant): Return the new invariant.  Initialize new
      	fields.
      	(find_invariants): Call merge_identical_invariants.
      	(get_inv_cost, best_gain_for_invariant, set_move_mark,
      	move_invariant_reg): Handle equivalent invariants.
      	* Makefile.in (loop-invariant.o): Add HASHTAB_H dependency.
      
      
      Co-Authored-By: default avatarSteven Bosscher <stevenb@suse.de>
      
      From-SVN: r108949
      1052bd54
  13. Dec 16, 2005
    • Jon Grimm's avatar
      target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New. · 9a8ce21f
      Jon Grimm authored
      
      2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
      	    Janis Johnson  <janis187@us.ibm.com>
      	    Ben Elliston  <bje@au.ibm.com>
      
      	* target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
      	(TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
      	* target.h (struct gcc_target): Add decimal_float_supported_p.
      	* targhooks.c (default_scalar_mode_supported_p): Handle
      	MODE_DECIMAL_FLOAT.
      	* builtins.def: Add new builtins for 32, 64 and 128 bit variants
      	of inf, nan, finite, isinf and isnan.
      	* builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
      	BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
      	BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
      	BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
      	BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
      	BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
      	BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
      	* c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
      	Pedwarn if decimal floating point types are used.  Error if
      	decimal floating point is not supported by the target.
      	(finish_declspecs): Return type from DFP typespec_word.
      	* c-typeck.c (c_common_type): Choose the decimal floating point
      	type with the greater precision when determining a common type.
      	(convert_arguments): Warn if there is a mismatch between argument
      	and prototype for decimal float types.  Warn of conversions with
      	binary float types and of precision narrowing due to prototype.
      	* c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
      	(c_token_starts_typename): Handle RID_DFLOAT32/64/128.
      	(c_token_starts_declspecs): Likewise.
      	(c_parser_attributes): Likewise.
      	* c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
      	RID_DFLOAT64, RID_DFLOAT128.
      	(T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
      	* c-common.c (c_common_type_for_mode): Handle decimal float modes.
      	(shorten_compare): Convert DFP/BFP operands to a common type.
      	(c_common_modes_and_builtins): Register built-in decimal float
      	types if the target supports them.
      	(handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
      	* builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
      	inf, nan, finite, isinf and isnan builtins.
      	* c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
      	(builtin_define_float_constants): Assert non-decimal radix.
      	(c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
      	Call builtin_define_decimal_float_constants for each type.
      	* c-lex.c (interpret_float): Decode decimal float types from CPP_N
      	flags.  Use real_from_string3, which can handle binary or decimal
      	floats.
      	* c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
      	cts_dfloat64, cts_dfloat128.
      	* tree.c (build_common_tree_nodes_2): Add decimal float types.
      	* tree.h (enum tree_index): Add new enumeration values
      	TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
      	TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
      	(dfloat32_type_node): New macro.
      	(dfloat64_type_node, dfloat128_type_node): Likewise.
      	(dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
      	(dfloat128_ptr_type_node): Likewise.
      	* c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
      	bit decimal floating point types with "df", "dd" and "dl".
      	* c-format.h (enum format_lengths): Add new enumeration values
      	FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
      	* c-format.c (printf_length_specs, scanf_length_specs): Add
      	entries for H, D, DD.
      	(print_char_table, scan_char_table): Use new entries.
      	(asm_fprintf_char_table, gcc_diag_char_table,
      	gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
      	length arrays.
      	* defaults.h (DECIMAL32_TYPE_SIZE): Define.
      	(DECIMAL64_TYPE_SIZE): Likewise.
      	(DECIMAL128_TYPE_SIZE): Likewise.
      	(TARGET_DEC_EVAL_METHOD): Likewise.
      	* doc/extend.texi (Decimal Float): New node.
      	(Constructing Calls): Document decimal float built-ins.
      	* doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
      	* Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
      	* ginclude/decfloat.h: New file.
      
      Co-Authored-By: default avatarBen Elliston <bje@au.ibm.com>
      Co-Authored-By: default avatarJanis Johnson <janis187@us.ibm.com>
      
      From-SVN: r108629
      9a8ce21f
  14. Dec 12, 2005
    • Jeff Law's avatar
      tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove reassociation code. · 0e0ed594
      Jeff Law authored
      	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
      	reassociation code.
      	* passes.c (init_optimization_passes): Run reassociation again
      	after loop optimizations.
      
      	* tree-ssa-dom.c (thread_across_edge): Canonicalize condition
      	if necessary.
      	(optimize_stmt): Ditto.
      	(canonicalize_comparison): New function.
      	* tree-ssa-operands.c (swap_tree_operands): Make external.
      	(get_expr_operands): Stop auto-canonicalization.
      	* tree-ssa-reassoc.c: Rewrite.
      	(init_optimization_passes): 
      	* tree-flow.h (swap_tree_operands): Prototype.
      	* Makefile.in (tree-ssa-reassoc.o): Update dependencies.
      
      	* gcc.dg/tree-ssa/ssa-pre-2.c: Update due to reassociation changes.
      	* gcc.dg/tree-ssa/reassoc-1.c: Likewise.
      	* gcc.dg/tree-ssa/reassoc-2.c: Likewise.
      	* gcc.dg/tree-ssa/reassoc-3.c: Likewise.
      	* gcc.dg/tree-ssa/reassoc-4.c: Likewise.
      	* gcc.dg/tree-ssa/reassoc-5.c: New.
      	* gcc.dg/tree-ssa/reassoc-6.c: New.
      	* gcc.dg/tree-ssa/reassoc-7.c: New.
      	* gcc.dg/tree-ssa/reassoc-8.c: New.
      	* gcc.dg/tree-ssa/reassoc-9.c: New.
      	* gcc.dg/tree-ssa/reassoc-10.c: New.
      	* gcc.dg/tree-ssa/reassoc-11.c: New.
      
      From-SVN: r108425
      0e0ed594
  15. Dec 08, 2005
  16. Dec 07, 2005
    • J"orn Rennecke's avatar
      Preparation for PR rtl-optimization/20070 / part1 · 7f416ffb
      J"orn Rennecke authored
      2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
      
      	Preparation for PR rtl-optimization/20070 / part1
      	* basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
      	* cfgcleanup.c (condjump_equiv_p): New function, broken out of
      	outgoing_edges_match.
      	(outgoing_edges_match): Use condjump_equiv_p.
      	(merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
      	into..
      	* struct-equiv.c: New file.
      	(death_notes_match_p) New function, broken out of insns_match_p.
      	* Makefile.in (OBJS-common): Add struct-equiv.o.
      	(struct-equiv.o): New target.
      
      From-SVN: r108164
      7f416ffb
    • Rafael Ávila de Espíndola's avatar
      sourcebuild.texi (all.build, [...]): Remove. · bd97af06
      Rafael Ávila de Espíndola authored
      gcc/
      	* doc/sourcebuild.texi (all.build, install-normal): Remove.
      	* configure.ac: Remove all.build and install-normal from target_list
      	* configure: Regenerate.
      	* Makefile.in (install): Don't depend on install-normal.
      gcc/java/
      	* Make-lang.in (java.all.build, java.install-normal): Remove.
      gcc/objc/
      	* Make-lang.in (objc.all.build, objc.install-normal): Remove.
      gcc/objcp/
      	* Make-lang.in (obj-c++.all.build, obj-c++.install-normal): Remove.
      gcc/cp/
      	* Make-lang.in (c++.all.build, c++.install-normal): Remove.
      gcc/ada/
      	* Make-lang.in (ada.install-normal): Remove.
      gcc/fortran/
      	* Make-lang.in (fortran.all.build, fortran.install-normal): Remove.
      gcc/treelang/
      	* Make-lang.in (treelang.all.build, treelang.install-normal): Remove.
      
      From-SVN: r108158
      bd97af06
    • Rafael Ávila de Espíndola's avatar
      Makefile.in: Document the use of stamps. · f637f072
      Rafael Ávila de Espíndola authored
      	* Makefile.in: Document the use of stamps.
      
      From-SVN: r108156
      f637f072
    • Alan Modra's avatar
      gty.texi: Remove instructions for adding a dependency on s-gtype. · 2f4d2d18
      Alan Modra authored
      gcc/
      	* doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
      	* Makefile.in: Add code to compute some dependencies on s-gtype
      	automatically.  Remove the declaration of those dependencies.
      gcc/java/
      	* Make-lang.in: Remove all dependencies on s-gtype, except for
      	gt-java-parse.h.
      gcc/objc/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      gcc/objcp/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      gcc/cp/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      gcc/ada/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      gcc/fortran/
      	* Make-lang.in: Remove all dependencies on s-gtype, except for
      	gt-fortran-trans.h.
      gcc/treelang/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      
      From-SVN: r108155
      2f4d2d18
    • Richard Sandiford's avatar
      alpha.c (alpha_start_function): Use switch_to_section. · d6b5193b
      Richard Sandiford authored
      	* config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
      	(alpha_elf_select_rtx_section): Return the selected section rather
      	than emitting assembly code.
      	(alpha_write_linkage): Emit a ".link" directive directly and then
      	set in_section to NULL.
      	(vms_asm_out_constructor): Use switch_to_section.
      	(vms_asm_out_destructor): Likewise.
      	(unicosmk_output_common): Set in_section to NULL instead of calling
      	the dummy common_section function.
      	(unicosmk_text_section): Delete in favor of...
      	(unicosmk_output_text_section_asm_op): ...this new function.
      	(unicosmk_data_section): Delete in favor of...
      	(unicosmk_output_data_section_asm_op): ...this new function.
      	(unicosmk_init_sections): New function.
      	(unicosmk_output_deferred_case_vectors): Use switch_to_section.
      	(unicosmk_output_ssib): Set in_section to NULL instead of calling
      	the dummy ssib_section function.
      	(unicosmk_section_buf): Delete.
      	* config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
      	(unicosmk_data_section): Delete.
      	* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
      	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
      	(SECTION_FUNCTION_TEMPLATE): Delete.
      	* config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
      	(READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
      	(common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
      	(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	* config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
      	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
      	(link_section, literals_section): Delete.
      	(ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
      	set in_section to NULL.
      
      	* config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
      	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
      	(COMMON_SECTION): Delete.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	(ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
      	the dummy common_section function.
      	* config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
      	* config/arm/arm.c (get_jump_table_size): Use pointer comparison
      	between readonly_data_section and text_section to check whether
      	read-only data is being put in the text section.
      	(arm_output_function_epilogue): Use switch_to_section.
      	(arm_elf_asm_constructor): Likewise.
      	(thumb_call_via_reg): Replace call to in_text_section with
      	a comparison between in_section and text_section.
      	(arm_file_end): Use switch_to_section.
      	(aof_text_section): Delete in favor of...
      	(aof_output_text_section_asm_op): ...this new function.
      	(aof_data_section): Delete in favor of...
      	(aof_output_data_section_asm_op): ...this new function.
      	(aof_asm_init_sections): New function.
      	(zero_init_section): Moved from config/arm/aof.h.
      	(aof_dump_imports, aof_file_start): Use switch_to_section.
      	* config/arm/arm.h (thumb_call_via_label): Update comment.
      	* config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
      	(common_section): Delete.
      	* config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
      	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
      	global switch_to_section function instead of the old port-local one.
      	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
      	(SWITCH_TO_SECTION_FUNCTION): Delete.
      	(drectve_section): Redefine as a macro.
      	* config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
      	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
      	switch_to_section.
      
      	* config/avr/avr.c (progmem_section): New variable.
      	(avr_output_progmem_section_asm_op): New function.
      	(avr_asm_init_sections): New function.
      	(avr_output_addr_vec_elt): Use switch_to_section.
      	* config/avr/avr.h (progmem_section): Declare.
      	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
      	(READONLY_DATA_SECTION): Delete.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
      	* config/avr/avr-protos.h (progmem_section): Delete.
      
      	* config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
      
      	* config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
      	(INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
      
      	* config/darwin-sections.def: New file.
      	* config/darwin.c: Define all sections in darwin-sections.def.
      	(output_objc_section_asm_op, darwin_init_sections): New functions.
      	(machopic_output_indirection): Use switch_to_section.
      	(machopic_select_section): Return the selected section rather than
      	emitting assembly code.  Replace the static function table with
      	inline conditional expressions.  Update the tests of last_text_section
      	and move them into the FUNCTION_DECL block.
      	(machopic_select_rtx_section): Return the selected section rather than
      	emitting assembly code.
      	(machopic_asm_out_constructor, machopic_asm_out_destructor)
      	(darwin_file_end): Use switch_to_section.
      	* config/darwin.h: Use darwin-sections.def to declare sections.
      	(INIT_SECTION_ASM_OP): Remove empty definition.
      	(HAS_INIT_SECTION): Define this instead.
      	(SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
      	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
      	(TARGET_ASM_EH_FRAME_SECTION): Delete.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	* config/darwin-protos.h (darwin_init_sections): Declare.
      	(machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
      	(machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
      	(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
      	(constructor_section, destructor_section, mod_init_section): Delete.
      	(mod_term_section): Delete.
      	(darwin_exception_section, darwin_eh_frame_section): Delete.
      	(machopic_select_section): Return a section.
      	(machopic_select_rtx_section): Likewise.
      	(text_coal_section, text_unlikely_section, text_unlikely_coal_section)
      	(const_section, const_coal_section, const_data_section): Delete.
      	(const_data_coal_section, data_coal_section, cstring_section): Delete.
      	(literal4_section, literal8_section, constructor_section): Delete.
      	(mod_init_section, mod_term_section, destructor_section): Delete.
      	(objc_class_section, objc_meta_class_section, objc_category_section)
      	(objc_class_vars_section, objc_instance_vars_section): Delete.
      	(objc_cls_meth_section, objc_inst_meth_section): Delete.
      	(objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
      	(objc_selector_refs_section, objc_selector_fixup_section): Delete.
      	(objc_symbols_section, objc_module_info_section): Delete.
      	(objc_image_info_section, objc_protocol_section): Delete.
      	(objc_string_object_section, objc_constant_string_object_section)
      	(objc_class_names_section, objc_meth_var_names_section): Delete.
      	(objc_meth_var_types_section, objc_cls_refs_section): Delete.
      	(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
      	(machopic_symbol_stub_section, machopic_picsymbol_stub_section)
      	(darwin_exception_section, darwin_eh_frame_section): Delete.
      	* config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
      
      	* config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
      	(frv_asm_out_destructor): Likewise.
      	* config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
      	(SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
      	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
      	get_named_section.
      	(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
      	* config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
      	(data_section): Delete.
      
      	* config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
      	(DRECTVE_SECTION_FUNCTION): Delete.
      	(drectve_section): Redefine as a macro that sets in_section after
      	emitting the directive.
      	(SWITCH_TO_SECTION_FUNCTION): Delete.
      	* config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
      	in_text_section with comparison between in_section and text_section.
      	* config/i386/i386.c (x86_64_elf_select_section): Return the section
      	rather than emitting assembly code.  Use get_named_section.
      	(x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
      	get_named_section.
      	(machopic_output_stub): Use switch_to_section.
      	* config/i386/nwld.c (nwld_named_section_asm_out_constructor)
      	(nwld_named_section_asm_out_destructor): Use get_section and
      	switch_to_section.
      
      	* config/ia64/ia64.c (ia64_select_rtx_section): Return the section
      	rather than emitting assembly code.
      	(ia64_rwreloc_select_section): Likewise.
      	(ia64_rwreloc_select_rtx_section): Likewise.
      	* config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
      	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
      	switch_to_section.
      	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
      	(SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
      
      	* config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
      	section rather than emitting assembly code.
      	(iq2000_select_section): Likewise.
      	* config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
      	(sbss_section): Delete.
      
      	* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
      	and get_named_section.
      	* config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
      
      	* config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
      	(SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
      	(EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
      	(MCORE_EXPORT_NAME): Emit the exports directive directly, then set
      	in_section to NULL.
      	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
      	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
      	global switch_to_section function instead of the old port-local one.
      	* config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
      	(SWITCH_SECTION_FUNCTION): Delete.
      	* config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
      	(DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
      	(SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
      	(MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
      	in_section to NULL.
      	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
      	global switch_to_section function instead of the old port-local one.
      	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
      
      	* config/mips/mips.c (mips_file_start): Update comment.
      	(mips_output_aligned_bss): Use switch_to_section and get_named_section.
      	(mips_output_aligned_decl_common): Use switch_to_section.
      	(mips_select_rtx_section): Return the section rather than emitting
      	assembly code.  Use get_named_section.
      	(mips_function_rodata_section: Likewise get_section.
      	(build_mips16_function_stub): Use switch_to_section.
      	* config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
      	(SDATA_SECTION_ASM_OP): Delete.
      	* config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
      	(EXTRA_SECTION_FUNCTIONS): Delete.
      
      	* config/mmix/mmix.c (mmix_file_start, mmix_file_end)
      	(mmix_asm_output_aligned_local): Use switch_to_section.
      
      	* config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
      	(som_one_only_readonly_data_section): New variables.
      	(pa_output_function_epilogue): Set in_section to NULL instead of
      	calling forget_section.
      	(output_deferred_plabels): Use select_section.
      	(pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
      	of calling forget_section.
      	(pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
      	(pa_asm_output_aligned_local): Use select_section.
      	(som_text_section_asm_op): Delete in favor of...
      	(som_output_text_section_asm_op): ...this new function.
      	(pa_som_asm_init_sections): New function.
      	(pa_select_section): Return the section rather than emitting
      	assembly code.
      	* config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
      	(SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
      	(SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
      	(SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
      	* config/pa/pa-protos.h (som_text_section_asm_op): Delete.
      	(som_readonly_data_section, som_one_only_readonly_data_section)
      	(som_one_only_data_section, forget_section): Delete.
      	* config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
      
      	* config/rs6000/rs6000.c (read_only_data_section): New variable.
      	(private_data_section, read_only_private_data_section): New variables.
      	(sdata2_section, toc_section): New variables.
      	(rs6000_file_start): Use switch_to_section.
      	(rs6000_assemble_integer): Use comparisons against in_section
      	instead of calling in_toc_section and in_text_section.  Use
      	unlikely_text_section_p.
      	(rs6000_elf_output_toc_section_asm_op): New function, derived
      	from the old rs6000/sysv4.h toc_section function.
      	(rs6000_elf_asm_init_sections): New function.
      	(rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
      	the section rather than emitting assembly code.
      	(machopic_output_stub): Use switch_to_section.
      	(toc_section): Delete dummy function.
      	(rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
      	switch_to_section and get_section.
      	(rs6000_xcoff_output_readonly_section_asm_op): New function.
      	(rs6000_xcoff_output_readwrite_section_asm_op): New function.
      	(rs6000_xcoff_output_toc_section_asm_op): New function, derived from
      	the old rs6000/xcoff.h toc_section function.
      	(rs6000_xcoff_asm_init_sections): New function.
      	(rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
      	the section rather than emitting assembly code.
      	(rs6000_xcoff_file_start): Use switch_to_section.
      	(rs6000_xcoff_file_end): Likewise.
      	* config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
      	(sdata2_section, sbss_section, private_data_section): Delete.
      	(read_only_data_section, read_only_private_data_section): Delete.
      	* config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
      	(TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
      	(SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
      	(FINI_SECTION_FUNCTION): Delete.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
      	* config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
      	(READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
      	(READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
      	(READONLY_DATA_SECTION): Delete.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
      	to NULL rather than no_section.
      	(TARGET_ASM_EXCEPTION_SECTION): Delete.
      
      	* config/sh/sh.c (sh_file_start): Use switch_to_section.
      
      	* config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
      	(sparc_output_deferred_case_vectors): Likewise.  Remove argument
      	from call to current_function_section.
      
      	* config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
      	(bss100_section): New variable.
      	(xstormy16_asm_output_aligned_common): Use switch_to_section.
      	(xstormy16_asm_init_sections): New function.
      	(xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
      	switch_to_section and get_section.
      	(xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
      	from calls to current_function_section.
      	* config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
      	(XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	* config/stormy16/stormy16-protos.h (bss100_section): Delete.
      
      	* config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
      	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
      	(FINI_SECTION_FUNCTION): Delete.
      
      	* config/v850/v850.c: Include gt-v850.h.
      	(rosdata_section, rozdata_section, tdata_section, zdata_section)
      	(zbss_section): New variables.
      	(v850_output_aligned_bss): Use switch_to_section.
      	(v850_asm_init_sections): New function.
      	(v850_select_section): Return the section rather than emitting
      	assembly code.
      	* config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
      	(ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
      	(ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
      	(TARGET_ASM_INIT_SECTIONS): Define.
      	* config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
      	(sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
      	(zbss_section): Delete.
      
      	* config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
      
      	* config/vx-common.h (vxworks_exception_section): Delete.
      	(TARGET_ASM_EXCEPTION_SECTION): Delete.
      
      	* config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
      	section rather than emitting assembly code.
      	* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
      	switch_to_section.
      
      	* Makefile.in (GTFILES): Add $(srcdir)/output.h.
      	* coretypes.h (section): New union and typedef.
      	* dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
      	from call to current_function_section.
      	(dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
      	(dbxout_symbol_location): Use switch_to_section.
      	* dwarf2out.c (named_section_eh_frame_section): Delete, moving
      	most of the code into...
      	(default_eh_frame_section): ...here.  Return a section.
      	(collect2_eh_frame_section): Delete, moving most of the code into..
      	(switch_to_eh_frame_section): ...this new function.
      	(debug_info_section, debug_abbrev_section, debug_aranges_section)
      	(debug_macinfo_section, debug_line_section, debug_loc_section)
      	(debug_pubnames_section, debug_str_section, debug_ranges_section): New
      	variables.
      	(output_call_frame_info): Call switch_to_eh_frame_section instead of
      	eh_frame_section.  Use switch_to_section and get_section.
      	(dwarf2out_begin_prologue): Use switch_to_section.
      	(AT_string_form): Check the flags in debug_str_section instead of
      	DEBUG_STR_SECTION_FLAGS.
      	(output_comp_unit): Use switch_to_section, get_section, and
      	debug_info_section.
      	(output_line_info, secname_for_decl): Use unlikely_text_section_p.
      	(dwarf2out_begin_block): Use switch_to_section.  Remove argument
      	from call to current_function_section.
      	(dwarf2out_var_location): Use unlikely_text_section_p.
      	(dwarf2out_source_line): Use switch_to_section.  Remove argument
      	from call to current_function_section.
      	(dwarf2out_start_source_file, dwarf2out_end_source_file)
      	(dwarf2out_define, dwarf2out_undef: Use switch_to_section and
      	debug_macinfo_section.
      	(dwarf2out_init): Initialize the new section variables.  Use them
      	instead of calls to named_section_flags.  Use switch_to_section.
      	(output_indirect_string): Use switch_to_section and debug_str_section.
      	(dwarf2out_finish): Use switch_to_section and the new section
      	variables.
      	* except.c (default_exception_section): Return the section instead
      	of emitting assembly code.
      	(output_function_exception_table): Use the global exception_section
      	variable instead of the target hook.  Use switch_to_section.  Remove
      	argument from call to current_function_section.
      	* final.c (HAVE_READONLY_DATA_SECTION): Delete.
      	(shorten_branches): Use pointer comparisons to detect whether the
      	text section is the same as readonly_data_section.
      	(profile_function): Use switch_to_section.  Remove argument from
      	call to current_function_section.
      	(final_scan_insn): Likewise.  Update use of last_text_section.
      	* gengtype.c (open_base_files): Add an include of output.h.
      	* output.h (text_section, data_section, readonly_data_section)
      	(ctors_section, dtors_section, bss_section, init_section)
      	(fini_section, sdata_section): Turn into section pointers.
      	(in_text_section, in_unlikely_text_section, exports_section)
      	(drectve_section, named_section, mergeable_string_section)
      	(last_text_section_name): Delete.
      	(default_exception_section, default_eh_frame_section): Return sections.
      	(SECTION_DECLARED, SECTION_NAMED): New macros.
      	(SECTION_MACH_DEP): Bump value.
      	(section_common, named_section, unnamed_section): New structures.
      	(unnamed_section_callback): New typedef.
      	(section): New union.
      	(sbss_section, exception_section, eh_frame_section): New variables.
      	(in_section, last_text_section): Turn into section pointers.
      	(get_unnamed_section, get_section, get_named_section): New functions.
      	(mergeable_constant_section, function_section): Return a section.
      	(unlikely_text_section): Likewise.
      	(current_function_section): Likewise.  Remove the decl argument.
      	(unlikely_text_section_p, switch_to_section): New functions.
      	(output_section_asm_op): New function.
      	(set_named_section_flags, named_section_flags, named_section_real)
      	(named_section_first_declaration): Delete.
      	(default_select_section, default_elf_select_section): Return a section.
      	(default_elf_select_section_1, default_function_rodata_section)
      	(default_no_function_rodata_section, default_select_rtx_section)
      	(default_elf_select_rtx_section): Likewise.
      	* rtl.h (in_data_section): Delete.
      	* sdbout.c (sdbout_one_type): Use switch_to_section.
      	* system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
      	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
      	(TARGET_ASM_EH_FRAME_SECTION): Poison.
      	* target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
      	(TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
      	(TARGET_ASM_OUT): Update after above changes.
      	* target.h (init_sections): New hook.
      	(exception_section, eh_frame_section): Delete.
      	(select_section, select_rtx_section, function_rodata_section): Return
      	a section rather than emitting assembly code.
      	* varasm.c (text_section, data_section, readonly_data_section)
      	(ctors_section, dtors_section, bss_section, init_section)
      	(fini_section): Turn into section pointers.
      	(sdata_section, sbss_section, exception_section): New variables.
      	(eh_frame_section): New variable.
      	(in_section): Make global and turn into a section pointer.
      	(last_text_section): Turn into a section pointer.
      	(unnamed_sections): New variable.
      	(in_named_name, last_text_section_name): Delete.
      	(EXTRA_SECTION_FUNCTIONS): Delete.
      	(in_named_entry): Delete.
      	(section_htab): New variable, replacing...
      	(in_named_htab): ...this deleted variable.
      	(section_entry_eq, section_entry_hash): New functions, based on...
      	(in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
      	(get_unnamed_section, get_section): New functions.
      	(unlikely_text_section): Return a section instead of emitting
      	assembly code.
      	(in_text_section, in_unlikely_text_section, in_data_section): Delete.
      	(get_named_section_flags, named_section_first_declaration): Delete.
      	(unlikely_text_section_p): New function.
      	(named_section_real, named_section): Delete.
      	(get_named_section): New function.
      	(asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
      	(function_section): Return a section rather than emitting
      	assembly code.
      	(current_function_section): Likewise.  Remove argument.  Use
      	last_text_section if nonnull, otherwise use function_section.
      	(default_function_rodata_section): Return a section rather than
      	emitting assembly code.  Use get_section.
      	(default_no_function_rodata_section): Return a section rather than
      	emitting assembly code.
      	(variable_section): Use switch_to_section and get_named_section.
      	(mergeable_string_section): Return a section rather than emitting
      	assembly code.  Use get_section.  Make static.  Don't take special
      	countermeasures for empty strings.
      	(mergeable_constant_section): Return a section rather than emitting
      	assembly code.  Use get_section.
      	(default_named_section_asm_out_destructor): Use switch_to_section
      	and get_section.
      	(default_dtor_section_asm_out_destructor): Use switch_to_section.
      	(default_named_section_asm_out_constructor): Use switch_to_section
      	and get_section.
      	(default_ctor_section_asm_out_constructor): Use switch_to_section.
      	(assemble_start_function): Likewise.  Set last_text_section to
      	NULL rather than no_section.  Change the type of save_section.
      	(assemble_zeros, assemble_variable): Use the section flags to detect
      	whether or not a section is text.
      	(assemble_static_space): Use switch_to_section.
      	(assemble_trampoline_template): Likewise.
      	(output_constant_def_contents): Use switch_to_section and
      	get_named_section.
      	(output_constant_pool_1): Use switch_to_section.  Use the section
      	flags to see whether sections contain mergeable data.
      	(init_varasm_once): Initialize section_htab instead of in_named_htab.
      	Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
      	(default_elf_asm_named_section): Use SECTION_DECLARED to detect
      	whether a section has already been declared.
      	(default_select_section, default_elf_select_section): Return a
      	section rather than emitting assembly code.
      	(default_elf_select_section_1): Likewise.  Use bss_section for
      	SECCAT_BSS if nonnull.  Use get_named_section.
      	(default_select_rtx_section): Return a section rather than
      	emitting assembly code.
      	(default_elf_select_rtx_section): Likewise.  Use get_named_section.
      	(file_end_indicate_exec_stack): Use switch_to_section and get_section.
      	(output_section_asm_op, switch_to_section): New functions.
      	* vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
      	get_named_section.
      
      	* doc/tm.texi: Expand the introduction to the sections documentation.
      	(TRAMPOLINE_SECTION): Document new interface.
      	(SDATA_SECTION_ASM_OP): Document new macro.
      	(READONLY_DATA_SECTION): Delete.
      	(SDATA_SECTION_ASM_OP): Document new macro.
      	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
      	(TARGET_ASM_INIT_SECTIONS): Document new hook.
      	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
      	(TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
      	(TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
      
      gcc/java/
      	* class.c (build_utf8_ref, emit_register_classes): Use
      	switch_to_section and get_section.
      
      From-SVN: r108152
      d6b5193b
  17. Dec 02, 2005
    • Jon Grimm's avatar
      dfp.h, dfp.c: New files. · 909e2256
      Jon Grimm authored
      
      2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
      	    Janis Johnson  <janis187@us.ibm.com>
      	    David Edelsohn  <dje@watson.ibm.com>
      	    Ben Elliston  <bje@au.ibm.com>
      
      	* dfp.h, dfp.c: New files.
      	* Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
      	(DECNUM_H): Likewise.
      	(LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
      	(INCLUDES): Append $(DECNUMINC).
      	(OBJS-common): Add dfp.o.
      	(dfp.o): New rule.
      	* real.h (EXP_BITS): Pinch one bit to ..
      	(struct real_value): Add decimal field.
      	(real_format): Change table size, update documentation.
      	(REAL_MODE_FORMAT): Update for to handle float, decimal float.
      	(real_from_string3): Declare.
      	(decimal_single_format): Declare.
      	(decimal_double_format): Declare.
      	(decimal_quad_format): Declare.
      	(REAL_VALUE_TO_TARGET_DECIMAL32): New.
      	(REAL_VALUE_TO_TARGET_DECIMAL64): New.
      	(REAL_VALUE_TO_TARGET_DECIMAL128): New.
      	* real.c: Include dfp.h.
      	(normalize): Early return for decimal floats.
      	(do_add): Zero decimal field.
      	(do_compare): Call do_decimal_compare for decimal floats.
      	(do_fix_trunc): Likewise, call decimal_do_fix_trunc.
      	(real_arithmetic): Call decimal_real_arithmetic for decimal
      	floating point operands.
      	(real_identical): If a and b are of differing radix, return false.
      	(real_to_integer): Call decimal_real_to_integer if the value is a
      	decimal float.
      	(real_to_integer2): Likewise, call decimal_real_to_integer2.
      	(real_to_decimal): Likewise, call decimal_real_to_decimal.
      	(real_to_hexadecimal): Place "N/A" in the return string for
      	decimal float.
      	(real_from_string3): New variant, given a mode.
      	(real_maxval): Use decimal_real_maxval for decimal floats.
      	(round_for_format): Use decimal_round_for_format for decimals.
      	(real_convert): Use decimal_real_convert where appropriate.
      	(significand_size): Handle base 10.
      	(encode_decimal_single, decode_decimal_single,
      	encode_decimal_double, decode_decimal_double, encode_decimal_quad,
      	decode_decimal_quad): New functions.
      	(decimal_single_format): New.
      	(decimal_double_format): New.
      	(decimal_quad_format): New.
      	* machmode.def: Add SD, DD and TD decimal floating point modes.
      	* machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
      	Include MODE_DECIMAL_FLOAT.
      	(DECIMAL_FLOAT_MODE_P): New.
      	* mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
      	* genmodes.c (struct mode_data): Add counter field.
      	(struct mode_data): Update comment for format.
      	(blank_mode): Initialise counter field.
      	(new_mode): Increment counter field for each mode defined.
      	(complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
      	using a format.
      	(make_complex_modes): Handle modes containing `D'.
      	(DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
      	(make_decimal_float_mode): New.
      	(reset_float_format): Handle MODE_DECIMAL_FLOAT.
      	(cmp_modes): Compare counter field if other characteristics
      	similar.
      	(emit_real_format_for_mode): Support formats for decimal floats.
      	* doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
      	Document MODE_DECIMAL_FLOAT.
      
      Co-Authored-By: default avatarBen Elliston <bje@au.ibm.com>
      Co-Authored-By: default avatarDavid Edelsohn <dje@watson.ibm.com>
      Co-Authored-By: default avatarJanis Johnson <janis187@us.ibm.com>
      
      From-SVN: r107861
      909e2256
  18. Nov 29, 2005
  19. Nov 23, 2005
    • Mark Mitchell's avatar
      invoke.texi: For man pages, include gcc-vers.texi. · 9d530538
      Mark Mitchell authored
      	* doc/invoke.texi: For man pages, include gcc-vers.texi.
      	List @file in the option summary.  Include the libiberty
      	documentation for @file.
      	* gcc.c (main): Call expandargv.
      	* Makefile.in (gcc-vers.texi): Define srcdir.
      
      From-SVN: r107426
      9d530538
  20. Nov 14, 2005
  21. Nov 10, 2005
    • Daniel Berlin's avatar
      tree-ssa-alias.c (compute_may_aliases): Remove call to delete_old_heap_vars. · c900f6aa
      Daniel Berlin authored
      2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
      
      	* tree-ssa-alias.c (compute_may_aliases): Remove call to 
      	delete_old_heap_vars.
      	* tree-dfa.c (referenced_var_remove): Remove function.
      	* tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
      	(delete_tree_ssa): Remove call to delete_old_heapvars.
      	Add call to delete_alias_heapvars.
      	* tree-flow.h (referenced_var_remove): Remove prototype
      	(init_alias_heapvars): New prototype.
      	(delete_alias_heapvars): Ditto.
      	* Makefile.in (tree-ssa-structalias.o): Add
      	gt-tree-ssa-structalias.o
      	(GTFILES): Add tree-ssa-structalias.h and
      	tree-ssa-structalias.c.
      	(s-gtype): Add gt-tree-ssa-structalias.h.
      	* tree-ssa-structalias.c (heapvars): Remove.
      	(oldheapvars): Remove.
      	(heapvar_for_stmt): New variable.
      	(heapvar_lookup): New function.
      	(heapvar_insert): Ditto.
      	(get_constraint_for): See if we have an old heapvar
      	to reuse.
      	(init_alias_heapvars): New function.
      	(delete_alias_heapvars): Ditto.
      	Add include of gt-tree-ssa-structalias.h.
      
      From-SVN: r106743
      c900f6aa
  22. Nov 09, 2005
  23. Nov 04, 2005
    • Jeff Law's avatar
      invoke.texi: Document max-jump-thread-duplication-stmts PARAM. · 43f31be5
      Jeff Law authored
      	* doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
      	* tree-ssa-dom.c: Include params.h.
      	(thread_across_edge): If there are too many statements in the
      	target block, then do not thread through it.
      	* Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
      	* params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
      
      From-SVN: r106503
      43f31be5
  24. Oct 12, 2005
  25. Oct 11, 2005
Loading