Commit Graph

1889 Commits

Author SHA1 Message Date
Revital Eres
f37a4f143d Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
2004-10-18  Revital Eres  <eres@il.ibm.com>

        * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
        * loop-unroll.c: Include varray.h.
        (struct var_to_expand, struct opt_info): Rename split_ivs_info to
        opt_info and expand it to support variable expansion.
        (analyze_insns_in_loop): Rename analyze_ivs_to_split and
        expand it to support variable expansion.
        (pt_info_start_duplication): Rename si_info_start_duplication.
        (apply_opt_in_copies): Rename split_ivs_in_copies and add support
        to the variable expansion optimization.
        (free_opt_info): Rename free_si_info.
        (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
        expand_var_during_unrolling, insert_var_expansion_initialization,
        combine_var_copies_in_loop_exit, release_var_copies,
        get_expansion): New functions.
        (peel_loop_completely, unroll_loop_constant_iterations,
        unroll_loop_runtime_iterations, peel_loop_simple,
        unroll_loop_stupid): Change uses of struct si_info
        to struct opt_info
        and add uses of fvariable-expansion-in-unroller flag.
        * params.def: Add parameter to restrict the number of expansions.
        * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
        the number of expansions.
        * common.opt: (fvariable-expansion-in-unroller): New flag.
        * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.

From-SVN: r89197
2004-10-18 05:31:28 +00:00
Matt Austern
0c58f841a5 Speed up walk_tree by introducing a special-purpose hash table.
* pointer-set.c: New file, special-purpose hash table.
	* pointer-set.h: New file.
	* tree.h (struct pointer_set_t): Declare as opaque type.
	(tree_walk): Last argument is pointer_set_t* now.
	* tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
	(walk_type_fields):
	(walk_tree): Convert from htab_t to pointer_set_t for keeping
	track of which nodes have already been visited.
	(walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
	* cgraphunit.c (cgraph_create_edges): Likewise.
	(cgraph_characterize_statics_local): Likewise.
	* tree-dfa.c (collect_dfa_stats): Likewise.
	* langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
	pointer_set_t* now.
	* langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
	* langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
	of walk_subtrees is pointer_set_t* now.
	* Makefile.in (OBJS-common): add pointer-set.o
	(tree-inline.o): Depends on pointer-set.h
	(tree-dfa.o): Likewise
	(cgraphunit.o): Likewise
	* cp/Make-lang.in (pt.o): depends on pointer-set.h
	* cp/cp-tree.h (cp_walk_subtrees): Last argument is pointer_set_t* now.
	* cp/pt.c (struct pair_fn_data): Use pointer_set_t, not htab_t
	(for_each_template_parm): Convert from htab_t to pointer_set_t.
	* cp/tree.c (cp_walk_subtrees): Last argument is pointer_set_t* now.
	* java/lang.c (java_tree_inlining_walk_subtrees): Last arg is struct
	pointer_set_t* now.

From-SVN: r89062
2004-10-14 23:15:29 +00:00
Sebastian Pop
86df10e35e Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>

	* Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
	* cfgloop.c (initialize_loops_parallel_p): New.
	(flow_loops_find): Initialize the parallel_p field to true for all
	the loops.
	* tree-ssa-loop-niter.c: Include "tree-data-ref.h".
	(estimate_numbers_of_iterations_loop): Infers the loop bounds from
	the size of the data accessed in the loop.
	(struct nb_iter_bound): Moved...
	* cfgloop.h (struct nb_iter_bound): ... here.
	(estimated_nb_iterations, parallel_p): New fields in struct loop.
	(record_estimate): Declare extern here.
	* tree-chrec.c: Fix comments.
	(nb_vars_in_chrec): New function.
	* tree-chrec.h (nb_vars_in_chrec): Declared here.
	* tree-data-ref.c: Don't include lambda.h, that is already included
	in tree-data-ref.h.
	(tree_fold_divides_p): Don't check for integer_onep.
	(tree_fold_bezout): Removed.
	(gcd): New static duplicated function.
	(int_divides_p, dump_subscript): New.
	(dump_data_dependence_relation): Use dump_subscript.
	(dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
	estimate_niter_from_size_of_data): New.
	(analyze_array_indexes, analyze_array): Call
	estimate_niter_from_size_of_data during	the detection of array
	references.  Pass in a pointer to the statement that contains the
	array reference.
	(all_chrecs_equal_p): New.
	(compute_distance_vector): Renamed compute_subscript_distance.
	Deal with multivariate conflict functions.
	(initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
	DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
	(non_affine_dependence_relation): New.
	(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
	analyze_siv_subscript, analyze_miv_subscript,
	analyze_overlapping_iterations, subscript_dependence_tester):
	Initialize and return last_conflicts function.
	(initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
	compute_overlap_steps_for_affine_1_2): New.
	(analyze_siv_subscript_affine_cst): Removed.
	(analyze_subscript_affine_affine): Disprove dependences based on the
	iteration domains.  Solve the univariate dependence case as before,
	but use lambda_matrix_right_hermite instead of tree_fold_bezout.
	Implement the multivariate case of 2 versus 1 variables.
	(build_classic_dist_vector, build_classic_dir_vector): Implement some
	unhandled cases.
	(find_data_references_in_loop): Compute and initialize
	loop->estimated_nb_iterations and loop->parallel_p.
	(analyze_all_data_dependences): Modify the debug dump order.
	* tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
	subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
	(SUB_LAST_CONFLICT, subscript->last_conflict,
	data_dependence_relation->affine_p, data_dependence_relation->size_vect,
	DDR_AFFINE_P, DDR_SIZE_VECT): New.
	(find_data_references_in_loop, initialize_data_dependence_relation,
	dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.

From-SVN: r88965
2004-10-13 03:48:03 +00:00
Richard Sandiford
ed00ab959d re PR bootstrap/17857 (fixproto can't find fix-header)
PR bootstrap/17857
	* Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.

From-SVN: r88659
2004-10-07 05:28:46 +00:00
Zack Weinberg
d5706a1eea pretty-print.c: Include tree.h.
* pretty-print.c: Include tree.h.
	(pp_base_prepare_to_format): New function, logic from
	text_specifies_location.
	(pp_base_format_text): Use gcc_assert.
	* pretty-print.h (pp_prepare_to_format): New macro.
	(pp_base_prepare_to_format): Prototype.
	* diagnostic.c (text_specifies_location): Delete.
	(bug_report_request): Delete.
	(diagnostic_set_info): Don't call text_specifies_location.
	(diagnostic_action_after_output): Put text from
	bug_report_request inline here.  Use gcc_unreachable.
	(diagnostic_report_current_function): Fix comment.
	(diagnostic_report_diagnostic): Clarify logic for error recursion.
	Call pp_prepare_to_format before diagnostic_starter.
	(trim_filename): Use IS_DIR_SEPARATOR.
	(fatal_error, internal_error): Use gcc_unreachable.
	(error_recursion): Call diagnostic_action_after_output to
	issue the bug_report_request message and exit.
	* Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.

	* c-parse.in: Add list of diagnostic messages to insulate
	translation template from version of yacc/bison used to
	compile the grammar.
java:
	* parse.y, parse-scan.y: Add list of diagnostic messages to
	insulate translation template from version of yacc/bison used
	to compile the grammar.
treelang:
	* parse.y: Add list of diagnostic messages to insulate
	translation template from version of yacc/bison used to
	compile the grammar.
po:
	* gcc.pot: Regenerate.

From-SVN: r88590
2004-10-06 04:47:42 +00:00
Kelley Cook
19361834df re PR bootstrap/17817 (restage[1,2,3] and then bootstrap no longer cause build dir to be rebuilt)
2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>

	PR bootstrap/17817
	* Makefile.in: Stage the build directory too.

From-SVN: r88577
2004-10-05 21:51:13 +00:00
Kelley Cook
406176bedc Makefile.in: Update -Wno-error exceptions for move to build dir.
2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in: Update -Wno-error exceptions for move to build dir.

From-SVN: r88550
2004-10-05 11:56:00 +00:00
Jakub Jelinek
5496b36fc2 revert: tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD and TI_VA_LIST_FPR_COUNTER_FIELD.
2004-10-01  Jakub Jelinek  <jakub@redhat.com>

	Revert
	2004-09-29  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
	and TI_VA_LIST_FPR_COUNTER_FIELD.
	(va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
	* tree-pass.h (pass_stdarg): Add.
	* tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
	* tree-stdarg.c: New file.
	* Makefile.in (OBJS-common): Add tree-stdarg.o.
	(tree-stdarg.o): Add dependencies.
	* function.h (struct function): Add va_list_gpr_size and
	va_list_fpr_size fields.
	* function.c (allocate_struct_function): Initialize them.

	* config/i386/i386.c (ix86_build_builtin_va_list): Initialize
	va_list_{g,f}pr_counter_field.
	(ix86_setup_incoming_varargs): Don't do anything if reg_save
	area will not be used.  Only save registers that tree-stdarg.c
	detected they need saving.
	(ix86_va_start): Don't set up fields that won't be used.

	* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
	va_list_{g,f}pr_counter_field.
	(setup_incoming_varargs): Don't do anything if reg_save
	area will not be used.  Only save registers that tree-stdarg.c
	detected they need saving.
	(rs6000_va_start): Don't set up fields that won't be used.

	* gcc.dg/tree-ssa/stdarg-1.c: Removed.
	* gcc.dg/tree-ssa/stdarg-2.c: Removed.
	* gcc.dg/tree-ssa/stdarg-3.c: Removed.
	* gcc.dg/tree-ssa/stdarg-4.c: Removed.
	* gcc.dg/tree-ssa/stdarg-5.c: Removed.

From-SVN: r88383
2004-10-01 09:43:03 +02:00
Jakub Jelinek
58c8adc127 tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD and TI_VA_LIST_FPR_COUNTER_FIELD.
* tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
	and TI_VA_LIST_FPR_COUNTER_FIELD.
	(va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
	* tree-pass.h (pass_stdarg): Add.
	* tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
	* tree-stdarg.c: New file.
	* Makefile.in (OBJS-common): Add tree-stdarg.o.
	(tree-stdarg.o): Add dependencies.
	* function.h (struct function): Add va_list_gpr_size and
	va_list_fpr_size fields.
	* function.c (allocate_struct_function): Initialize them.

	* config/i386/i386.c (ix86_build_builtin_va_list): Initialize
	va_list_{g,f}pr_counter_field.
	(ix86_setup_incoming_varargs): Don't do anything if reg_save
	area will not be used.  Only save registers that tree-stdarg.c
	detected they need saving.
	(ix86_va_start): Don't set up fields that won't be used.

	* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
	va_list_{g,f}pr_counter_field.
	(setup_incoming_varargs): Don't do anything if reg_save
	area will not be used.  Only save registers that tree-stdarg.c
	detected they need saving.
	(rs6000_va_start): Don't set up fields that won't be used.

	* gcc.c-torture/execute/stdarg-1.c: New test.
	* gcc.c-torture/execute/stdarg-2.c: New test.
	* gcc.c-torture/execute/stdarg-3.c: New test.
	* gcc.dg/tree-ssa/stdarg-1.c: New test.
	* gcc.dg/tree-ssa/stdarg-2.c: New test.
	* gcc.dg/tree-ssa/stdarg-3.c: New test.
	* gcc.dg/tree-ssa/stdarg-4.c: New test.
	* gcc.dg/tree-ssa/stdarg-5.c: New test.

From-SVN: r88279
2004-09-29 11:47:56 +02:00
Steven Bosscher
78492bf5ac Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
* Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
	* tree-ssa-propagate.c: Include vec.h.
	(interesting_ssa_edges, varying_ssa_edges): Make these VECs
	instead of varrays.
	(cfg_blocks_add): Assert the block is not already in the worklist.
	Update uses of interesting_ssa_edges and varying_ssa_edges.
	(process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
	ssa_propagate): Likewise.

From-SVN: r88249
2004-09-28 20:31:16 +00:00
Kelley Cook
55040e7a24 Makefile.in (STAGESTUFF): Split into ...
2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (STAGESTUFF): Split into ...
	(STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
	(mostlyclean): Update.
	(stage1-start, stage2-start, stage3-start, stage4-start,
	stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
	Move the STAGEMOVESTUFF.

From-SVN: r88207
2004-09-27 23:16:29 +00:00
H.J. Lu
4c4a5bbc40 re PR bootstrap/17369 ([ia64] Bootstrap failure with binutils-2.15.90.0.1.1)
2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/17369
	* Makefile.tpl (REALLY_SET_LIB_PATH): Add @SET_GCC_LIB_PATH@.
	(HOST_EXPORTS]): Add @SET_GCC_LIB_PATH@. Set and export
	SET_GCC_LIB_PATH_CMD.
	(BASE_TARGET_EXPORTS): Likewise.
	* Makefile.in: Regenerated.

	* configure.in (SET_GCC_LIB_PATH): Set and substitute.
	* configure: Regenerated.

config/

2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/17369
	* gcc-lib-path.m4: New file.

gcc/

2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/17369
	* Makefile.in (@set_gcc_lib_path@): Added.

	* configure.ac: Include ../config/gcc-lib-path.m4. Use
	TL_AC_GNU_MAKE_GCC_LIB_PATH.
	* configure: Regenerated.

From-SVN: r87999
2004-09-23 17:37:08 -07:00
Zdenek Dvorak
4c8bfd97e6 Revert commit of testing BOOT_CFLAGS
From-SVN: r87944
2004-09-23 12:22:40 +00:00
Zdenek Dvorak
92fc4a2f39 cfgloop.h (update_single_exits_after_duplication): Declare.
* cfgloop.h (update_single_exits_after_duplication): Declare.
	(loopify, split_loop_bb): Declaration changed.
	* cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
	of rtx.
	(loopify): Added redirect_all_edges argument.
	(update_single_exits_after_duplication): Export.
	* loop-unswitch.c (unswitch_loop): Changed due to loopify change.
	* tree-flow.h (tree_duplicate_loop_to_header_edge,
	tree_ssa_loop_version): Declare.
	* tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
	set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
	lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
	lv_update_pending_stmts, tree_ssa_loop_version): New functions.

	* tree-ssa-loop-unswitch.c: New file.
	* Makefile.in (tree-ssa-loop-unswitch.o): Add.
	* timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
	* tree-flow.h (tree_ssa_unswitch_loops): Declare.
	* tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
	* tree-pass.h (pass_unswitch): Declare.
	* tree-ssa-loop.c (tree_ssa_loop_unswitch,
	gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
	* doc/passes.texi: Documen tree level loop unswitching.

	* gcc.dg/tree-ssa/loop-6.c: New test.

From-SVN: r87943
2004-09-23 12:21:31 +00:00
Kelley Cook
3b620440d3 aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
gcc/
2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
	* configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
	Create build and doc directories along with the language directories.
	Don't create doc directory separately.
	* configure: Regenerate.
	* Makefile.in: Create all object and executables files built
	with the build compiler in a build/ directory.
	(genobjnames): Add missing build objects.
	(STAGESTUFF): Don't stage the gen* programs.
	(ggc-none.o): Define dependencies for the target compiler.
	(build-print-rtl.o): Rename to build/print-rtl.o.
	(build-errors.o): Rename to build/errors.o.
	(build-varray.o): Rename to build/varray.o.
	(maintainerclean): Delete the contents of the build directory.
	($(genobjs): %.o): Explicitly use -o.
	(build/insn-conditions.o): Delete specfic rule to use generic rule.
	(build/gengtype-lex.o): Likewise.
	(build/gengtype-yacc.o): Likewise.
	(build/gcov-iov.o): Likewise.

gcc/java
2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>

	* Make-lang.in: Revert the gcc-none.o change.

From-SVN: r87854
2004-09-22 11:21:21 +00:00
Daniel Berlin
5cfa876635 Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
2004-09-20  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).

From-SVN: r87785
2004-09-21 01:00:11 +00:00
Zack Weinberg
9aa44508a8 Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
* Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
	* objc/Make-lang.in (objc/objc-parse.o): Likewise.

From-SVN: r87689
2004-09-18 01:07:25 +00:00
Andreas Schwab
6e3363336b Makefile.in (gimple-low.o): Depend on $(EXPR_H).
* Makefile.in (gimple-low.o): Depend on $(EXPR_H).
	(tree-vectorizer.o): Likewise.
	(targhooks.o): Likewise.

From-SVN: r87676
2004-09-17 22:14:58 +00:00
Richard Sandiford
6eab2bc3dc * Makefile.in (gen-protos.o): Depend on errors.h.
From-SVN: r87634
2004-09-17 07:15:22 +00:00
Zdenek Dvorak
42759f1ea0 Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
* Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
	* basic-block.h (get_dominated_by_region): Declare.
	* dominance.c (get_dominated_by_region): New function.
	* tree-cfg.c: Include cfglayout.h.
	(tree_duplicate_bb): Duplicate also phi nodes.
	(struct ssa_name_map_entry): New type.
	(add_phi_args_after_copy_bb, add_phi_args_after_copy,
	ssa_name_map_entry_hash, ssa_name_map_entry_eq,
	allocate_ssa_names, rewrite_to_new_ssa_names_def,
	rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
	rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
	* tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
	add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
	rewrite_to_new_ssa_names, allocate_ssa_names,
	rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
	* tree-ssa-loop-ch.c (duplicate_blocks): Removed.
	(copy_loop_headers): Use tree_duplicate_sese_region.

	* gcc.dg/tree-ssa/copy-headers.c: Update outcome.

From-SVN: r87614
2004-09-16 21:29:43 +00:00
Steven Bosscher
c7f9021961 Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
* Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
	* tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
	after propagating into an ADDR_EXPR.

From-SVN: r87566
2004-09-15 21:47:45 +00:00
Joseph Myers
971801fff6 attribs.c, [...]: Use %<, %> and %q for quoting in diagnostics going through pretty-print.c.
gcc:
	* attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
	except.c, fold-const.c, function.c, langhooks.c, params.c,
	reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
	tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
	for quoting in diagnostics going through pretty-print.c.  Use ''
	for quoting in other diagnostic text.
	* langhooks.c: Include intl.h.  Mark text locating diagnostics for
	translation.
	* Makefile.in (langhooks.o): Update dependencies.
	* pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
	formats.

gcc/testsuite:
	* g++.dg/ext/member-attr.C, g++.dg/warn/deprecated.C,
	gcc.dg/deprecated.c, gcc.dg/noreturn-1.c, gcc.dg/noreturn-4.c:
	Update expected messages.

libmudflap:
	* testsuite/libmudflap.c/pass35-frag.c: Update expected message.

From-SVN: r87563
2004-09-15 21:48:10 +01:00
Zdenek Dvorak
113d659afd Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
* Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
	* basic-block.h (struct reorder_block_def): Add copy_number field.
	* cfgloop.h (biv_p): Declare.
	* cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
	* common.opt (fsplit-ivs-in-unroller): New flag.
	* loop-iv.c (biv_p): New function.
	* loop-unroll.c: Include hashtab.h and recog.h.
	(struct iv_to_split, struct split_ivs_info): New types.
	(analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
	free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
	determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
	insert_base_initialization, split_iv): New functions.
	(peel_loop_completely, unroll_loop_constant_iterations,
	unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
	Use them.
	* doc/invoke.texi (-fsplit-ivs-in-unroller): Document.

Co-Authored-By: Steven Bosscher <stevenb@suse.de>

From-SVN: r87487
2004-09-14 08:05:46 +00:00
Zdenek Dvorak
c94583fe55 unroll.c: Removed.
* unroll.c: Removed.
	* loop.h: Removed.
	* Makefile.in (LOOP_H, unroll.o): Removed.
	(toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
	dependency.
	* alias.c (init_alias_analysis): Remove flag_old_unroll_loops
	reference.
	* cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
	* common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
	* loop.c: Do not include loop.h.
	(LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
	REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
	struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
	REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
	struct loop_regs, struct loop_movables, struct loop_info): Moved
	from loop.h.
	(back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
	reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
	find_common_reg_term, loop_iterations, final_giv_value): Moved
	from unroll.c.
	(uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
	loop_dump_stream, for_each_insn_in_loop, express_from,
	extend_value_for_giv, loop_iv_add_mult_emit_before,
	loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
	loop_insn_first_p, get_condition_for_loop,
	loop_insn_emit_before, loop_insn_hoist,
	loop_insn_sink): Made static.
	(loop_invariant_p): Made static.  Removed flag_old_unroll_loops
	reference.
	(strength_reduce): Do not call unroller.
	(record_giv): Do not initialize unrolled field.
	(prescan_loop): Do not set loop_info->preconditioned.
	* passes.c: Do not include loop.h.
	(rest_of_handle_loop_optimize): Do not call unroller.
	* predict.c: Do not include loop.h.
	* rtl.h (NOTE_PRECONDITIONED): Removed.
	* stmt.c: Do not include loop.h.
	* toplev.c: Do not include loop.h.
	(process_options): Do not handle flag_old_unroll_loops.

	* doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
	Documentation removed.
	* doc/passes.texi (unroll.c, loop.h): Documentation removed.

From-SVN: r87485
2004-09-14 07:43:08 +00:00
Nathan Sidwell
032618223b Makefile.in (STAGE1_CHECKING): New variable.
* Makefile.in (STAGE1_CHECKING): New variable.
	(stage1_build): Use it.
	* tree-ssa.c (verify_ssa): Preserve state of dominance
	information.

From-SVN: r87484
2004-09-14 07:20:05 +00:00
James E Wilson
a140c081d1 Fix gen-proto (fixproto) build failure.
* Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
* gen-protos.c: Include errors.h.
(progname): Delete.

From-SVN: r87480
2004-09-13 20:45:46 -07:00
Jan Hubicka
b6acab32f1 Makefile.in (predict.o): Depend on tree-scalar-evolution.h
* Makefile.in (predict.o): Depend on tree-scalar-evolution.h
	* predict.c: Include tree-scalar-evolution.h and cfgloop.h
	(predict_loops): Use number_of_iterations_exit to predict
	number of iterations on trees.

From-SVN: r87473
2004-09-14 00:52:41 +00:00
Kenneth Zadeck
6674a6ce49 New code to analyze file level static variables and to determine if...
New code to analyze file level static variables and to determine if
they escape and also code to use this information to prune clobber
lists.

From-SVN: r87455
2004-09-13 22:51:01 +00:00
Adam Nemet
ecc50d72cb * Makefile.in (all.cross): Add srcextra.
From-SVN: r87342
2004-09-11 04:22:14 +00:00
James E Wilson
1c8c309bab Fix typos.
* Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
(stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.

From-SVN: r87341
2004-09-10 20:52:22 -07:00
Kelley Cook
5a29def169 Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.

From-SVN: r87274
2004-09-10 03:58:50 +00:00
Daniel Berlin
0a05048550 Makefile.def: Remove libbanshee.
Toplevel:

2004-09-09  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.def: Remove libbanshee.
	* Makefile.tpl: Ditto.
	* configure.in: Ditto.
	* Makefile.in: Regen.
	* configure: Ditto.

gcc/

2004-09-09  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in: Remove libbanshee, tree-alias-*.
	Remove tree-alias-common.h dependencies.
	* common.opt: Remove -ftree-points-to.
	* configure.ac: Remove libbanshee.
	* flags.h: Remove pta_type, flag_tree_points_to.
	* gengtype.c (open_base_files): Remove tree-alias-type.h.
	* opts.c (OPT_ftree_points_to): Remove.
	* toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
	* tree-dfa.c: Remove tree-alias-common.h
	* tree-into-ssa.c: Ditto.
	* tree-outof-ssa.c: Ditto.
	* tree-ssa-copyrename.c: Ditto.
	* tree-ssa-live.c: Ditto.
	* tree-optimize.c: Ditto.
	* tree-ssa.c: Ditto.
	Remove pass_build_pta, pass_del_pta.
	* tree-pass.h: Ditto.
	* tree-ssa-alias.c: Remove tree-alias-common.h.
	(struct alias_stats_d):	Remove pta_queries, pta_resolved.
	(pass_may_alias): Remove PROP_pta requirement.
	(may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
	(get_tmt_for): Ditto.
	(dump_alias_stats): Ditto.
	* doc/passes.texi: Remove blurb about points-to analysis.
	* fortran/Make-lang.in: Remove tree-alias-*.o.

From-SVN: r87253
2004-09-09 20:53:41 +00:00
Nathan Sidwell
b2d59f6f77 Makefile.in (gengtype): Use $(BUILD_ERRORS).
* Makefile.in (gengtype): Use $(BUILD_ERRORS).
	(gengtype.o): Depend on errors.h.
	* genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
	(attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
	attr_alt_subset_p, attr_alt_subset_of_compl_p,
	attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
	write_test_expr, write_attr_value, write_eligible_delay,
	make_internal_attr, make_numeric_value): Likewise.
	* genautomata.c (regexp_name, get_str_vect,
	gen_presence_absence_set, automaton_decl_hash,
	automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
	decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
	process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
	test_unit_reserv, it_is_empty_reserv_sets,
	reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
	reserv_sets_and, output_cycle_reservs, get_free_state,
	intersected_state_reservs_p, states_union, remove_arc,
	copy_insn_regexp, transform_1, transform_2, transform_3,
	regexp_transform_func, store_alt_unit_usage,
	check_regexp_units_distribution, process_seq_for_forming_states,
	process_alts_for_forming_states, make_automaton,
	form_arcs_marked_by_insn, create_composed_state,
	set_out_arc_insns_equiv_num, partition_equiv_class,
	process_insn_equiv_class, set_insn_equiv_classes,
	units_to_automata_heuristic_distr, form_regexp,
	longest_path_length, output_dfa_max_issue_rate, add_vect,
	out_state_arcs_num, add_vect_el, output_trans_table,
	output_state_alts_table, output_dead_lock_vect,
	output_max_insn_queue_index_def,
	output_min_insn_conflict_delay_func,
	output_internal_insn_latency_func, output_print_reservation_func,
	output_cpu_unit_reservation_p, output_state_arcs,
	make_insn_alts_attr, make_internal_dfa_insn_code_attr,
	make_default_insn_latency_attr,
	form_important_insn_automata_lists): Likewise.
	* genemit.c (gen_exp, output_add_clobbers,
	output_added_clobbers_hard_reg_p): Likewise.
	* genextract.c (print_path, main): Likewise.
	* genflags.c (gen_macro): Likewise.
	* gengenrtl.c: Include errors.h
	(type_from_format, accessor_from_format): Likewise.
	* gengtype.c (get_file_basename, output_mangled_typename,
	walk_type, write_types_process_field,
	write_types_local_process_field): Likewise.
	* genmodes.c (complete_mode): Likewise.
	* genopinit.c (gen_insn): Likewise.
	* genoutput.c (output_insn_data, check_constraint_len,
	constraint_len): Likewise.
	* genpreds.c (add_mode_tests):Likewise.
	* gen-protos.c (add_hash): Likewise.
	* genrecog.c (find_operand, find_matching_operand,
	validate_pattern, add_to_sequence, maybe_both_true,
	nodes_identical_1, merge_trees, write_switch, write_cond,
	write_action, is_unconditional, make_insn_sequence,
	debug_decision_2): Likewise.
	* gensupport.c (is_predicable, collect_insn_data,
	alter_predicate_for_insn, maybe_eval_c_test): Likewise.

From-SVN: r87236
2004-09-09 13:22:38 +00:00
Giovanni Bajo
1e128c5f7b targhooks.c (default_unwind_emit, [...]): Use gcc_assert, gcc_unreachable & internal_error instead of abort.
* targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
	Use gcc_assert, gcc_unreachable & internal_error instead of abort.
	* timevar.c (timevar_push, timevar_pop, timevar_start,
	timevar_stop): Likewise.
	* toplev.c (default_pch_valid_p): Likewise.
	* tracer.c (tail_duplicate): Likewise.
	* tree-alias-common.c (get_alias_var_decl,
	get_values_from_constructor, create_alias_var, delete_alias_vars,
	empty_points_to_set, same_points_to_set, ptr_may_alias_var):
	Likewise.
	* tree.c (tree_size, make_node_stat, copy_node_stat,
	build_int_cst_wide, integer_all_onesp, list_length, chainon,
	tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
	substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
	build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
	lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
	build_method_type_directly, decl_type_context, get_callee_fndecl,
	get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
	tree_fold_gcd): Likewise.
	* tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
	make_cond_expr_edges, group_case_labels, tree_merge_blocks,
	cleanup_control_expr_graph, find_taken_edge,
	find_taken_edge_switch_expr, phi_alternatives_equal,
	is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
	stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
	tree_split_edge, tree_verify_flow_info, thread_jumps,
	tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
	* tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
	chrec_fold_multiply_poly_poly): Likewise.
	* tree-complex.c (extract_component, expand_complex_division,
	expand_complex_comparison, expand_complex_operations_1,
	build_replicated_const, expand_vector_operations_1): Likewise.
	* tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
	build_classic_dir_vector): Likewise.
	* tree-dfa.c (compute_immediate_uses_for_phi,
	compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
	create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
	record_in_finally_tree, replace_goto_queue_1,
	maybe_record_in_goto_queue, verify_norecord_switch_expr,
	do_return_redirection): Likewise.
	* tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
	add_to_dst_predicate_list, find_phi_replacement_condition,
	replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
	Likewise.
	* tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
	initialize_inlined_parameters, declare_return_variable,
	estimate_num_insns_1, expand_call_inline, expand_calls_inline,
	optimize_inline_calls, copy_tree_r): Likewise.
	* tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
	ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
	* tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
	tsi_split_statement_list_after, tsi_split_statement_list_before):
	Likewise.
	* tree-mudflap.c (mf_varname_tree): Likewise.
	* tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
	lookup_tramp_for_decl, convert_all_function_calls): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.
	* tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
	coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
	free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
	Likewise.
	* tree-phinodes.c (resize_phi_node, add_phi_arg,
	remove_all_phi_nodes_for): Likewise.
	* tree-pretty-print.c (op_prio, print_call_name): Likewise.
	* tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
	tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
	* tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
	sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
	generate_one_element_ref, generate_element_copy,
	generate_element_zero, scalarize_copy, scalarize_init,
	scalarize_ldst): Likewise.
	* tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
	add_may_alias, add_pointed_to_expr, add_pointed_to_var,
	collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
	* tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
	* tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
	set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
	widen_bitfield, ccp_fold_builtin): Likewise.
	* tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
	replace_exp_1, propagate_tree_value): Likewise.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
	* tree-ssa-dce.c (set_control_dependence_map_bit,
	find_control_dependence, find_pdom, mark_operand_necessary,
	mark_stmt_if_obviously_necessary,
	mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
	* tree-ssa-dom.c (dom_opt_initialize_block_local_data,
	simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
	eliminate_redundant_computations, avail_expr_eq): Likewise.
	* tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
	duplicate_blocks): Likewise.
	* tree-ssa-loop-im.c (for_each_index, set_level,
	is_call_clobbered_ref): Likewise.
	* tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
	stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
	find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
	peel_address, ptr_difference_cost, may_replace_final_value,
	determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
	rewrite_use, rewrite_uses): Likewise.
	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
	check_loop_closed_ssa_use): Likewise.
	* tree-ssanames.c (make_ssa_name): Likewise.
	* tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
	finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
	get_stmt_operands, get_expr_operands, get_asm_expr_operands,
	get_indirect_ref_operands, add_stmt_operand): Likewise.
	* tree-ssa-pre.c (value_exists_in_set_bitmap,
	value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
	phi_translate, valid_in_set, compute_antic,
	find_or_generate_expression, create_expression_by_pieces, insert_aux,
	create_value_expr_from, eliminate): Likewise.
	* tree-ssa-propagate.c (cfg_blocks_get): Likewise.
	* tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
	Likewise.
	* tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
	eliminate_tail_call): Likewise.
	* tree-vectorizer.c (vect_create_index_for_array_ref,
	vect_align_data_ref, vect_create_data_ref,
	vect_create_destination_var, vect_get_vec_def_for_operand,
	vect_finish_stmt_generation, vect_transform_stmt,
	vect_transform_loop_bound, vect_transform_loop,
	vect_analyze_operations): Likewise.
	* tree-vn.c (vn_compute, set_value_handle, get_value_handle):
	Likewise.
	* tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
	get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
	bsi_after_labels, bsi_last): Likewise.
	* tree-ssa-live.c (var_union, change_partition_var,
	create_ssa_var_map, calculate_live_on_entry, root_var_init,
	type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
	Likewise.
	* tree-ssa-live.h (partition_is_global, live_entry_blocks,
	tpa_find_tree): Likewise.
	(register_ssa_partition_check): Declare.
	(register_ssa_partition): use it.
	* tree-ssa-live.c: Include errors.h.
	(register_ssa_partition_check): New.
	* tree-ssa-operands.c: Include errors.h.
	* Makefile.in (tree-ssa-operands.o): Depend on errors.h.

Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>

From-SVN: r87223
2004-09-09 07:54:12 +00:00
Daniel Berlin
599eabdb42 Makefile.in (tree-loop-linear.o): Added.
2004-09-08  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (tree-loop-linear.o): Added.
	(OBJS-common): Add tree-loop-linear.o
	* common.opt: New flag, ftree-loop-linear.
	* timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
	* tree-flow.h: Add prototype for linear_transform_loops.
	* tree-optimize.c: Add linear transform after vectorization.
	* tree-pass.h: Add struct pass_linear_transform.
	* tree-ssa-loop.c: Add pass_linear_transform.
	* tree-loop-linear.c: New file.
	* lambda-code.c: gcc_assertify.
	(gcc_loop_to_lambda_loop): Handle all exit tests.
	Handle case where we have (invariant >= induction var).
	(find_induction_var_from_exit_cond): Ditto.

From-SVN: r87190
2004-09-08 15:28:56 +00:00
Andreas Tobler
faaaf610bf Makefile.in (builtins.o): Depend on tree-mudflap.h.
[gcc/ChangeLog]
2004-09-08  Andreas Tobler  <toa@pop.agri.ch>

        * Makefile.in (builtins.o): Depend on tree-mudflap.h.
        * builtins.c: Include tree-mudflap.h.

From-SVN: r87175
2004-09-08 06:04:15 +00:00
Ziemowit Laski
6408ef3386 Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
[gcc/ChangeLog]
2004-09-07  Ziemowit Laski  <zlaski@apple.com>

	* Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
	* c-parse.in: Include c-common.h instead of objc-act.h.
	(ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
	myparms, myparm): Remove %type declarations.
	(methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
	objc_typename, objc_try_catch_stmt, optellipsis): Add %type
	declarations.
	(objc_inherit_code, objc_public_flag): Remove.
	(typespec_nonreserved_nonattr): Call
	objc_get_protocol_qualified_type() instead of get_static_reference()
	and get_protocol_reference().
	(stmt_nocomp): Call grokparm() on @catch parameter.
	(objcdef): Move semantic action to objc_finish_implementation().
	(classdef): Move semantic action to objc_start_class_interface(),
	objc_continue_interface(), objc_finish_interface(),
	objc_start_class_implementation(), objc_continue_implementation(),
	objc_start_category_interface() and
	objc_start_category_implementation().
	(protocoldef): Move semantic actions to objc_start_protocol() and
	objc_finish_interface().
	(ivar_decl_list): Remove nonterminal.
	(visibility_spec): Move semantic actions to objc_set_visibility().
	(ivar_decls): Remove assignment to $$.
	(ivar_decl): Rephrase in terms of component_decl; call
	objc_add_instance_variable().
	(ivars, ivar_declarator): Remove nonterminals.
	(opt_semi): New nonterminal.
	(methodtype): Remove semantic actions.
	(methoddef): Move semantic actions to objc_set_method_type(),
	objc_start_method_definition() and objc_finish_method_definition().
	(methodproto): Move semantic actions to objc_set_method_type() and
	objc_add_method_declaration().
	(methoddecl): Use objc_typename instead of typename; move semantic
	actions to objc_build_method_signature().
	(optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
	(optparmlist): Express in terms of optparms and optellipsis.
	(optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
	nonterminals.
	(keyworddecl): Use objc_typename instead of typename.
	(rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
	and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().

[gcc/objc/ChangeLog]
2004-09-07  Ziemowit Laski  <zlaski@apple.com>

	* Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
	objc/objc-act.h.
	(objc/objc-act.o): Depend on $(HASHTAB_H).
	* objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
	objcp-decl.h instead of c-tree.h.
	(build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
	error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
	build_protocol_template): Adjust prototypes.
	(build_module_initializer_routine, start_class, continue_class,
	finish_class, start_method_def, objc_start_function, start_protocol,
	build_method_decl, objc_add_method, add_instance_variable,
	build_ivar_reference, is_ivar, is_private, get_super_receiver,
	build_selector_table_decl, objc_push_parm, objc_get_parm_info,
	gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
	create_field_decl): New prototypes.
	(objc_expand_function_end, comp_method_with_proto, objc_expr_last,
	gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
	define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
	(TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
	(CLASS_TYPEDEF_NAME): New.
	(TAG_EXECCLASS): Change from a global variable to a #define.
	(TAG_RETURN_STRUCT): Delete.
	(TAG_GNUINIT): New, holds '__objc_gnu_init' name.
	(objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
	(string_descriptor): New struct.
	(string_htab): New hash table.
	(string_hash, string_eq): New prototypes.
	(generate_struct_by_value_array): Call create_field_decl() instead of
	create_builtin_decl().
	(objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
	In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
	(objc_finish_file): In ObjC++, call instantiate_pending_templates()
	and cp_finish_file().
	(define_decl, get_static_reference, get_protocol_reference,
	create_builtin_decl): Remove functions.
	(objc_start_class_interface, objc_start_category_interface,
	objc_start_protocol, objc_continue_interface, objc_finish_interface,
	objc_start_class_implementation, objc_start_category_implementation,
	objc_continue_implementation, objc_finish_implementation,
	objc_set_visibility, objc_set_method_type,
	objc_build_method_signature, objc_add_method_declaration,
	objc_start_method_definition, objc_add_instance_variable,
	objc_get_protocol_qualified_type, create_field_decl,
	start_var_decl, finish_var_decl): New functions.
	(setup_string_decl): Simplify since it is only called once.
	(synth_module_prologue): Call build_class_template(); predefine 'id'
	and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
	hooks for duration of function; fix GNU runtime messenger signatures
	to correspond to reality; forward-declare '__objc_exec_class' for the
	GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
	'extern "C" { ... }' wrappers around synthesized declarations; call
	build_protocol_template() and build_category_template().
	(string_hash, string_eq): New functions.
	(objc_build_string_object): Check metaclass correctness only once;
	store string literals in hash table.
	(objc_build_constructor): Do not convert initializer elements;
	adjust for ObjC++ impedance mismatch.
	(build_objc_symtab_template): Call create_field_decl() instead of
	create_builtin_decl().
	(init_objc_symtab): Add missing conversion to initializer element.
	(build_metadata_decl): Call start_var_decl() instead of define_decl().
	(generate_objc_symtab_decl): Do not call build_category_template();
	call start_var_decl() and finish_var_decl() instead of start_decl()
	and finish_decl().
	(build_module_descriptor): Call create_field_decl() instead of
	grokfield(); call start_var_decl() and finish_var_decl() instead of
	start_decl() and finish_decl(); always mark module descriptor as
	used; move GNU runtime-specific functionality to
	build_module_initializer_routine().
	(build_module_initializer_routine): New function, broken off of
	build_module_descriptor().
	(objc_static_init_needed_p, objc_generate_static_init_call): New
	functions.
	(generate_static_references, generate_strings,
	build_selector_translation_table, generate_descriptor_table,
	generate_ivars_list, generate_dispatch_table, generate_category): Call
	start_var_decl() and finish_var_decl() instead of start_decl() and
	finish_decl(); build a type directly instead of via groktypename().
	(build_selector_reference_decl, build_selector_table_decl,
	build_class_reference_decl, build_protocol_reference,
	generate_objc_image_info): Call start_var_decl() instead of
	build_decl().
	(build_selector_reference): For GNU runtime, do not call
	build_selector_reference_decl().
	(build_selector, build_typed_selector_reference): Always convert
	result to the selector type.
	(add_objc_string): Cast return value to 'char *'.
	(build_method_prototype_template, build_selector_template,
	build_method_template): Use actual selector type for fields
	pointing to selectors.
	(finish_objc): For GNU runtime, call
	build_module_initializer_routine() after build_module_descriptor().
	(generate_protocol_list, generate_shared_structures): Call
	start_var_decl() and finish_var_decl() instead of start_decl() and
	finish_decl(); build a type directly instead of via
	groktypename().
	(synth_id_with_class_suffix): Return a string.
	(get_arg_type_list): For instance methods, use the instance type for
	'self'; do not call groktypename_in_parm_context().
	(build_objc_string_decl): Squash redeclaration errors in ObjC++.
	(objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
	handle RECORD_TYPEs in ObjC as well as ObjC++.
	(objc_is_id): New function.
	(objc_is_object_ptr): Return the canonical type node.
	(objc_get_class_ivars): Simplify using get_class_ivars().
	(get_class_ivars): Remove second parameter; create a fresh copy
	of the ivar list for each call; do not check for existence of
	super class.
	(objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
	(objc_init_exceptions): When using SJLJ-style exceptions, require
	the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
	exceptions.
	(objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
	objc_object_type instead of objc_id_type.
	(objc_begin_catch_clause): Convert the incoming PARM_DECL into
	a VAR_DECL before placing it in the appropriate scope; do not
	call define_decl(); adjust call to c_begin_compound_stmt();
	use objc_object_type instead of objc_id_type.
	(build_next_objc_exception_stuff): Call create_field_decl() instead
	of create_builtin_decl(); construct type directly instead of calling
	groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
	(build_private_template): Adjust call to get_class_ivars(); build
	a type directly instead of via groktypename().
	(build_protocol_template, build_method_prototype_list_template,
	build_method_prototype_template, build_category_template,
	build_selector_template, build_class_template, build_super_template,
	build_ivar_template, build_ivar_list_template,
	build_method_list_template, build_method_template):
	Call create_field_decl() instead of grokfield().
	(objc_method_parm_type): Do not call groktypename().
	(generate_descriptor_table): Call start_var_decl() and
	finish_var_decl() instead of start_decl() and finish_decl().
	(generate_method_descriptors, build_protocol_initializer,
	generate_dispatch_tables, build_category_initializer,
	build_shared_structure_initializer): Do not call groktypename().
	(generate_protocols): Call start_var_decl() and finish_var_decl()
	instead of start_decl() and finish_decl(); do not call groktypename().
	(error_with_ivar): Remove last parameter.
	(check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
	to CLASS_IVARS lists; adjust calls to error_with_ivar().
	(generate_ivar_lists): Convert one of the initializer elements; do
	not call groktypename().
	(get_arg_type_list, start_method_def, gen_method_def): Account for
	new representation of variable arguments and '...' in Objective-C
	methods; add Objective-C++ impedance matching code.
	(is_objc_type_qualifier): Remove function.
	(adjust_type_for_id_default): Simplify; there is no longer a need to
	wade through declspecs.
	(lookup_interface, start_class, continue_class,
	finish_class, start_method_def, start_protocol, build_method_decl,
	objc_add_method, add_instance_variable, build_ivar_reference,
	is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
	Make into static functions.
	(receiver_is_class_object): Use new IS_CLASS() macro.
	(objc_build_message_expr): Tweak ObjC++ message argument handling;
	call objc_finish_message_expr() instead of finish_message_expr().
	(finish_message_expr): Rename to objc_finish_message_expr(); use
	OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
	call gen_type_name() instead of gen_declaration(); call objc_is_id()
	instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
	calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
	(build_objc_method_call, warn_with_method): Do not call groktypename().
	(build_ivar_reference): Call convert() instead of clobbering in a
	type.
	(hash_init): Initialize string_htab hash table.
	(add_instance_variable): Simplify parameter list; do not call grokfield();
	do not populate CLASS_IVARS list.
	(start_class): Check for the existence of super class, if one was specified.
	(continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
	call build_class_template(); adjust call to get_class_ivars(); call
	build_decl(), pushdecl() and finish_decl() instead of define_decl().
	(finish_class): Call build_decl(), pushdecl() and finish_decl() instead
	of define_decl().
	(add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
	(start_protocol): Do not call build_protocol_template(); use
	PROTOCOL_BINFO_ELTS for the tree vector size.
	(encode_type_qualifiers): Do not handle the 'const' qualifier here.
	(encode_pointer): Encode 'const char *' as 'r*', for backwards
	compatibility.
	(encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
	(encode_type): Handle the 'const' qualifier here.
	(objc_parmlist): New global variable, sued by objc_push_parm and
	objc_get_parm_info().
	(objc_push_parm, objc_get_parm_info): New functions.
	(objc_expr_last): Remove function.
	(synth_self_and_ucmd_args): For instance methods, use the instance
	type for 'self'; call objc_push_parm() instead of push_parm_decl().
	(start_method_def): Do not call push_scope(), declare_parm_level(),
	pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
	just use objc_push_parm() and objc_get_parm_info().
	(comp_method_with_proto): Remove function.
	(objc_types_are_equivalent): Strip away indirections before comparing
	underlying types.
	(comp_proto_with_proto): Do not call groktypename(); types are no
	longer in raw declspec format.
	(objc_start_function): New function.
	(really_start_method): Call comp_proto_with_proto() instead of
	comp_method_with_proto(); call objc_start_function() instead of
	hand-crafting a function declarator.
	(continue_method_def, objc_expand_function_end): Remove functions.
	(get_super_receiver): Call objc_get_current_scope() instead of
	get_current_scope(); reference 'super_class' field (instead of
	'class').
	(finish_method_def): Rename to objc_finish_method_definition() and
	add a function decl parameter; move method encoding call from
	objc_expand_function_end().
	(is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
	gen_declaration_1): Remove functions.
	(tmpbuf, RAW_DECLSPEC): Remove.
	(gen_declaration): Remove second parameter; simplify to deal
	with TYPE_P nodes instead of raw declspecs.
	(gen_type_name, gen_type_name_0): New functions.
	(gen_method_decl): Remove second parameter; call gen_type_name()
	instead of gen_declaration_1().
	(dump_interface): Adjust calls to gen_declaration() and
	gen_method_decl(); do not allocate a separate string buffer.
	(init_objc): Allocate a larger string buffer to accommodate
	dump_interface(); adjust call to build_module_descriptor();
	add call to build_module_initializer_routine() for the GNU
	runtime.
	(generate_classref_translation_entry): Do not call start_decl(); call
	finish_var_decl() instead of finish_decl(); call convert() instead of
	build_c_cast().
	* objc-act.h (CLASS_OWN_IVARS): Remove accessor.
	(CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
	gone.
	(OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
	(OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
	(OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
	objc_object_type and objc_object_name, respectively.
	(OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
	objc_class_name): New.
	(IS_CLASS): New macro.
	(IS_ID, IS_SUPER): Robustify.
	(OCTI_EXECCLASS_DECL, execclass_decl): New.
	(finish_file, start_class, continue_class, finish_class,
	start_method_def, continue_method_def, finish_method_def,
	start_protocol, finish_protocol, objc_build_throw_stmt,
	objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
	objc_build_synchronized_epilogue, objc_build_try_prologue,
	objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
	objc_build_finally_prologue, objc_build_finally_epilogue,
	is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
	get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
	get_class_reference, get_static_reference, get_object_reference,
	build_message_expr, finish_message_expr, build_selector_expr,
	build_ivar_reference, build_keyword_decl, build_method_decl,
	build_protocol_expr, build_objc_string_object, objc_declare_alias,
	objc_declare_class, objc_declare_protocols, objc_comptypes,
	objc_check_decl, build_encode_expr): Remove prototypes.
	(imp_count, cat_count): Make GGC-aware.
	(OBJC_SET_TYPE_NAME): New macro.

From-SVN: r87168
2004-09-08 00:49:44 +00:00
H.J. Lu
e64dc64724 re PR bootstrap/17313 (fixinc.sh isn't parallel build safe)
2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/17313
	* Makefile.in (specs.ready): Depend on cc1$(exeext).

From-SVN: r87133
2004-09-06 16:58:14 -07:00
Zack Weinberg
93f8bd9e6e Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove unnecessary commands.
* Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
	unnecessary commands.

From-SVN: r87122
2004-09-06 18:37:21 +00:00
Mohan Embar
c802a85924 Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
* Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
	(bitmap.o): Likewise.

From-SVN: r87118
2004-09-06 14:48:43 +00:00
Paolo Bonzini
9f8628bacd Unify the management of RTL and tree-level dump files.
2004-09-06  Paolo Bonzini  <bonzini@gnu.org>

	Unify the management of RTL and tree-level dump files.

	* cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
	Don't print function name to the dump file, the pass manager
	would do this for us. Add code from the top of
	rest_of_compilation, up to the initial RTL dump.
	* passes.c (rest_of_handle_jump): Call fixup_tail_calls and
	close the DFI_sibling dump file.
	(rest_of_compilation): Don't do that here.  Remove code up to the
	initial RTL dump.
	(init_optimization_passes): Remove.
	(pass_rest_of_compilation): Change pass name to NULL.
	* toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
	Do not call init_optimization_passes.
	* toplev.h (init_optimization_passes): Remove.

	* graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
	finish_graph_dump_file): Remove SUFFIX parameter.
	* graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
	finish_graph_dump_file): Likewise.

	* tree-pass.h (struct tree_opt_pass): Add `letter' field.
	* cfgexpand.c (pass_expand): Adjust.
	* gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
	* passes.c (pass_rest_of_compilation): Adjust.
	* predict.c (pass_profile): Adjust.
	* tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
	* tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
	pass_split_crit_edges, pass_warn_function_return): Adjust.
	* tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
	* tree-dfa.c (pass_referenced_vars): Adjust.
	* tree-eh.c (pass_lower_eh): Adjust.
	* tree-if-conv.c (pass_build_ssa): Adjust.
	* tree-into-ssa.c (pass_build_ssa): Adjust.
	* tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
	* tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
	* tree-nrv.c (pass_nrv): Adjust.
	* tree-optimize.c (pass_gimple, pass_all_optimizations,
	pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
	pass_init_datastructures): Adjust.
	* tree-outof-ssa.c (pass_del_ssa): Adjust.
	* tree-profile.c (pass_tree_profile): Adjust.
	* tree-sra.c (pass_sra): Adjust.
	* tree-ssa-alias.c (pass_may_alias): Adjust.
	* tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
	* tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
	* tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
	* tree-ssa-dom.c (pass_dominator): Adjust.
	* tree-ssa-dse.c (pass_dse): Adjust.
	* tree-ssa-forwprop.c (pass_forwprop): Adjust.
	* tree-ssa-if-conv.c (pass_if_conversion): Adjust.
	* tree-ssa-loop-ch.c (pass_ch): Adjust.
	* tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
	pass_loop_done, pass_complete_unroll, pass_iv_canon,
	pass_iv_optimize, pass_vectorize): Adjust.
	* tree-ssa-phiopt.c (pass_phiopt): Adjust.
	* tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
	* tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
	pass_late_warn_uninnitialized): Adjust.
	* tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.

	* Makefile.in (tree-dump.o): Add new dependencies.
	* cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
	* cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
	Likewise.
	* toplev.c (dump_file_name): New.
	* tree-dump.c (dump_enable_all): Add LETTER parameter.
	(struct dump_file_info): Add NUM and LETTER fields.
	(dump_files): Adjust and add RTL dump files.
	(dump_register): Add NUM and LETTER fields.
	(get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
	(dump_begin): Use get_dump_file_name.
	(dump_switch_p_1): Adjust call to dump_enable_all.
	* tree-dump.h (dump_register): Adjust prototype.
	* tree-optimize.c (register_one_dump_file): Take dump file index.
	Support flags for RTL dumps.
	(register_dump_files): Fill in NUM field of struct dump_file_info.
	Track properties both when the gate is executed and when it is not.
	(execute_todo): Dump RTL.  Add PROPERTIES parameter.
	(execute_one_pass): Pass properties to execute_todo.  Handle VCG
	dumps of RTL.
	* tree-pass.h (dump_file_name): New.
	* tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
	New.

	* Makefile.in (passes.o): Add new dependencies.
	* passes.c (struct dump_file_info, enum dump_file_index,
	dump_file_tbl, init_optimization_passes): Remove.
	(open_dump_file, close_dump_file): Use tree-dumping infrastructure.
	(rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
	dump_enabled_p.
	(finish_optimization_passes): Update finish_graph_dump_file loop.
	(enable_rtl_dump_file): Remove.
	* tree-dump.c (dump_files): Adjust and add RTL dump files.
	(enable_rtl_dump_file): Add here.
	* tree.h (enum tree_dump_index): Add RTL dump file indices.
	* doc/invoke.texi (Debugging options): Document new RTL debugging
	options.  Update.

From-SVN: r87113
2004-09-06 10:08:17 +00:00
Zdenek Dvorak
8b11a64cd9 tree-ssa-loop-ivopts.c: New file.
* tree-ssa-loop-ivopts.c: New file.
	* Makefile.in (tree-ssa-loop-ivopts.c): Add.
	* cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
	target_pres_cost, target_spill_cost): Declare.
	* cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
	spill_cost): Renamed to ...
	(target_avail_regs, target_res_regs, target_small_cost,
	target_pres_cost, target_spill_cost): ... and exported.
	(init_set_costs, global_cost_for_size): Work with renamed variables.
	* common.opt (flag_ivopts): New flag.
	* expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
	REF_ORIGINAL.
	* gimplify.c (struct gimplify_ctx): Add into_ssa field.
	(internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
	generating SSA form.
	(force_gimple_operand): New function.
	* timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
	* tree-cfg.c (stmt_bsi): New function.
	* params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
	PARAM_IV_MAX_CONSIDERED_USES): New.
	* tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
	bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
	ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
	* tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
	* tree-nested.c (build_addr): Export.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_iv_optimize.
	* tree-pass.h (pass_iv_optimize): Declare.
	* tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
	IMAGPART_EXPR.
	* tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
	as a phi node argument.
	(split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
	ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
	functions.
	* tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
	* tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
	pass_iv_optimize): New pass.
	* tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
	* tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
	* tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
	* tree.h (REF_ORIGINAL): New macro.
	(build_int_cst_type, unsigned_type_for, zero_p,
	cst_and_fits_in_hwi, build_addr): Declare.
	* doc/invoke.texi (-fivopts): Document.
	(PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
	PARAM_IV_MAX_CONSIDERED_USES): Document.
	* doc/passes.texi: Document induction variable optimizations pass.

	* gcc.dg/tree-ssa/loop-2.c: New test.
	* gcc.dg/tree-ssa/loop-3.c: New test.
	* gcc.dg/tree-ssa/loop-4.c: New test.
	* gcc.dg/tree-ssa/loop-5.c: New test.

From-SVN: r87100
2004-09-05 09:25:37 +00:00
Devang Patel
40923b202d Tree level if-conversion for vectorizer.
* Makefile.in (OBJS-common): Add tree-if-conv.o
        (tree-if-conv.o): New rule.
        * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
        (get_loop_body_in_bfs_order): New.
        * cfgloop.h (get_loop_body_in_bfs_order): New.
        * tree-flow.h (enum move_pos): Move here from ..
        * tree-ssa-loop-im.c (enum move_pos): here.
        (movement_possibility): Make externally visible.
        * tree-optimize.c (init_tree_optimization_passes): New entry for
        if conversion pass.
        * tree-pass.h (pass_if_conversion): New.
        * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
        * tree-if-conv.c: New file.
        * doc/passes.texi: Document tree if-conversion pass.
        * doc/tree-ssa.texi: Same.

        testsuite:

        * gcc.dg/tree-ssa/ifc-20040816-1.c: New test.
        * gcc.dg/tree-ssa/ifc-20040816-2.c: New test.

From-SVN: r87073
2004-09-03 20:27:01 -07:00
H.J. Lu
443728bba4 re PR target/14925 (libunwind enabled gcc generates incompatible libgcc_s.so.1)
2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/14925:
	Makefile.in (LIB2ADDEHSTATIC): New.
	(LIB2ADDEHSHARED): New.
	(LIBUNWIND): New.
	(LIBUNWINDDEP): New.
	(SHLIBUNWIND_LINK): New.
	(SHLIBUNWIND_INSTALL): New.
	(libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
	LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
	(clean): Remove libunwind*
	(stage1-start): Remove and copy stage1/libunwind*.
	(stage2-start): Remove and copy stage2/libunwind*.
	(stage3-start): Remove and copy stage3/libunwind*.
	(stage4-start): Remove and copy stage4/libunwind*.
	(stageprofile-start): Remove and copy stageprofile/libunwind*.
	(stagefeedback-start): Remove and copy stagefeedback/libunwind*.

	* config.gcc (ia64*-*-linux*): Always add t-libunwind to
	tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
	tmake_file if --with-system-libunwind isn't used.

	* config/ia64/t-glibc-libunwind: New file.
	* config/t-libunwind-elf: Likewise.
	* unwind-compat.c: Likewise.
	* unwind-compat.h: Likewise.
	* unwind-dw2-fde-compat.c: Likewise.

	* config/ia64/t-glibc (LIB2ADDEH): Updated.
	* config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.

	* config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
	aliases if needed.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-dw2.c: Likewise.

	* config/t-libunwind (LIB2ADDEH): Updated.
	(LIB2ADDEHSTATIC): New.
	(T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
	(TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.

	* configure.ac: Change --enable-libunwind-exceptions to
	--with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
	* configure: Regenerated.
	* config.in: Updated.

	* doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
	above and mention --with-system-libunwind.
	(ia64-*-hpux*): Mention --enable-libunwind-exceptions is
	removed in gcc 3.4.3 and later.

	* gcc.c (init_spec): Add -lunwind to -lgcc_s if
	USE_LIBUNWIND_EXCEPTIONS is defined.

	* mklibgcc.in: Support libunwind.

From-SVN: r87066
2004-09-03 17:15:42 -07:00
Richard Henderson
1f6d3a0807 re PR middle-end/9997 (Coelesce stack slots for disjoint scopes.)
PR middle-end/9997
        * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
        (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
	(struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
        stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
        frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
        resize_stack_vars_conflict, add_stack_var_conflict,
        stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
        union_stack_vars, partition_stack_vars, dump_stack_var_partition,
        expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
        expand_one_static_var, expand_one_hard_reg_var,
        expand_one_register_var, expand_one_error_var, defer_stack_allocation,
        expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
        (expand_used_vars): Rewrite.
        * Makefile.in (cfgexpand.o): Update dependencies.

From-SVN: r87064
2004-09-03 16:50:11 -07:00
Jan Beulich
7f148c2ff9 Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
* Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
        * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
        not unwind code specific ones.
        (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
        Remove unwind code specific dependencies.
        (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
        Remove gbl-ctors.h.
        Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
        LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.

From-SVN: r87026
2004-09-02 22:26:27 -07:00
Jan Hubicka
0772402279 gimplify.c (gimplify_compound_lval): Move "stack" varray out of GGC.
* gimplify.c (gimplify_compound_lval): Move "stack" varray out of
	GGC.

	* ggc-page.c: include tree-flow.h.
	(extra_order_size_table): Add stmt_ann_d.
	(STAT_LABEL): Rename from ....
	(LABEL): ... this one.
	* Makefile.in (ggc-page.o): Add dependency.

	* ggc-common.c (ggc_force_collect): New global variable.
	(loc_description): Add fields "freed", "collected"
	(ptr_hash): New static hash
	(ptr_hash_entry): New structure.
	(hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
	(ggc_record_overhead): Take ptr argument, record it
	(ggc_prune_overhead_list, ggc_free_overhead): New functions.
	(cmp_statistics): Imrove sorting.
	(dump_ggc_loc_statistics): Output newly collected statistics
	* ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
	(ggc_free): Call ggc_free_overhead.
	(ggc_collect): Force collection when asked to be forced.
	(ggc_collect): Call ggc_prune_overhead_list.
	* ggc.h (ggc_force_collect): Declare
	(ggc_record_overhead): Update prototype.
	(ggc_free_overhead, ggc_prune_overhead_list): Declare.

From-SVN: r86974
2004-09-02 18:32:49 +00:00
Zdenek Dvorak
6d9901e75f Makefile.in (rtl-profile.o, [...]): Add GCC_H dependency.
* Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
	* common.opt (fspeculative-prefetching): New.
	* flags.h (flag_speculative_prefetching_set): Declare.
	* gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
	values.
	* opts.c (flag_sepculative_prefetching_set): New variable.
	(common_handle_option): Handle -fspeculative-prefetching.
	* passes.c (rest_of_compilation): Ditto.
	* profile.c (instrument_values, compute_value_histograms, branch_prob):
	Use vectors instead of arrays.
	* toplev.c (process_options): Handle -fspeculative-prefetching.
	* rtl-profile.c: Include ggc.h.
	(rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
	rtl_gen_one_value_profiler_no_edge_manipulation,
	rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
	argument changed.
	* tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
	tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
	argument changed.
	* value-prof.c: Include ggc.h.
	(NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
	macros.
	(insn_prefetch_values_to_profile, find_mem_reference_1,
	find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
	speculative_prefetching_transform): New.
	(value_profile_transformations): Call speculative_prefetching_transform.
	(insn_values_to_profile): Call insn_prefetch_values_to_profile.
	(insn_divmod_values_to_profile, rtl_find_values_to_profile,
	tree_find_values_to_profile, find_values to profile): Use vectors
	instead of arrays.
	(free_profiled_values): Removed.
	* value-prof.h (struct histogram_value): Renamed to
	struct histogram_value_t.
	(histogram_value, histogram_values): New types.
	(find_values_to_profile): Declaration changed.
	(free_profiled_values): Removed.
	(struct profile_hooks): Type of argument of the hooks changed to
	histogram_value.
	* doc/invoke.texi (-fspeculative-prefetching): Document.

From-SVN: r86930
2004-09-01 20:58:55 +00:00
Jakub Jelinek
a5d8b097a4 * Makefile.in (bb-reorder.o): Add several dependencies.
From-SVN: r86913
2004-09-01 19:12:34 +02:00
Paolo Bonzini
71b5d516bc Made fixincludes a toplevel build module.
toplevel:
2004-08-31  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.def (build_modules): Add fixincludes.
	(dependencies): Make gcc depend on fixincludes.
	* configure.in (build_tools): Add fixincludes.
	(build_configdirs): Always include build_libs.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

contrib:
2004-08-04  Paolo Bonzini  <bonzini@gnu.org>

	* gcc_update: Add fixincludes.

fixincludes:
2004-08-31  Paolo Bonzini  <bonzini@gnu.org>

	* .cvsignore: New.
	* Makefile.in: From gcc/fixinc/Makefile.in, making it fully
	autoconfiscated.
	* configure.ac: New.
	* config.h.in: Generate.
	* configure: Generate.
	* aclocal.m4: New.
	* fixlib.h: Remove inclusions of gcc files.
	* system.h: New.

	Other files copied from gcc/fixinc.

gcc:
2004-08-31  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (build_subdir): New substitution.
	(fixinc.sh): Simplify heavily since fixincludes is already built.
	(stmp-fixinc): Depend on specs.ready.
	(install-mkheaders): Use new location of fixincludes.
	(clean): Do not descend into fixinc.
	(FORBUILD): Replace with ../$(build_subdir).
	* configure.ac (build_subdir): Substitute.
	(FORBUILD): Do not set.
	(all_outputs): Remove fixinc/Makefile.
	(default commands): Do not create links in fixinc.
	* mkfixinc.sh: New, from fixinc/mkfixinc.sh without
	the fixincludes configuration steps and substituting
	@FIXINCL@ in fixinc.in.
	* fixinc.in: New, from fixinc/fixincl.sh.

	* fixinc/*: Removed.

From-SVN: r86824
2004-08-31 09:27:00 +00:00