Commit Graph

52 Commits

Author SHA1 Message Date
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
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
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
Jan Beulich 467cecf3b8 re PR c/7054 (#pragma pack handled incorrectly)
PR c/7054
        * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
        * tree.h (initial_max_fld_align): Declare
        * stor-layout.c (initial_max_fld_align): Define and initialize.
        (maximum_field_alignment): Initialize to the same value.
        * common.opt: Add -fpack-struct= variant of switch.
        * opts.c: Handle -fpack-struct= variant of switch.
        * c-pragma.c: Change #pragma pack() handling so that it becomes
        compatible to other compilers: accept individual 'push' argument,
        make final pop restore (command line) default, correct interaction
        of push/pop and sole specification of a new alignment (so that the
        sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
        to #pragma pack(push, <n>).
        * doc/extend.texi: New node "Structure-Packing Pragmas" under
        "Pragmas", describing #pragma pack.
        * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
        * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
        Document new TARGET_DEFAULT_PACK_STRUCT.
testsuite:
        * gcc.dg/pack-test-2.c: Adjust to permit and check #pragma pack(push).
        * gcc.dg/c99-flex-array-4.c: Add -fpack-struct=8 to provide a
        deterministic starting point for the alignment of structure fields.
        * gcc.dg/Wpadded.c: Dito.
        * g++.dg/abi/vbase10.C: Dito.

From-SVN: r87037
2004-09-03 10:22:40 -07:00
Daniel Berlin 1b08d87d34 common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to tree-loop-im.
2004-09-02  Daniel Berlin  <dberlin@dberlin.org>

	* gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
	tree-loop-im.
	* gcc/tree-ssa-loop.c: Ditto
	* gcc/tree-ssa-loop-ivcanon.c: Ditto
	* gcc/doc/invoke.texi: Ditto.

From-SVN: r87023
2004-09-03 02:19:40 +00:00
James E Wilson 10060b8391 Enable -ftrapping-math by default.
* common.opt (ftrapping-math): Default to on.

From-SVN: r86972
2004-09-02 11:12:05 -07: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
Zdenek Dvorak 82b85a85c8 tree-ssa-loop-ivcanon.c: New file.
* tree-ssa-loop-ivcanon.c: New file.
	* tree-ssa-loop-manip.c (create_iv): New function.
	* Makefile.in (tree-ssa-loop-ivcanon.o): Add.
	(tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
	* cfgloop.c (mark_single_exit_loops): New function.
	(verify_loop_structure): Verify single-exit loops.
	* cfgloop.h (struct loop): Add single_exit field.
	(LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
	(mark_single_exit_loops): Declare.
	(tree_num_loop_insns): Declare.
	* cfgloopmanip.c (update_single_exits_after_duplication): New function.
	(duplicate_loop_to_header_edge): Use it.
	* common.opt (fivcanon): New flag.
	* timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
	* tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
	(bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
	(bsi_insert_on_edge_immediate): New function.
	* tree-flow.h (bsi_insert_on_edge_immediate,
	canonicalize_induction_variables, tree_unroll_loops_completely,
	create_iv): Declare.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_iv_canon and pass_complete_unroll.
	* tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
	* tree-scalar-evolution.c (get_loop_exit_condition,
	get_exit_conditions_rec, number_of_iterations_in_loop,
	scev_initialize): Use single_exit information.
	* tree-ssa-loop-niter.c (number_of_iterations_cond): Record
	missing assumptions.
	(loop_niter_by_eval):  Return number of iterations as unsigned
	int.
	* tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
	(tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
	tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
	New passes.
	(tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
	* tree-ssanames.c (make_ssa_name): Allow creating ssa name before
	the defining statement is ready.
	* tree-vectorizer.c (vect_create_iv_simple): Removed.
	(vect_create_index_for_array_ref, vect_transform_loop_bound):
	Use create_iv.
	(vect_transform_loop_bound): Use single_exit information.
	(vect_analyze_loop_form): Cleanup bogus tests.
	(vectorize_loops): Do not call flow_loop_scan.
	* tree.h (may_negate_without_overflow_p): Declare.
	* fold-const.c (may_negate_without_overflow_p): Split out from ...
	(negate_expr_p): ... this function.
	(tree_expr_nonzero_p): Handle overflowed constants correctly.
	* doc/invoke.texi (-fivcanon): Document.
	* doc/passes.texi: Document canonical induction variable creation.

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

From-SVN: r86516
2004-08-24 20:48:23 +00:00
Dorit Naishlos 79fe1b3bd0 tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE trees.
* tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE trees.
        * tree-vectorizer.h: New File: Same.
        * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
        * common.opt (ftree-vectorize): New flag to enable vectorization.
        * timevar.def (TV_TREE_VECTORIZATION): New dump file for vectorization
        pass.
        * tree-data-ref.h (init_data_ref): Additional argument.
        (array_base_name_differ_p): Moved to tree-data-ref.c.
        * tree-data-ref.c (array_base_name_differ_p): Revised.
        (initialize_data_dependence_relation): Call array_base_name_differ_p
        with an extra argument.
        (analyze_all_data_dependences): Same.
        (init_data_ref): Additional argument is_read to set DR_IS_READ.
        * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this file.
        * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
        * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
        * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
        vectorization pass.
        * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
        (tree_ssa_loop_done): Call scev_finalize.
        (tree_vectorize): Define the new vectorization pass.
        * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the size of
        the vector they support (until support for multiple vector sizes is
        added to the vectorizer).
        * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
        * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
        * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
        documentation.

From-SVN: r86131
2004-08-17 16:17:14 +00:00
Mostafa Hagog d72372e46a common.opt (freschedule-modulo-scheduled-loops): New flag.
2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
	Ayal Zaks <zaks@il.ibm.com>

	* common.opt (freschedule-modulo-scheduled-loops): New flag.
	* final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
	* modulo-sched.c (sms_schedule): Emit a note to disable scheduling
	when -freschedule-modulo-scheduled-loops flag is not specified.
	(sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
	add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
	More accurate placing of insn in row of partial schedule.
	(ps_insn_find_column): New function.
	* rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
	* sched-rgn.c (sched_is_disabled_for_current_region_p): New.
	(schedule_region): Use sched_is_disabled_for_current_region_p.
	* docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.

Co-Authored-By: Ayal Zaks <zaks@il.ibm.com>

From-SVN: r85696
2004-08-08 21:35:53 +00:00
Niall Douglas d7afec4b07 re PR c++/9283 (__attribute__((visibility ("hidden"))) not supported for class/struct)
PR c++/9283
	PR c++/15000
	* c-common.c (c_common_attribute_table): Allow
	handle_visibility_attribute to be called for types.
	(handle_visibility_attribute) When given a type, set the visibility
	bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
	so that we can check later whether the attribute was present. Added
	warning if attribute applied to non class type.
	* c-decl.c (diagnose_mismatched_decls): Updated rules for merging
	decls and checking that they are consistent.
	* common.opt: Added -fvisibility.
	* c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
	* c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
	* flags.h, tree.h: Added assorted support defines for overall patch
	* opts.c: Added parsing support for -fvisibility.
	* tree.c (build_decl): Set visibility for all decls to be whatever
	is in force at that time.
	* varasm.c (default_binds_local_p_1): Reworked logic determining
	when to make a symbol locally bound.
	* doc/invoke.texi: Added documentation for -fvisibility and
	-fvisibility-inlines-hidden.

	PR c++/15000
	PR c++/9283
	* class.c (check_field_decls): Apply hidden visibility if
	-fvisibility-inlines-hidden and inlined unless otherwise specified
	(build_vtable): Set vtable visibility to class visibility.
	(check_field_decls): Default static member visibility to class
	visibility.
	(check_methods): Default method visibility to class visibility.
	* cp-tree.h: Added CLASSTYPE_VISIBILITY and
	CLASSTYPE_VISIBILITY_SPECIFIED macro.
	* decl.c (duplicate_decls): New logic for merging definition decls
	with declaration decls. Added ignore & warning when non default
	applied to global operator new or delete.
	* method.c, optimize.c, rtti.c: Added setting of VISIBILITY_SPECIFIED
	wherever VISIBILITY was changed
	* rtti.c (get_tinfo_decl): Set typeinfo visibility to class
	visibility.
	(tinfo_base_init): Set typeinfo name visibility to class visibility.

	PR c++/9283
	PR c++/15000
	* gcc.dg/visibility-9.c, gcc.dg/visibility-a.c: New tests.
	* g++.dg/ext/visibility/: New directory.
	* g++.dg/ext/visibility-1.C, g++.dg/ext/visibility-2.C
	g++.dg/ext/visibility-3.C, g++.dg/ext/visibility-4.C,
	g++.dg/ext/visibility-5.C, g++.dg/ext/visibility-6.C,
	g++.dg/ext/visibility-7.C: Move to g++.dg/ext/visibility/.
	* g++.dg/ext/visibility/fvisibility.C,
	g++.dg/ext/visibility/fvisibility-inlines-hidden.C,
	g++.dg/ext/visibility/fvisibility-override1.C
	g++.dg/ext/visibility/fvisibility-override2.C
	g++.dg/ext/visibility/memfuncts.C
	g++.dg/ext/visibility/noPLT.C
	g++.dg/ext/visibility/pragma.C
	g++.dg/ext/visibility/pragma-override1.C
	g++.dg/ext/visibility/pragma-override2.C
	g++.dg/ext/visibility/staticmemfuncts.C
	g++.dg/ext/visibility/virtual.C: New tests.

Co-Authored-By: Brian Ryner <bryner@brianryner.com>

From-SVN: r85167
2004-07-25 22:52:22 +00:00
Zdenek Dvorak a7e5372d6a tree-ssa-loop-im.c: New file.
* tree-ssa-loop-im.c: New file.
	* Makefile.in (tree-ssa-loop-im.o): Add.
	* cfgloop.c (superloop_at_depth): New function.
	* cfgloop.h (superloop_at_depth): Declare.
	* common.opt (ftree-lim): New flag.
	* expr.c (array_ref_up_bound): New function.
	* params.def (PARAM_LIM_EXPENSIVE): New parameter.
	* timevar.def (TV_LIM): New timevar.
	* tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
	computing immediate uses of a phi node.
	* tree-flow.h (struct tree_ann_common_d): Add aux field.
	(loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
	* tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
	* tree-pass.h (pass_lim): Declare.
	* tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
	functions.
	(pass_lim): New pass structure.
	* tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
	* tree.c (in_array_bounds_p): New function.
	* tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
	(in_array_bounds_p, array_ref_up_bound): Declare.
	* doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
	* doc/passes.texi (tree-ssa-loop-im.c): Document.

From-SVN: r84441
2004-07-10 04:57:58 +00:00
Kelley Cook 31b66477d0 flags.h: Delete redundant prototypes that are being generated in options.h from common.opt.
2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>

	* flags.h: Delete redundant prototypes that are being generated
	in options.h from common.opt.
	* common.opt: Add in the expository comments formerly in flags.h.

From-SVN: r84432
2004-07-10 02:06:36 +00:00
Zdenek Dvorak c66b6c6689 common.opt (ftree-loop-optimize): New flag.
* common.opt (ftree-loop-optimize): New flag.
	* tree-flow.h (kill_redundant_phi_nodes): Declare.
	* tree-optimize.c (init_tree_optimization_passes): Add pass_loop.
	* tree-pass.h (pass_loop_init, pass_loop_done): Declare.
	* tree-ssa-loop.c (current_loops): New variable.
	(tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init,
	tree_ssa_loop_done): New functions.
	(pass_loop, pass_loop_init, pass_loop_done): New passes.
	* tree-ssa.c (kill_redundant_phi_nodes): Export.
	* doc/invoke.texi (-ftree-loop-optimize): Document.

From-SVN: r83933
2004-06-30 21:29:00 +00:00
Diego Novillo ff2ad0f77f common.opt (ftree-fre): New flag.
* common.opt (ftree-fre): New flag.
	* flags.h (flag_tree_fre): Declare.
	* opts.c (decode_options): Set.
	* timevar.def (TV_TREE_FRE): Define.
	* tree-flow-inline.h (may_propagate_copy): Re-arrange for
	readability.  Handle destinations that are not SSA_NAMEs.
	* tree-flow.h (struct ptr_info_def): Move from tree.h
	(cprop_into_stmt, cprop_into_successor_phis): Remove.
	(vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
	vuse_optype parameter.
	* tree-pass.h (pass_fre): Declare.
	* tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
	(cprop_into_stmt): Likewise.
	(cprop_into_successor_phis): Likewise.
	* tree-ssa-dom.c (eliminate_redundant_computations): Fix
	argument ordering in call to may_propagate_copy.
	* tree-ssa-pre.c (is_undefined_value): Assume hard registers
	to be always defined.
	(add_to_sets): New local function.
	(create_value_expr_from): New local function.
	(compute_avail): Call them.
	(eliminate): Don't ignore statements with virtual operands.
	(init_pre): New local function.
	(fini_pre): New local function.
	(execute_pre): Call them.
	Add argument DO_FRE.  Don't do insertion if DO_FRE is true.
	(do_pre): New function.
	(do_fre): New function.
	(gate_fre): New function.
	(pass_fre): Declare.
	* tree-ssa.c (init_tree_ssa): Don't call vn_init.
	(delete_tree_ssa): Don't call vn_delete.
	* tree-vn.c (val_expr_pair_d): Add documentation.
	(vn_compute): Add VUSES argument to incorporate in computing
	hash values.  Update all callers.
	(expressions_equal_p): Call operand_equal_p with
	OEP_PURE_SAME.
	(vn_add): Add VUSES argument.  Update all callers.
	(vn_lookup): Likewise.
	(vn_lookup_or_add): Likewise.
	* doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.

From-SVN: r83837
2004-06-28 21:53:04 -04:00
Zdenek Dvorak 5e96277660 loop-invariant.c: New file.
* loop-invariant.c: New file.
	* Makefile.in (loop-invariant.o): New.
	* cfgloop.h (global_cost_for_size, init_set_costs,
	move_loop_invariants): Declare.
	* cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
	functions.
	(avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
	variables.
	* common.opt (floop-optimize2, fmove-loop-invariants): New options.
	* loop-init.c (loop_optimizer_init): Call init_set_costs.
	* passes.c (rest_of_handle_loop2): Call move_loop_invariants.
	(rest_of_compilation): Check flag_loop_optimize2.
	* toplev.c (process_options): Handle flag_loop_optimize2.
	* doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
	* doc/passes.texi (loop-invariant.c): Document.

From-SVN: r83419
2004-06-20 21:31:32 +00:00
Zdenek Dvorak 50431bc428 Makefile.in (FLAGS_H): New.
* Makefile.in (FLAGS_H): New.
	(flags.h): Replace by FLAGS_H.
	* c.opt: Document Var, VarExists, Init and Report attributes.
	* common.opt: Fill the values of the attributes.
	* diagnostic.c (flag_fatal_errors): Do not define.
	* except.c (flag_non_call_exceptions): Do not define.
	* flags.h: Include options.h.  Remove declarations conflicting with
	the automatically defined ones.
	* opts.c: Remove automatically defined variables.
	(handle_option): Perform default initialization.
	(common_handle_option): Do not handle options covered by the
	default initialization.
	* opts.h (struct cl_option): Add flag_var, has_set_value and set_value
	fields.
	(CL_REPORT): New.
	* opts.sh: Generate variable declarations, handle CL_REPORT.
	* toplev.c: Remove automatically defined variables.
	(f_options): Removed.
	(print_switch_values): Use cl_options instead of f_options.
	* toplev.h (version_flag): Declaration removed.

From-SVN: r83105
2004-06-14 14:18:01 +00:00
Ayal Zaks e56261981b ddg.h, [...]: New files.
* ddg.h, ddg.c, modulo-sched.c: New files.
 	* cfglayout.c (duplicate_insn_chain): Remove "static" and push
 	internals to "dupicate_insn".
 	(duplicate_insn): New function.
 	* cfglayout.h (duplicate_insn_chain, duplicate_insn): New
 	declarations.
 	* common.opt (fmodulo-sched): New flag.
 	* df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
 	Remove static and forward declaration.
 	(df_find_def, df_reg_used, df_bb_regno_last_def_find): New
 	functions.
 	* df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
 	df_bb_regno_last_def_find, df_find_def, df_reg_used): New
 	declarations.
 	* flags.h (flag_modulo_sched): New flag.
 	* opts.c (common_handle_option): Handle modulo-sched flag.
 	* params.def (max-sms-loop-number, sms-max-ii-factor,
 	sms-dfa-history, sms-loop-average-count-threshold): New
 	parameters.
	* params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
 	SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
 	parameters.
 	* passes.c ("sms", "sms-vcg"): New dumps.
 	(rest_of_handle_sched): Call sms_schedule.
 	* rtl.h (sms_schedule): New declaration.
 	* timevar.def (TV_SMS): New.
 	* toplev.c (flag_modulo_sched): Initialize.
 	(f_options): Handle -fmodulo-sched option.
 	* docs/invoke.texi: Document -fmodulo-sched & -dm options.
 	* docs/passes.texi: Document new SMS pass.f toplev.c doc/invoke.texi doc/passes.texi

Co-Authored-By: Mostafa Hagog <mustafa@il.ibm.com>

From-SVN: r82235
2004-05-25 12:55:06 +00:00
Andrew Pinski b8850dd246 common.opt (ftree-loop-optimize): Remove.
2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>

        * common.opt (ftree-loop-optimize): Remove.

From-SVN: r82069
2004-05-20 14:44:47 -07:00
Diego Novillo 6de9cd9a88 Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
2004-05-13 02:41:07 -04:00
Richard Guenther c65a01af06 Patch from Richard Guenther.
* commom.opt (Wfatal-errors): Add it.
* diagnostic.c (flag_fatal_errors): Define it.
(diagnostic_action_after_output): Check for flag_fatal_errors.
* flags.h (flag_fatal_errors): Declare it.
* opts.c (common_handle_option): Add OPT_Wfatal_errors.
* doc/invoke.texi (Warning Options): Document -Wfatal-errors.

From-SVN: r81323
2004-04-29 22:29:23 -07:00
Caroline Tice 750054a2ee basic-block.h (struct edge_def): Add new field, crossing_edge.
2004-04-09  Caroline Tice  <ctice@apple.com>

        * basic-block.h (struct edge_def):  Add new field, crossing_edge.
        (struct basic_block_def):  Add new field, partition.
        (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
        definitions.
        (partition_hot_cold_basic_blocks): Add extern function
        declaration.
        * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
        include statements.
        (N_ROUNDS): Increase the maximum number of rounds by 1.
        (branch_threshold): Add array value for new round.
        (exec_threshold): Add array value for new round.
        (push_to_next_round_p): New function.
        (add_unlikely_executed_notes): New function.
        (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
        (mark_bb_for_unlikely_executed_section): New function.
        (add_labels_and_missing_jumps): New function.
        (add_reg_crossing_jump_notes): New function.
        (fix_up_fall_thru_edges): New function.
        (find_jump_block): New function.
        (fix_crossing_conditional_branches): New function.
        (fix_crossing_unconditional_branches): New function.
        (fix_edges_for_rarely_executed_code): New function.
        (partition_hot_cold_basic_blocks): New function.
        (find_traces):  Add an extra round for partitioning hot/cold
        basic blocks.
        (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
        and only cold blocks, into the last (extra) round of collecting traces.
        (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
        over crossing edges.
        (bb_to_key):  Add code to correctly identify cold blocks when
        doing partitioning.
        (connect_traces): Modify to connect all the non-cold traces first, then
        go back and connect up all the cold traces.
        (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
        * cfg.c (entry_exit_blocks): Add initialization for partition field in
        entry and exit blocks.
        * cfgbuild.c (make_edges): Update current_function_has_computed_jump
        if we are doing hot/cold partitioning.
        * cfgcleanup.c (cfglayout.h): Add new include statement.
        (try_simplify_condjump): Modify to not attempt on blocks with jumps
        that cross section boundaries.
        (try_forward_edges): Likewise.
        (merge_blocks_move_predecessor_nojumps): Likewise.
        (merge_blocks_move_successor_nojumps): Likewise.
        (merge_blocks_move): Likewise.
        (try_crossjump_to_edge): Modify to not attempt after we have done
        the block partitioning.
        (try_crossjump_bb): Modify to not attempt on blocks with jumps that
        cross section boundaries.
        (try_optimize_cfg): Likewise.
        * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
        jumps that cross section boundaries.
        * cfglayout.c (flags.h): Add new include statement.
        (update_unlikely_executed_notes):  New function.
        (fixup_reorder_chain):  Add code so when a new jumping basic block is
        added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
        updated appropriately.
        (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
        introduced by this optimization.
        * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
        extern function declaration.
        * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
        list of notes that can be deleted.
        (create_basic_block_structure):  Add initialization for partition field.
        (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
        section boundaries.
        (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
        cross section boundaries.
        (commit_one_edge_insertion): Add code so newly created basic block
        ends up in correct (hot or cold) section.  Modify to disallow
        insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
        (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
        crosses section boundaries.
        (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
        cross section boundaries.
        (force_nonfallthru_and_redirect): Modify to make sure new basic block
        ends up in correct section, with correct notes attached.
        * common.opt (freorder-blocks-and-partition):  Add new flag for this
        optimization.
        * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
        the end of functions are written into the correct (hot or cold)
        section.
        (dbx_source_file): Add code so writing debug file information
        doesn't incorrectly change sections.
        * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
        in partitioning hot/cold basic blocks into separate sections.
        (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
        section partitioning.
        (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
        conditional branches can span all of memory.
        (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
        unconditional branches can span all of memory.
        * final.c (scan_ahead_for_unlikely_executed_note):  New function.
        (final_scan_insn):  Add code to check for NOTE instruction indicating
        whether basic block belongs in hot or cold section, and to make sure
        the current basic block is being written to the appropriate section.
        Also added code to ensure that jump table basic blocks end up in the
        correct section.
        * flags.h (flag_reorder_blocks_and_partition):  New flag.
        * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
        one of the branches has a jump that crosses between sections.
        (find_if_case_2): Likewise.
        (ifcvt): Modify to not attempt to mark loop exit edges after
        hot/cold partitioning has occurred.
        * opts.c (decode_options): Code to handle new flag,
        flag_reorder_blocks_and_partition; also to turn it off if
        flag_exceptions is on.
        (common_handle_option): Code to handle new flag,
        flag_reorder_blocks_and_partition.
        * output.h (unlikely_text_section): New extern function declaration.
        (in_unlikely_text_section): New extern function declaration.
        * passes.c (rest_of_handle_stack_regs):  Add
        flag_reorder_blocks_and_partition as an 'or' condition for calling
        reorder_basic_blocks.
        (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
        as an 'or' condition for calling reorder_basic_blocks.
        (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
        * print-rtl.c (print_rtx): Add code for handling new note,
        NOTE_INSN_UNLIKELY_EXECUTED_CODE
        * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
        (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
        cross between section boundaries.
        * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
        indicating the basic block containing it belongs in the cold section.
        (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
        between hot and cold sections.
        * toplev.c (flag_reorder_blocks_and_partition):  Add code to
        initialize this flag, and to tie it to the command-line option
        freorder-blocks-and-partition.
        * varasm.c (cfglayout.h):  Add new include statement.
        (unlikely_section_label_printed):  New global variable, used for
        determining when to output section name labels for cold sections.
        (in_section):  Add in_unlikely_executed_text to enum data structure.
        (text_section):  Modify code to use SECTION_FORMAT_STRING and
        NORMAL_TEXT_SECTION_NAME macros.
        (unlikely_text_section):  New function.
        (in_unlikely_text_section):  New function.
        (function_section):  Add code to make sure beginning of function is
        written into correct section (hot or cold).
        (assemble_start_function):  Add code to make sure stuff is written to
        the correct section.
        (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
        to an if statement that was checking 'in_text_section'.
        (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
        condition to an if statement that was checking 'in_text_section'.
        (default_section_type_flags_1):  Add check: if in cold section
        flags = SECTION_CODE.
        * config/darwin.c (darwin_asm_named_section):  Modify to use
        SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
        * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
        specifically for the i386.
        (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
        * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
        text string to something more informative.
        (NORMAL_TEXT_SECTION_NAME): Add new definition.
        (SECTION_FORMAT_STRING):  Add new definition.
        * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
        '!in_unlikely_text_section' as an 'and' condition to an if statement
        that was already checking '!in_text_section'.
        * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
        UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
        sure these are properly defined for linux on ppc.
        * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
        for this new flag.
        * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
        reg_note.
        * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
        HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
        these new macros.

From-SVN: r80564
2004-04-09 12:57:47 -07:00
James E Wilson 5399d64368 New option -Wstrict-aliasing=2.
* alias.c (alias_sets_might_conflict_p): New.
	* c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
	* common.opt (Wstrict-aliasing=): New.
	* flags.h (warn_strict_aliasing): Change type to int.
	* opts.c (warn_strict_aliasing): Change type to int.
	(common_handle_option): Handle OPT_Wstrict_aliasing_.
	* tree.h (alias_sets_might_conflict_p): Declare it.
	* doc/invoke.tex (-Wstrict-aliasing=2): Document it.

From-SVN: r79222
2004-03-09 22:02:55 -08:00
Mostafa Hagog f9957958fe common.opt: Add description of the new -fgcse-after-reload flag.
2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>

        * common.opt: Add description of the new -fgcse-after-reload flag.

        * flags.h (flag_gcse_after_reload): Declaration of global variable.

        * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
        reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
        is_jump_table_basic_block, bb_has_well_behaved_predecessors,
        get_bb_avail_insn, hash_scan_set_after_reload,
        compute_hash_table_after_reload, eliminate_partially_redundant_loads,
        gcse_after_reload, get_bb_avail_insn): New functions to implement
        gcse-after-reload.
        (gcse_after_reload_main): New function, the main entry point to
        gcse-after-reload.

        * rtl.h (gcse_after_reload_main): Declaration of the new function.

        * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.

        * toplev.c (flag_gcse_after_reload): Initialization.

        * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.

        * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
        PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
        the gcse after reload optimization.

        * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
        GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
        parameters.

        * doc/invoke.texi: Documentation for the new flag gcse-after-reload.

From-SVN: r78842
2004-03-03 11:32:45 -05:00
Zack Weinberg 3521b33c2f Remove -fwritable-strings.
gcc/
	Remove -fwritable-strings.
	* c-common.c (fix_string_type): Don't check
	flag_writable_strings.
	(fix_string_type): Likewise.
	* c-opts.c (set_std_c89): Don't initialize
	flag_writable_strings.
	(set_std_c99): Likewise.
	* common.opt (fwritable-strings): Remove.
	* flags.h: Remove the external declaration of
	flag_writable_strings.
	* opts.c (common_handle_option) <OPT_fwritable_strings>:
	Remove.
	* toplev.c (flag_writable_strings): Remove.
	(f_options): Remove an entry for writable-strings.
	* varasm.c (const_hash_1) <STRING_CST>: Don't check
	flag_writable_strings.
	(compare_constant) <STRING_CST>: Likewise.
	(build_constant_desc): Likewise.
	* config/darwin.c (machopic_select_section): Likewise.
	* config/arm/arm.c (AOF_ASSEMBLER): Likewise.
	* config/arm/pe.c (arm_pe_encode_section_info): Likewise.
	* config/iq2000/iq2000.c (iq2000_select_section): Likewise.
	* config/mips/mips.c (mips_select_section): Likewise.
	(mips_encode_section_info): Likewise.
	* config/pa/pa.c (pa_select_section): Likewise.
	* config/pa/pa.h (TEXT_SPACE_P): Likewise.
	* config/v850/v850.c (v850_select_section): Likewise.
	* doc/invoke.texi (-fwritable-strings): Remove.
	(-fno-const-strings): Don't mention -fwritable-strings.
	* doc/trouble.texi: Don't mention -fwritable-strings.

gcc/cp/
	* decl.c (cxx_init_decl_processing): Don't check
	flag_writable_strings.

gcc/testsuite/
	* gcc.dg/fwritable-strings-1.c: Remove.

Co-Authored-By: Kazu Hirata <kazu@cs.umass.edu>

From-SVN: r78333
2004-02-23 21:43:18 +00:00
Mark Mitchell 57782ad852 re PR c++/11326 (C++ IA64 ABI: 3.1.4: sometimes pointer to temporary return value is implicit first parameter preceding "this")
PR c++/11326
	* c-common.c (flag_abi_version): Remove.
	* c-common.h (flag_abi_version): Likewise.
	* c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
	* c.opt (fabi-version): Remove.
	* calls.c (expand_call): Always pass a function type to
	struct_value_rtx.  Use convert_memory_address.
	* common.opt (fabi-version): Add it.
	* flags.h (flag_abi_version): Likewise.
	(abi_version_at_least): New macro.
	* opts.c (common_handle_option): Add OPT_fabi_version.
	* toplev.c (flag_abi_version): Define it.
	* config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
	New function.
	(ia64_output_mi_thunk): Use it.
	(ia64_struct_value_rtx): Likewise.

	PR c++/11326
	* cp-tree.h (abi_version_at_least): Remove.
	* mangle.c: Include flags.h.

	PR c++/11326
	* g++.dg/abi/structret1.C: New test.

From-SVN: r77968
2004-02-17 18:32:45 +00:00
Josef Zlomek 014a1138d6 Josef Zlomek <zlomekj@suse.cz>
Josef Zlomek  <zlomekj@suse.cz>
	* Makefile.in (var-tracking.o): New.
	* common.opt (fvar-tracking): New.
	* flags.h (flag_var_tracking): New.
	* gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
	* opts.c (common_handle_option): Add OPT_fvar_tracking.
	* print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
        * rtl.c (note_insn_name): Likewise.
        * rtl.def (VAR_LOCATION): New.
        * rtl.h (NOTE_VAR_LOCATION): New.
        (NOTE_VAR_LOCATION_DECL): New.
        (NOTE_VAR_LOCATION_LOC): New.
        (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
        (variable_tracking_main): New exported function.
        * timevar.def (TV_VAR_TRACKING): New.
        * toplev.c (enum dump_file_index): Added DFI_vartrack.
        (dump_file): "vartrack" was added (-dV).
        (flag_var_tracking): New.
        (f_options): "var-tracking" was added.
	(rest_of_handle_variable_tracking): New function.
        (rest_of_compilation): Run variable tracking.
	(process_options): If user has not specified flag_var_tracking set it
	according to optimize, debug_info_level and debug_hooks.
	* tree.h (frame_base_decl): New.
        * var-tracking.c: New file.
	* config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
	(ia64_override_options): Set flags to run variable tracking in machine
	dependent reorg instead of toplev.c.
	(ia64_reorg): Run variable tracking if wanted.
        * doc/invoke.texi: Mention variable tracking in -dV,
	add and -fvar-tracking.
        * doc/passes.texi: Added variable tracking pass.

	Daniel Berlin <dberlin@dberlin.org>
	* debug.h (struct gcc_debug_hooks): Added var_location debug hook.
	* dbxout.c (dbx_debug_hooks): Likewise.
	(xcoff_debug): Likewise.
	* debug.c (do_nothing_debug_hooks): Likewise.
	* dwarf2out.c (dwarf2_debug_hooks): Likewise.
	* dwarfout.c (dwarf_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* final.c (final_scan_insn): Call var_location debug hook for each
	NOTE_INSN_VAR_LOCATION.

Co-Authored-By: Daniel Berlin <dberlin@dberlin.org>

From-SVN: r77418
2004-02-06 20:03:45 +00:00
J"orn Rennecke 1194fc7977 re PR middle-end/13779 ([3.4 only] powerpc64: incorrect initialization of 'long long' with constant)
* Makefile.in (bt-load.o): Depend on except.h.
	* bt-load.c (except.h): #include.
	(compute_defs_uses_and_gen): If insn at end of BB can throw
	within this function, consider registers used by it unavailable for
	btr migration.
	(move_btr_def): If insn at end of BB can throw, insert before rather
	than after.

	* flags.h (flag_btr_bb_exclusive): Declare.
	* toplev.c (flag_btr_bb_exclusive): New variable.
	(f_options): Add btr-bb-exclusive.
	* bt-load.c (augment_live_range): Restore old behaviour if
	flag_btr_bb_exclusive is set.
	* common.opt: Add entry for -fbtr-bb-exclusive.
	* opts.c (common_handle_options): Same.
	* doc/invoke.texi: Document -fbtr-bb-exclusive.

	* bt-load.c (btrs_live_at_end): New variable.
	(compute_defs_uses_and_gen): Compute its pointed-to array.
	(clear_btr_from_live_range, add_btr_to_live_range): Update it.
	(augment_live_range): When augmenting with a new dominator,
	use only its btrs_live_at_end set, but also add in the full set
	of the old dominator.
	(btr_def_live_range): Use btrs_live_at_end.
	(move_btr_def): Set other_btr_uses_before_def, and move new set
	to the end of the basic block, if appropriate.
	(migrate_btr_defs): Allocate and free btrs_live_at_end.

	* bt-load.c (basic_block_freq): Remove outdated comment.

2004-01-27  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.h: Correct target_flags free bits comment.
	(PREDICATE_CODES): Remove duplicate.
	* config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
	(MASK_PROFILE_KERNEL): Adjust define.

2004-01-27  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_constant_alignment): Decrease alignment
	of long string literals from 32 bytes to sizeof (void *) when !-Os
	and to 1 with -Os.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
	constant addresses in the normal mode.

2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h (CHAR_BITFIELD): Delete.
	(BOOL_BITFIELD): New.
	* c-decl.c (c_scope): Use BOOL_BITFIELD.
	* gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(arc_return_in_memory): Likewise.
	* config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(STRUCT_VALUE): Likewise.

2004-01-26  Richard Henderson  <rth@redhat.com>

	* c-parse.in (extension): Use itype.
	(SAVE_EXT_FLAGS): Don't allocate a tree.
	(RESTORE_EXT_FLAGS): Don't read a tree.

2004-01-26  Jan Hubicka  <jh@suse.cz>

	* cselib.c (discard_useless_values):  Clear out value pointer pointing
	to datastructure to be recycled.

2004-01-25  Jan Hubicka  <jh@suse.cz>

	* genextract.c (main): Do not output the memset when not checking.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
	switch statement instead of a chain of if statements.

2004-01-26  Jeff Law  <law@redhat.com>

	* doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
	acute accents for Petur Runolfsson's entry.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	* config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
	(RETURN_IN_MEMORY): Likewise.

2004-01-26  Fariborz Jahanian <fjahanian@apple.com>

         * config/rs6000/rs6000.c (rs6000_emit_move): split slow
         unaligned load/store into smaller loads and stores.

2004-01-26  Fariborz Jahanian <fjahanian@apple.com>

        * function.c (assign_parms): Do not assign
        long long argument to memory in prologue if
        is it loaded into register.

2004-01-26  Fariborz Jahanian <fjahanian@apple.com>

	 PR middle-end/13779
         * expr.c (emit_group_load): split constant
         correctly into register components of PARALLEL insn.

2004-01-26  Fariborz Jahanian <fjahanian@apple.com>

	* gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
	Use adjust_address_nv directly with appropriate mode.
	(restore_stack_nonlocal): Ditto.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/xtensa/xtensa-protos.h: Remove the prototype for
	xtensa_builtin_saveregs.
	* config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(xtensa_builtin_saveregs): Make it static.
	(xtensa_return_in_memory): New.
	* config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.
	(STRUCT_VALUE): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(EXPAND_BUILTIN_SAVEREGS): Likewise.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
	(arm_setup_incoming_varargs): Likewise.
	* config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
	(cris_setup_incoming_varargs): Likewise.
	* config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
	(ns32k_struct_value_rtx): Likewise.
	* config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
	NS32K_STRUCT_VALUE_REGNUM.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(arm_struct_value_rtx): Likewise.
	* config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
	(STRUCT_VALUE): Likewise.
	(STRUCT_VALUE_REGNUM): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ia64/ia64-protos.h: Remove the prototype for
	ia64_setup_incoming_varargs and ia64_return_in_memory.
	* config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(ia64_setup_incoming_varargs): Adjust the arguments to meet
	the requirement of TARGET_SETUP_INCOMING_VARARGS.
	(ia64_return_in_memory): Make it static.  Change the return
	type to bool from int.  Add an argument.
	(ia64_struct_value_rtx): New.
	* config/ia64/ia64.h: Remove commented-out definitions of
	PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
	PROMOTE_PROTOTYPES.
	(RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE_REGNUM): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.

2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/13666
	* config/sparc/sparc.c (function_arg_union_value): New function.
	(function_arg): Use it to deal with unions.
	(function_value): Likewise.  Define 'regbase' only for ARCH64.
	Replace a conditional statement by a simpler one.

2004-01-26  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips16_optimize_gp): Delete.
	(mips_reorg): Don't call it.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
	(floatunsqihf2): Remove operand 6.
	(fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
	fix patterns.
	(ldi_conditional, ldf_conditional): Validate operands.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
	(HAVE_GAS_HIDDEN): Undefine as interim measure.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
	memory references if TARGET_EXPOSE_LDP nonzero.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
	invalid operand combinations.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (c4x_check_legit_addr): Rename to
	c4x_legitimate_address_p.  Fix post_modify check.

	* config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
	* config/c4x/c4x.h (c4x_check_legit_addr): Adjust.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/pa/pa-protos.h: Remove the prototype for
	hppa_builtin_saveregs.  Add a prototype for
	pa_return_in_memory.
	* config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(pa_struct_value_rtx): Likewise.
	(pa_return_in_memory): Likewise.
	* config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
	PA_STRUCT_VALUE_REGNUM.
	(INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
	(EXPAND_BUILTIN_SAVEREGS): Remove.
	(PROMOTE_PROTOTYPES): Likewise.
	(PROMOTE_FUNCTION_RETURN): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(vax_struct_value_rtx): Likewise.
	* config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
	VAX_STRUCT_VALUE_REGNUM.
	(PROMOTE_PROTOTYPES): Remove.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

        * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.

2003-04-25  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
	and MIPS64 have HI/LO interlocks.  Update comment.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/stormy16/stormy16-protos.h: Remove the prototype for
	xstormy16_setup_incoming_varargs.
	* config/stormy16/stormy16.c
	(xstormy16_setup_incoming_varargs): Remove.
	(xstormy16_return_in_memory): New.
	(TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	* config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise
	(PROMOTE_PROTOTYPES): Likewise
	(RETURN_IN_MEMORY): Likewise
	(STRUCT_VALUE): Likewise
	(SETUP_INCOMING_VARARGS): Likewise

2004-01-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_offset_within_object_p): New function.
	(mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
	SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
	ABI has 64-bit pointers and the object file only allows 32-bit symbols.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300-protos.h: Remove the prototype for
	mn10300_builtin_saveregs.
	* config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(mn10300_return_in_memory): Likewise.
	(mn10300_builtin_saveregs): Make it static.
	* config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
	(RETURN_IN_MEMORY): Likewise.
	(STRUCT_VALUE): Likewise.
	(EXPAND_BUILTIN_SAVEREGS): Likewise.

2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>

	PR bootstrap/13853
	* cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
	using ccr.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i860/i860-protos.h: Remove the prototype for
	i860_saveregs.
	* config/i860/i860.c (i860_saveregs): Make it static.
	(i860_struct_value_rtx): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	* config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
	I860_STRUCT_VALUE_REGNUM.
	(EXPAND_BUILTIN_SAVEREGS): Remove.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(m68hc11_struct_value_rtx): Likewise.
	(m68hc11_return_in_memory): Likewise.
	* config/m68hc11/m68hc11.h: Remove a commented-out definition
	of PROMOTE_PROTOTYPES.
	(RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE_REGNUM): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mmix/mmix-protos.h: Remove the prototype for
	mmix_setup_incoming_varargs.
	* config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(mmix_setup_incoming_varargs): Make it static.
	(mmix_struct_value_rtx): New.
	* config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
	Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
	(STRUCT_VALUE_REGNUM): Remove.
	(SETUP_INCOMING_VARARGS): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mips/mips-protos.h: Remove the prototypes for
	mips_setup_incoming_varargs and mips_return_in_memory.
	* config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(mips_setup_incoming_varargs): Match the prototype for
	TARGET_SETUP_INCOMING_VARARGS.
	(mips_return_in_memory): Make it static.  Add argument fntype.
	(mips_strict_argument_naming): New.
	* config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
	(PROMOTE_FUNCTION_ARGS): Likewise.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(STRUCT_VALUE): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(SETUP_INCOMING_VARARGS): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(ip2k_return_in_memory): Likewise.
	(ip2k_setup_incoming_varargs): Likewise.
	* config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE): Likewise.
	(STRUCT_VALUE_INCOMING): Likewise.
	(SETUP_INCOMING_VARARGS): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(avr_return_in_memory): Remove.
	* config/avr/avr.h (RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE): Likewise.
	(STRUCT_VALUE_INCOMING): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.

2004-01-25  Jan Hubicka  <jh@suse.cz>

	* combine.c (recog_for_combine): Avoid allocating unnecesary RTX.

2004-01-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
	(mips_regno_mode_ok_for_base_p): Declare.
	* config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
	(FRAME_POINTER_REGNUM): Renumber to 78.
	(FIRST_PSEUDO_REGISTER): Update comment accordingly.
	(BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
	(GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
	(REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
	(REG_MODE_OK_FOR_BASE_P): Likewise.
	* config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
	entry for 77 to "$arg" and entry for 78 to "$frame".
	(mips_regno_to_class): Map 77 and 78 to ALL_REGS.
	(mips_reg_mode_ok_for_base_p): Remove.
	(mips_regno_mode_ok_for_base_p): New function, derived from old
	BASE_REG_P macro.  Don't enforce the mips16 stack pointer
	restrictions unless we're being strict.
	(mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.h: Fix comment typos.
	* c-decl.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine.c: Likewise.
	* et-forest.c: Likewise.
	* flow.c: Likewise.
	* function.c: Likewise.
	* ifcvt.c: Likewise.
	* integrate.c: Likewise.
	* jump.c: Likewise.
	* postreload.c: Likewise.
	* varray.c: Likewise.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/frontends.texi: Update copyright.
	* doc/gcov.texi: Likewise.
	* doc/gty.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/standards.texi: Likewise.

2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>

	PR target/12978
	* c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
	Remove movstrqi_small because it conflicts with movstrqi_large.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(cris_struct_value_rtx): Likewise.
	* config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
	(CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
	STRUCT_VALUE_REGNUM.
	(STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.

2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>

	PR bootstrap/13848
	* cse.c (cse_cc_succs): Change the mode of the source expression
	as soon as decide we need a new mode.  Don't permit changing modes
	if we found a match in a successor block.
	(cse_condition_code_reg): Save original mode of source expression
	so that we know whether we have to change the mode in other
	insns.

2004-01-24  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (change_address, adjust_address_1, offset_address,
	widen_memory_access):  Return early when there is nothing to change.

2004-01-24  Jakub Jelinek  <jakub@redhat.com>

	* simplify-rtx.c (simplify_relational_operation): Don't
	simplify address == constant into address + -constant == 0.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* gcc.c (process_command): Don't internationalize the
	Copyright message.
	* mips-tfile.c (main): Likewise.

2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>

	* cse.c: (cse_cc_succs) Fix comparison warning.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Remove extraneous USE in expanders.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Provide prototypes for
	h8300_legitimate_constant_p and h8300_legitimate_address_p.
	* config/h8300/h8300.c (h8300_legitimate_constant_p): New.
	(h8300_rtx_ok_for_base_p): Likewise.
	(h8300_legitimate_address_p): Likewise.
	* config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
	h8300_legitimate_constant_p.
	(RTX_OK_FOR_BASE_P): Remove.
	(GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
	(REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
	(REG_OK_FOR_INDEX_STRICT_P): Likewise.
	(REG_OK_FOR_BASE_STRICT_P): Likewise.
	(REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
	(REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
	(REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
	(REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.

2004-01-24  Jan Hubicka  <jh@suse.cz>

	* cselib.c (remove_useless_values):  Do not access discarded values.

2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-typeck.c (build_conditional_expr): Do not allow non-lvalue
	arrays.

2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* recog.c: Fix a typo in copyright.

2004-01-23  Andrew Pinski  <apinski@apple.com>

	* config/rs6000/rs6000.md (call): Fix misappiled patch.
	(call_value): Likewise.

2004-01-23  Richard Henderson  <rth@redhat.com>

        PR opt/12941
        * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
        (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
        if SHIFT_COUNT_TRUNCATED is set.

2004-01-23  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
	separate real and imaginary parts.
	* config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.

2004-01-23  Hartmut Penner <hpenner@de.ibm.com>

	PR target/13674
	* config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
	loading into GPR.

2004-01-23  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
	change.

	* alloc-pool.c (align_four): Kill.
	(create_alloc_pool): Align size to eight.
	(free_alloc_pool, free_pool): Invalidate deallocated data.

2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>

	PR gcc/1532
	* cse.c (cse_change_cc_mode): New static function.
	(cse_change_cc_mode_insns, cse_cc_succs): Likewise.
	(cse_condition_code_reg): New function.
	* rtl.h (cse_condition_code_reg): Declare.
	* toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
	* target.h (struct gcc_target): Add fixed_condition_code_regs and
	cc_modes_compatible.
	* target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
	(TARGET_CC_MODES_COMPATIBLE): Define.
	(TARGET_INITIALIZER): Add new initializers.
	* targhooks.c (default_cc_modes_compatible): New function.
	* targhooks.c (default_cc_modes_compatible): Declare.
	* hooks.c (hook_bool_intp_intp_false): New function.
	* hooks.h (hook_bool_intp_intp_false): Declare.
	* config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
	(TARGET_CC_MODES_COMPATIBLE): Define.
	(ix86_fixed_condition_code_regs): New static function.
	(ix86_cc_modes_compatible): Likewise.
	* doc/tm.texi (Condition Code): Document new hooks.

2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* fixinc/inclhack.def (bad_lval): Renamed to ...
	(alpha_bad_lval): ... this.
	Removed file list.
	Restrict to alpha*-dec-osf*.
	* fixinc/fixincl.x: Regenerate.
	* fixinc/tests/base/dirent.h: Remove, moving test ...
	* fixinc/tests/base/testing.h: ... here, reflecting new name.

2004-01-23  Zack Weinberg  <zack@codesourcery.com>

	PR c/13814
	* c-decl.c (diagnose_mismatched_decls): Also discard a
	built-in if we encounter an old-style definition with the
	same name.

2004-01-23  Jakub Jelinek  <jakub@redhat.com>

	* config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
	set to default{32,64}.

2004-01-21  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
	[!__powerpc64__]: Corrected to handle kernels with changed ucontext.

2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
	    Olivier Hainque  <hainque@act-europe.fr>

	* fold-const.c (fold_binary_op_with_conditional_arg): Only
	build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.

2004-01-23  Daniel Jacobowitz  <drow@mvista.com>

	* config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
	size for minipool references.

2004-01-23  Roger Sayle  <roger@eyesopen.com>

	* real.c (real_floor, real_ceil): Tweak to allow input and output
	arguments to overlap.
	(real_round): New function to implement round(3m) semantics.
	* real.h (real_round): Prototype here.
	* builtins.c (fold_builtin_round): New function to constant fold
	round, roundf and roundl.
	(fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.

2004-01-23  Alexandre Oliva  <aoliva@redhat.com>

	PR optimization/13819
	* config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
	introduced by 2004-01-20's Jan Hubicka's copy_insn change.
	(sh_handle_sp_switch_attribute): Remove warning.

2003-11-30  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.

2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>

	* doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
	may or may not return non-NIL.
	* postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
	check CANNOT_CHANGE_MODE_CLASS

2004-01-23  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (PROP_POSTRELOAD): New macro.
	(CLEANUP_LOG_LINKS): New.
	* cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
	* toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.

	* cselib.c (value_pool): New.
	(new_cselib_val): Use pool.
	(cselib_init): Initialize value_pool
	(cselib_finish): Free pool.

2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (scan_record_type): New function.
	(function_arg_slotno): Use it to determine which kinds of
	registers the record can be passed in.

2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>

	* config/pa/fptr.c: Fix old-style definition.

2004-01-22  Paolo Bonzini  <bonzini@gnu.org>

	PR optimization/13724
	* cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
	represents the zero bits produced by a ZERO_EXTEND operation.

2004-01-22  Roger Sayle  <roger@eyesopen.com>

	PR optimization/13821
	* simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
	correctly calculate the lowpart offset of the contracted subreg.

2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>

	* doc/invoke.texi (Optimize Options): Note that --param arguments
	are subject to change without notice.

2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config.gcc (mips-sgi-irix6*o32): Removed.
	* config/mips/iris6-o32-as.h: Likewise.
	* config/mips/iris6-o32-gas.h: Likewise.
	* config/mips/iris6-o32.h: Likewise.

2004-01-22  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (first_pass): New static variable.
	(try_forward_edges):  Add work limiting check for threading.
	(try_crossjump_bb):  Add work limiting check for crossjumping.
	(try_optimize_cfg):  Maintain first pass variable.

2004-01-22  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (function_arg): Generalize logic so that it
	handles complex and vector modes.

2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
	(REG_OK_FOR_BASE_P_STRICT): Likewise.
	(STRICT): Likewise.

2004-01-22  Daniel Jacobowitz  <drow@mvista.com>

	* c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
	(genrtl_for_stmt): Remove emit_nop calls.

2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/13713
	PR target/13324
	* pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
	movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
	clrstrdi_prereload, clrstrdi_postreload): Fix constraints.

2004-01-22  Daniel Jacobowitz  <drow@mvista.com>

	* config/arm/arm.c: Include "debug.h".
	(thumb_pushpop): Take two new arguments.  Add some commentary.
	Output frame information when pushing.
	(thumb_exit, thumb_unexpanded_epilogue): Update calls to
	thumb_pushpop.
	(thumb_output_function_prologue): Likewise.  Accumulate a CFA
	offset, and pass it to thumb_pushpop.  Output CFI information.
	(thumb_expand_prologue): Add some frame-related markers and notes.

2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_frame_info): Allow large frame sizes
	for TARGET_64BIT.
	(s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
	* config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.

2004-01-22  Roger Sayle  <roger@eyesopen.com>
	    Paolo Bonzini  <bonzini@gnu.org>

	* rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
	(subreg_lsb): Change to call new subreg_lsb_1 helper function.
	* rtl.h (subreg_lsb_1): Prototype here.
	* simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
	sign extensions.

2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
	macro need not be defined if jump-tables should contain
	relative addresses only when -fPIC or -fPIC is in effect.

2004-01-22  Jan Hubicka  <jh@suse.cz>

	* alias.c (reg_base_value): Turn into varray.
	(reg_base_value_size): Kill.
	(old_reg_base_value): New deletable varray.
	(alias_invariant_size): New variable.
	(REG_BASE_VALUE): Update to use varray.
	(find_base_value): Likewise.
	(record_set): Likewise.
	(record_base_value): Likewise.
	(memrefs_conflict_p): Likewise.
	(record_set): Likewise
	(record_base_value): Likewise.
	(memrefs_conflict_p): Use alias_invariant_size.
	(init_alias_analysis): Use varray; set alias_invariant_size;
	rescale other arrays to be sized by maxreg.
	(end_alias_analysis): Save reg_base_value; clear alias_invariant_size.

2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (function_arg_slotno): Use
	FLOAT_TYPE_P to detect FP fields in structures.
	(function_arg_record_value_1): Likewise.
	(function_arg_record_value_2): Likewise.

2004-01-22  Jan Hubicka  <jh@suse.cz>

	* function.c (allocate_struct_function): Do not initialize expr, emit
	and varasm.
	(prepare_function_start): Do it here.
	* c-parse.in (maybe_type_qual): Do not produce line number notes.

2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/13559
	* config/sparc/sparc.c (function_arg_record_value_3): Revert
	to 'word_mode' once the first slot has been filled.

2004-01-22  Olivier Hainque  <hainque@act-europe.fr>

	* config/sparc/sparc.c (function_arg_record_value_1): Fix
	computation of the number of integer registers required.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/i386.md: Simplify certain comparisons of
	const_int.

2004-01-21  Andrew Pinski  <apinski@apple.com>

	PR target/13785
	* config/rs6000/rs6000.md (call_value): Force operand
	1 not operand 0 into a register.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
	unwind-dw2-fde.h: Update copyright.

2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa-protos.h: Update copyright.
	* pa.h: Likewise.
	* pa.md: Likewise.

2004-01-21  Caroline Tice <ctice@apple.com>

	PR target/12308
	* config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
	flags register.
	(fix_truncdfdi2): Likewise.
	(fix_truncsfdi2): Likewise.
	(*fix_truncdi_1): Likewise.
	(fix_truncxfsi2): Likewise.
	(fix_truncdfsi2): Likewise.
	(fix_truncsfsi2): Likewise.
	(*fix_truncsi_1): Likewise.
	(fix_truncxfhi2): Likewise.
	(fix_truncdfhi2): Likewise.
	(fix_truncsfhi2): Likewise.
	(*fix_trunchi_1): Likewise.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* alias.c, basic-block.h, c-common.c, c-common.h,
	c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
	calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
	combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
	cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
	defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
	expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
	genautomata.c, genconditions.c, genemit.c, genflags.c,
	gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
	ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
	langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
	line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
	ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
	rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
	target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
	unwind.h, varray.c, varray.h: Update copyright.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/coff.h: Update copyright.
	* config/h8300/elf.h: Likewise.
	* config/h8300/h8300-protos.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.

2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
	ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
	ultrix_unistd): New hacks.
	* fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
	ULTRIX_CONST2_CHECK): Add checks.
	* fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
	* fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
	* fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
	* fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
	* fixinc/tests/base/locale.h: New file.
	* fixinc/fixincl.x: Rebuilt.

2004-01-21  Andreas Jaeger  <aj@suse.de>
	    Michael Matz  <matz@suse.de>

	* doc/extend.texi (Extended Asm): Clarify memory clobber.

2004-01-21  Jakub Jelinek  <jakub@redhat.com>

	* crtstuff.c (frame_dummy, __do_global_ctors_1): Call
	_Jv_RegisterClasses through a function pointer.

2004-01-21  Falk Hueffner  <falk@debian.org>

	PR target/12898
	* config/alpha/alpha.c (alpha_emit_set_const_1): If
	no_new_pseudos, use gen_rtx_SET directly for SImode constants
	which need multiple instructions to emit.

2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (CPP_SPEC): Define.

2004-01-21  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (merge_decls): Kill different_binding_level and
	different_tu arguments; simplify throughout.
	(duplicate_decls): Likewise.
	(pushdecl, merge_translation_unit_decls): Update calls to
	duplicate_decls.

2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
	$(SYSTEM_H).
	(print-rtl1.o): Depend on $(SYSTEM_H).

2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>

	PR bootstrap/12730
	* configure.ac: Delete definition and subsitution of docdir.
	Add info, man, srcman and srcinfo to target hooks. Create doc/
	directory.
	* configure: Regenerate.
	* Makefile.in: Don't substitute docdir and delete all references
	throughout.
	(MAKEINFOFLAGS): Define.
	(stmp-docobjdir): Delete.
	(INFOFILES, MANFILES): Define.
	(info): Call lang.info, srcinfo and lang.srcinfo.
	(generated-manpages): Call lang.man, srcman and lang.srcman.
	(srcinfo, srcman): New rules to copy back files to source directory.
	(doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
	(install-man): Revamp rule.
	(clean): Update dvi directory.
	(distclean): Delete TAGS from front end directorys.
	(maintainer-clean): Delete all document files in source directory.

	objc/Make-lang.in (objc.man, objc.info): Dummy entries.
	(objc.srcman, objc.srcinfo): Likewise.

2004-01-20  Bruce Korb  <bkorb@gnu.org>

	* fixinc/inclhack.def(math_exception): bypass only for glibc.
	(matherr_decl): rename & relocate as exception_structure.
	This fix must precede the math_exception fix.

2004-01-20  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_convert): Rename to fold_convert_const.
	(fold_convert_const): Change arguments to take a tree_code,
	a type and the operand/expression to be converted.  Return
	NULL_TREE if no simplification is possible.  Add support for
	FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
	(fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
	Adjust call to fold_convert to match new fold_convert_const.
	Avoid modifying the tree passed to fold in-place.

2004-01-21  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
	* dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
	* doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.

2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
	* pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
	Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
	(emit_move_sequence): Check scratch_reg first in various if statements.
	Extend source simplification to handle all 64-bit CONST_INTs.
	(pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
	frame size.
	(hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
	frame offset calculations.
	* pa.h (NEW_HP_ASSEMBLER): Add comment.
	(MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
	LEGITIMATE_64BIT_CONST_INT_P): Define.
	(LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
	any CONST_INT as legitimate during and after reload.
	(VAL_32_BITS_P, INT_32_BITS): Define.
	(LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.

2004-01-20  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (verify_rtx_sharing, copy_insn_1,
	emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
	containing hard regs are shared.
	(gen_hard_reg_clobber): New function.
	(hard_reg_clobbers): New array.
	* genemit.c (gen_exp): Use gen_hard_reg_clobber.
	(copy_rtx): Do not copy clobbers containing hard regs.
	* rtl.h (gen_hard_reg_clobber): Declare.

2004-01-20  Jan Hubicka  <jh@suse.cz>

	* varray.c:  Include hashtab.h
	(varray_descriptor): New structure.
	(hash_descriptor, eq_descriptor, varray_descriptor,
	print_statistics): New static functions
	(varray_init, varray_grow): Update statistics
	(dump_varray_statistics): New function.
	* varray.h (dump_varray_statistics): Declare.
	* toplev.c (finalize): Call it.
	* Makefile.in (varray.o): Add dependency.

2004-01-20  Jan Hubicka  <jh@suse.cz>

	* cselib.c: Include alloc-pool.h
	(empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
	(elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
	(new_elt_list, new_elt_loc_list, unchain_one_elt_list,
	unchain_one_elt_loc_list_pool, unchain_one_value,
	new_cselib_val): Simplify using allocpool.
	(cselib_init): Initialize allocpools.
	(cselib_finish): Finish allocpools.
	* Makefile.in (cselib.o): Depend on alloc-pool.h

2004-01-20  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_load_call_address): Make the call insn
	use $gp if it could be calling a lazy binding stub.

2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>

	* config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	* config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Remove.
	(STRUCT_VALUE): Remove.

2004-01-20  Denis Chertykov  <denisc@overta.ru>

	PR bootstrap/13735
	* config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
	register as pointer after reload.

2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	PR optimization/12440
	* loop.c: Include ggc.h.
	(loop_optimize): Run garbage collector between optimization of loops.
	* Makefile.in (loop.o): Add GGC_H dependency.

2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>

	* gcc/config/rs6000/rs6000.c (function_arg) Handle
	vector register special in function without prototype.
	(function_arg_advance): Vector parameters get always
	GPRs allocated for the linux64 target.

2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
	not TARGET_M32RX_MASK.

2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/13557
	* config/sparc/sparc.c (function_arg): Reorder the cases.

2004-01-19  Per Bothner  <per@bothner.com>

	Move cpp_reader's line_maps field to a shared global.
	* cpphash.h (cpp_reader):  Rename line_maps field to line_table
	and change the type to a pointer rather than a struct.
	* cppinit.c (cpp_push_main_field):  Adjust accordingly.
	* cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
	Likewise.
	* cppfiles.c (validate_pch):  Likewise.
	* cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
	Likewise.
	* cpperror.c (print_location):  Likewise.
	* cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
	* cppinit.c (cpp_create_reader):  Handle new parameter.
	(cpp_destroy):  Don't free line_maps - that's no longer our job.
	* input.h (line_table):  New variable.
	* toplev.c (line_table):  Declare variable.
	(general_init):  Initialize line_table.
	* c-opts.c (c_common_init_options):  Pass line_table to
	cpp_create_reader.
	* fix-header.c (read_scan_file):  New local variable line_table.
	Initialize, and pass it to cpp_create_reader.
	* Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
	(C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.

2004-01-19  Per Bothner  <per@bothner.com>

	Implement a cache for linemap_lookup.
	* line-map.h (struct_line_maps):  Add cache field.
	* line-map.c (linemap_init):  Zero cache field.
	(linemap_add):  Set cache field to offset of newly allocated map.
	(linemap_lookup):  Use and set cache field.

2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR optimization/13567
	* cse.c (cse_basic_block): Call cse_insn with a non-null
	libcall_insn for the last SET insn of a no-confilict block.

2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (target_noncanonical, program_transform_name): Use
	immediate define instead of deferred.
	(GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
	PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
	GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
	deferred backquote.

2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
	true unconditionally.
	* c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
	Remove.
	(build_unary_op, build_modify_expr): Don't handle extended
	lvalues.
	(build_component_ref, build_conditional_expr): Call non_lvalue
	instead of pedantic_non_lvalue.
	(build_c_cast): Don't condition use of non_lvalue on pedantic.
	* fold-const.c (fold): Don't check pedantic directly for
	COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
	passed to pedantic_non_lvalue.
	* doc/extend.texi: Remove documentation of extended lvalues.

2004-01-19  Roger Sayle  <roger@eyesopen.com>

	PR optimization/5263
	* simplify-rtx.c (associative_constant_p): Delete.
	(simplify_associative_operation): Rewrite to linearize terms, and
	attempt to simplify new term against both left and right subterms.
	(simplify_binary_operation): Call swap_commutative_operands_p on
	op0 and op1, not trueop0 and trueop1.  Move the initialization of
	trueop0 and trueop1 down to where first needed.
	(simplify_relational_operation): Likewise.
	* rtlanal.c (commutative_operand_precedence): Also order constant
	operands using avoid_constant_pool_reference.

2004-01-19  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
	don't check memory mode.
	(unaligned_memory_operand): Likewise.
	(reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
	abort for op0 not MEM.

	* config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
	is not a reg, copy to a scratch first.
	(aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
	unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
	unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
	(reload_inqi, reload_inhi): Fix mode of op0.
	(reload_inqi_help, reload_inhi_help, reload_outqi_help,
	reload_outhi_help): Likewise.  Use define_insn_and_split.

	* config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
	as well as $29 dead.

2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
	"tls_object" for thread-local objects.
	* config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
	"#tls" for thread-local sections.
	* configure.ac (thread-local checks): Specify --fatal-warnings in
	every binutils-specific checks.  For sparc*-*-*, test whether the
	OS is Solaris and the tools are native and act accordingly.
	* configure: Rebuild.

2004-01-19  Jeff Law  <law@redhat.com>

	* contrib.texi: Update Paolo Carlini's entry.  New entries for
	Jerry Quinn and Petur Runolfsson.

2004-01-19  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
	size, don't use the larger zero-extending loads.

2004-01-19  Richard Henderson  <rth@redhat.com>

	* alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
	* alpha.md (UNSPEC_NT_LDA): Remove.
	(UNSPEC_CVTLQ, cvtlq): New.
	(extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
	(extendsidi2_fix): Remove.
	(extendsidi2 splitter): Use cvtlq.
	(extendsidi2 fp peepholes): Remove.
	(cvtql): Use SFmode instead of SImode.
	(fix_trunc?fsi): Update to match.
	(floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
	(movsi): Rename from movsi_nofix, remove f alternatives.
	(movsi_nt_vms): Similarly.
	(movsi_fix, movsi_nt_vms_fix): Remove.
	(nt_lda): Remove.
	* alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.

2004-01-19  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_remove_node): Fix removal from linked list.
	* cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
	list.
	(cgraph_remove_unreachable_nodes): New function
	(cgraph_decide_inlining_of_small_function): Fix pasto.
	(cgraph_decide_inlining_incrementally): Fix pasto.
	(cgrpah_decide_inlining): Likewise; remove unreachable nodes.

2004-01-19  Steven Bosscher  <stevenb@suse.de>

	* gengtype.c (header_file): Make it static.
	(write_types_process_field, write_enum_defn): Minor whitespace fixes.
	* gengtype.h (header_file): No longer extern.

2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
	* expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
	* stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.

2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* stmt.c (HAVE_casesi): Define it not already defined.
	(HAVE_tablejump): Likewise.
	(expand_end_case_type): Resort to the binary tree method if
	neither casesi or tablejump is available.

2004-01-18  Daniel Jacobowitz  <drow@mvista.com>

	* final.c (final_scan_insn): Make non-static again.
	* output.h (final_scan_insn): Re-add prototype.
	* config/arc/arc.c (arc_output_function_epilogue): Add NULL
	to final_scan_insn call.
	* config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
	* config/mips/mips.c (mips_output_conditional_branch): Likewise.
	* config/pa/pa.c (output_lbranch, output_call): Likewise.
	* config/sh/sh.c (print_slot): Likewise.
	* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
	(output_sibcall, sparc_flat_function_epilogue): Likewise.

2004-01-18  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (try_redirect_by_replacing_jump): Declare.
	* cfgcleanup.c (try_optimize_cfg): Use it.
	* cfgrtl.c (try_redirect_by_replacing_jump): Export.
	(rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
	Kill hack.
	(cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.

	Revert:
	2004-01-16  Geoffrey Keating  <geoffk@apple.com>

		* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
		even after reload, just don't remove the actual jump tables.

2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.

2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
	the size of a pointer in bytes.

2004-01-18  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
	live "next" variable, which could lead to an infinite loop.

2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
	block.

	* config/rs6000/rs6000.c (rs6000_special_round_type_align):
	Check for NULL in the chain and remove repeated code.

2004-01-18  Jan Hubicka  <jh@suse.cz>

	* coverage.c (checksum_string): Rename to ...
	(coverage_checksum_string): ... this one, Use crc32_string; recognize
	names containing random number and zero the number out in order to get
	match.

2004-01-18  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_got_alias_set): Mark for PCH.

2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
	doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
	doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
	doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
	doc/trouble.texi: Remove trailing whitespace.

2004-01-18  Richard Sandiford  <rsandifo@redhat.com>

	PR target/7618
	* config/mips/mips.c: Include cfglayout.h.
	(TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
	(mips_unspec_offset_high): Add temporary register argument.
	(mips_load_call_address): New function, split out from...
	(mips_expand_call): ...here.
	(mips_output_cplocal): New function.
	(mips_output_function_prologue, mips_output_function_epilogue): Use it.
	(mips_emit_loadgp): New function, split out from...
	(mips_expand_prologue): ...here.
	(mips_output_mi_thunk): New function.

2004-01-17  Bernardo Innocenti  <bernie@develer.com>

	* longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
	mcpu32): Remove redundant checks for implied target predefines.

2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.c (rs6000_special_round_type_align):
	Return type is unsigned int not int.
	* config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
	Likewise.

2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
	doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
	"GNU/Linux" and "Microsoft Windows" terminology.

2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
	doc/cppopts.texi, doc/extend.texi, doc/install.texi,
	doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
	doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
	@smallexample instead of @example.

2004-01-17  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (build_objc_method_call): Use target
	hooks instead of macros to determine if ..._stret
	dispatchers should be used (NeXT runtime only).

2004-01-17  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin_expect_jump): Fix mistake in my
	last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
	(emit_call_insn_before_sameloc, emit_insn_after_sameloc)
	(emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
	macros.
	* reload1.c (emit_reload_insns): Use them.
	* emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
	(emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
	for NULL PATTERN.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
	(final_scan_insn): Update to take an additional SEEN argument.  Emit
	a line note after the prologue.  Make static.
	(line_note_exists): Remove.
	(final): Don't initialize line_note_exists.  Update call to
	final_scan_insn.
	* output.h (final_scan_insn): Remove prologue.
	* function.c (set_insn_locators): Update comment.
	(thread_prologue_and_epilogue_insns): Add a comment.

2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/10781
	* config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
	Prototype.
	* config/rs6000/rs6000.c (rs6000_special_round_type_align):
	New function.
	* config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
	* config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
	* config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.

2004-01-17  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
	commit.

	* toplev.c (HAVE_conditional_execution): Provide default.
	(rest_of_handle_reorder_blocks): For conditional_execution target
	update liveness once after all transformations
	(rest_of_compilation): Do crossjumping before ce3.

2004-01-17  Geoffrey Keating  <geoffk@apple.com>

	* alias.c (new_alias_set): Mark last_alias_set for PCH.
	(get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
	for PCH.
	(get_frame_alias_set): Likewise, except rename it to 'frame_set'.
	* config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
	(get_TOC_alias_set): Mark 'set' for PCH.

2004-01-16  Geoffrey Keating  <geoffk@apple.com>

	* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
	even after reload, just don't remove the actual jump tables.

2004-01-17  J. Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
	Remove checks for is_ada() and TREE_UNSIGNED.
	(subrange_type_die): Emit a byte_size attribute if the subrange
	type size is different from the base type size.
	(modified_type_die): Replace call to is_ada_subrange_type() by
	call to is_subrange_type().

2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/sh/sh.c: Include ggc.h.

2004-01-16  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.in (MD5_H): New.
	(fold-const.o): Depend on md5.h.
	(dwarf2out.o): Likewise.
	(cppfiles.o): Likewise.
	* cppfiles.c: Include md5.h.
	(should_stack_file): Check against list read from PCH file.
	(struct pchf_data): New.
	(pchf): New variable.
	(struct pchf_adder_info): New.
	(pchf_adder): New.
	(pchf_save_compare): New.
	(_cpp_save_file_entries): New.
	(_cpp_read_file_entries): New.
	(struct pchf_compare_data): New.
	(pchf_compare): New.
	(check_file_against_entries): New.
	* cpphash.h (_cpp_save_file_entries): Prototype.
	(_cpp_read_file_entries): Prototype.
	* cpppch.c (cpp_write_pch_state): Write the list of headers.
	(cpp_read_state): Read the list of headers.

2004-01-17  Jan Hubicka  <jh@suse.cz>

	* c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
	builtin_expect specially.
	* params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
	(PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
	* invoke.texi (max-inline-insns-single): Set to 100.
	(large-function-insns): Set to 3000.

2004-01-16  Eric Christopher  <echristo@redhat.com>
	    Chandrakala Chavva <cchavva@redhat.com>

	* cppcharset.c (one_iso88591_to_utf8): New function.
	(convert_iso88591_utf8): Ditto. Use.
	(conversion_tab): Use.
	(_cpp_input_to_utf8): New function.
	(_cpp_init_iconv_buffer): Ditto.
	(_cpp_close_iconv_buffer): Ditto.
	* cpphash.h: Prototype new functions.
	(cpp_buffer): Add input_cset_desc.
	* cppinit.c: Add input_charset default.
	* cpplib.c (cpp_push_buffer): Support init and
	close of iconv.
	* cpplib.h (cpp_options): Add input_charset.

2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (ASM_OUTPUT_SECTION_NAME): Poison.
	* config/alpha/unicosmk.h: Remove a commented-out definition
	of ASM_OUTPUT_SECTION_NAME.
	* config/stormy16/stormy16.h: Likewise.

2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
	(alpha___extern_prefix_sys_stat): ... this.
	Apply to <sys/mount.h>, too.
	Tweak to match more variations.
	* fixinc/tests/base/sys/stat.h: Adapt for new hackname.

	* fixinc/inclhack.def (alpha___extern_prefix,
	alpha___extern_prefix_standards): New hacks to obey
 	__PRAGMA_EXTERN_PREFIX.
	* fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
	test.
	* fixinc/tests/base/standards.h: Likewise.

	* fixincl/inclhack.def (alpha_pthread): Tweak to match more
	variations.
	New testcase.
	* fixinc/tests/base/pthread.h: Handle it.

	* fixincl/inclhack.def (bad_lval): Sort file list.
	Add many missing files up to Tru64 UNIX V5.1B.
	* gcc/fixinc/tests/base/libgen.h: Renamed to ...
	* gcc/fixinc/tests/base/dirent.h: ... this to match new file list
	order.

	* fixinc/fixincl.x: Regenerate.

2004-01-16  Mark Mitchell  <mark@codesourcery.com>

	* version.c (version_string): Change to 3.5.0.
	* doc/include/gcc-common.texi (version-GCC): Likewise.

2004-01-16  Jan Hubicka  <jh@suse.cz>

	* i386.md (load_tp_di): Fix pasto.

	PR opt/13608
	* i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.

	* c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
	pp_c_character_constant, pp_c_floating_constant,
	pp_c_additive_expression, pp_c_shift_expression,
	pp_c_equality_expression, pp_c_and_expression,
	pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
	pp_c_logical_and_expression): Remove inline modifier.
	* dwarf2out.c (get_AT): Likewise.
	* et-forest.c (et_splay): Likewise.
	* ra.h (ra_alloc, ra_calloc): Likewise

2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/frv/frv-protos.h: Fix comment formatting.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/frv/frv.md: Likewise.
	* config/frv/frvbegin.c: Likewise.
	* config/frv/frvend.c: Likewise.

2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
	* doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
	LINKER_DOES_NOT_WORK_WITH_DWARF2.
	(LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.

2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>

	PR 11864
	* postreload.c (reload_cse_simplify_operands): Don't remove
	implicit extension from LOAD_EXTEND_OP.

2004-01-16  Jan Hubicka  <jh@suse.cz>

	PR opt/11350
	* cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
	after reload.
	* cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
	rtl_try_redirect_by_replacing_branch): Likewise.

2004-01-15  Geoffrey Keating  <geoffk@apple.com>

	PR pch/13689
	* alias.c (struct alias_set_entry): Mark for GC.
	(alias_sets): Make static, mark for GC.
	(record_alias_subset): Use GC to allocate alias structures.
	* varray.c (element): Make generic varrays GCed.

	PR pch/13361
	* c-typeck.c (constructor_asmspec): Delete.
	(struct initializer_stack): Delete field 'asmspec'.
	(start_init): Delete saving of asmspec.
	(finish_init): Don't update constructor_asmspec.
	* dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
	* stmt.c (expand_asm): Duplicate strings from tree.
	(expand_asm_operands): Likewise.
	* tree.c (tree_size): Update computation of size of STRING_CST.
	(make_node): Don't make STRING_CST nodes.
	(build_string): Allocate string with tree node.
	* tree.def (STRING_CST): Update comment.
	* tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
	(tree_string): Place contents of string in tree node.
	* config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
	from tree.

	* config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
	altivec operands.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.h: Fix comment formatting.
	* c-cppbuiltin.c: Likewise.
	* c-pragma.c: Likewise.
	* calls.c: Likewise.
	* collect2.c: Likewise.
	* cppcharset.c: Likewise.
	* cpptrad.c: Likewise.
	* dbxout.c: Likewise.
	* defaults.h: Likewise.
	* dwarf2out.c: Likewise.
	* fold-const.c: Likewise.
	* genautomata.c: Likewise.
	* genconditions.c: Likewise.
	* genflags.c: Likewise.
	* gengtype.c: Likewise.
	* integrate.c: Likewise.
	* loop.c: Likewise.
	* predict.c: Likewise.
	* sdbout.c: Likewise.

2004-01-15  Zack Weinberg  <zack@codesourcery.com>

	* config/ia64/ia64.md (*movti_internal): C output template
	extracted to ia64.c.
	(*movti_internal_reg): Delete.
	(reload_inti, reload_outti): Use the correct mode on operand 2
	in the first place, don't fix it up in the output template.
	(movtf, reload_ointf, reload_outtf): New expanders.
	(*movtf_internal): New define_insn_and_split.
	* config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
	make static; do not hand TFmode CONST_DOUBLEs to split_double.
	(ia64_split_tmode_move): New function, body mostly pulled
	from ia64.md:*movti_internal.
	(ia64_function_arg_words): New function, extracted common
	logic from ia64_function_arg et seq.
	(ia64_function_arg_offset): Likewise.  Handle correctly the
	case of a scalar quantity 16 bytes wide with only 8-byte alignment.
	(ia64_function_arg, ia64_function_arg_partial_nregs)
	(ia64_function_arg_advance): Use ia64_function_arg_words and
	ia64_function_arg_offset.
	(ia64_function_value): TCmode does not go in float regs.
	(ia64_secondary_reload_class): Also handle TFmode.
	* config/ia64/ia64-protos.h: Remove prototype for
	ia64_split_timode; add prototype for ia64_split_tmode_move.

2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (MAINT): Make it an immediate assignment.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.md: Remove useless calls to gen_lowpart.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/coff.h: Replace Hitachi with Renesas.
	* config/h8300/elf.h: Likewise.
	* config/h8300/h8300-protos.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.

2004-01-15  Andrew Pinski  <apinski@apple.com>

	* config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
	around it.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_return_in_memory): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	* config/h8300/h8300.h (STRUCT_VALUE): Remove.
	(RETURN_IN_MEMORY): Likewise.

2004-01-15  Richard Earnshaw  <rearnsha@arm.com>

	PR optimization/13375
	* gcse.c (handle_avail_expr): Just return if the source is not a
	single set.

2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
	(EQUIV): Define.
	(ARM_FUNC_ALIAS): New macro.
	* arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
	* arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.

2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR optimization/12372
	* calls.c (expand_call): Add call_fusage data for stack arguments in
	constant calls.

2004-01-15  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
	(rs6000_elf_declare_function_name): Formatting.
	* config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.

2004-01-15  Jan Hubicka  <jh@suse.cz>

	PR bootstrap/13692
	* sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
	previous patch.

2004-01-15  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
	integer regs of the same call-savedness.

2004-01-15  Andreas Schwab  <schwab@suse.de>

	PR bootstrap/13562
	* config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
	status for NOTB/NOTW/NEGW methods.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/invoke.texi: Update dump file names.  Fix a typo.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (expand_builtin_va_end): Don't use
	EXPAND_BUILTIN_VA_END.
	* system.h (EXPAND_BUILTIN_VA_END): Poison.
	* config/d30v/d30v.h: Remove a commented-out definition of
	EXPAND_BUILTIN_VA_END.
	* config/stormy16/stormy16.h: Likewise.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
	* targhooks.c (default_struct_value_rtx): Don't use
	STRUCT_VALUE_INCOMING_REGNUM.

2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

	PR bootstrap/12744
	* configure.in: Revamp enable-generated-files-in-srcdir rule to define
	GENINSRC and not parsedir.  Define srcextra as a langhook.
	* configure: Regenerate.
	* Makefile.in: Suppress default .l.c rule.  Don't substitute
	parsedir and delete all references throughout.  Conditionally define
	rule for srcextra dependent on GENINSRC.
	(stmp-docobjdir): Delete.
	(c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
	(srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
	and gengtype-yacc.h back to source directory.
	(maintainer-clean): Delete all parse files in source directory.
	(distclean): Delete generated files.

	* objc/Make-lang.in (objc-parse.o): Use implicit build rule.
	(objc-parse.c, objc-parse.y): Don't use parsedir.
	(objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
	directory if requested.
	(po-generated): Don't use parsedir.
	(objc.maintainer-clean): Delete above files from source directory.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi (FUNCTION_VALUE): Fix a typo.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi: Replace RETURN_IN_MEMORY with
	TARGET_RETURN_IN_MEMORY.

2004-01-15  Jan Hubicka  <jh@suse.cz>

	* builtins.c (std_expand_builtin_va_arg): Align operand when needed.
	* i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
	functions accepting SSE arguments
	(function_arg): Warn only when asked to warn.
	* i386.h (ix86_args): Add warn_sse/warn_mmx fiels.

2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-parse.in (stmts_and_decls): Make label at end of compound
	statement a hard error.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (create_edge): Use local.redefined_extern_inline.
	* cgraph.h (cgraph_local_info): Sort fields by size; add
	redefined_extern_inline
	(cgraph_global_info): Sort fields by size.
	(cgraph_node): Likewise.
	* cgraphunit.c (cgraph_finalize_function): Se
	local.redefined_extern_inline on redefinition.
	(cgraph_analyze_function): Use it; fix formating.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	PR c++/10776
	* sched-deps.c (trye_dependency_cache, anti_dependency_cache,
	outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
	bitmaps
	(cache_size): New variable
	(add_dependence): Update use; canonize early memory locations
	(sched_analyze_1): Likewise.
	(sched_analyze_2): Likewise.
	(init_dependency_caches): Initialize bitmaps.
	(free_dependency_caches): Free bitmaps

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
	targetm.calls.strict_argument_naming().
	* target.h: Likewise.

2004-01-14  Richard Henderson  <rth@redhat.com>

	PR debug/13231
	* dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
	instructions.

2004-01-14  Richard Henderson  <rth@redhat.com>

	PR c++/12491
	* except.c (struct eh_region): Add u.fixup.resolved.
	(resolve_one_fixup_region): Split out from ...
	(resolve_fixup_regions): ... here.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.h (STRUCT_VALUE): Remove.
	* config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
	(STRUCT_VALUE): Remove.

2004-01-14  Steven Bosscher  <stevenb@suse.de>

	* system.h: Poison PROMOTED_MODE
	* integrate.c (expand_inline_function): Don't mention the
	PROMOTED_MODE.
	* loop.c (update_giv_derive): Same.
	* tree.h (DECL_RTL): Same.

2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>

	PR target/9365
	* sh.c (gen_block_redirect): Add special handling of RETURN.
	(gen_far_branch) Don't call gen_stuff_delay_slot if there is no
	far branch target (i.e. it's a return).

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* regrename.c (find_oldest_value_reg): Fix a warning.

2004-01-14  Richard Earnshaw  <rearnsha@arm.com>

	PR bootstrap/12527
	* config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
	Move linux-gas.h and linux-elf.h before aout.h.
	* arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
	* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
	(CONST_INT, VOIDmode, ...).

2004-01-14  Richard Earnshaw  <rearnsha@arm.com>

	* regrename.c (find_oldest_value_reg): If the replacement uses
	multiple hard registers, check that all of them are in CLASS.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	* alias.c (get_alias_set):  Initialize alias set to 0 when subset is
	impossible.

2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in: Define MAINT from --enable-maintainer-mode.

2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>

	* gcc/config/rs6000/rs6000.c (rs6000_stack_info)
	Calculate always vrsave_mask if TARGET_ALTIVEC.
	(rs6000_emit_prologue): Emit code for vrsave
	only if TARGET_ALTIVEC_VRSAVE.
	(rs6000_emit_epilogue): Likewise.

2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.md (tie_add32): Fix pasto.
	(tie_add64): Likewise.

2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* config/i386/i386.md (*addqi_1_slp): Do not access operands[2].

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/iq2000/iq2000-protos.h: Fix comment formatting.
	* config/iq2000/iq2000.c: Likewise.
	* config/iq2000/iq2000.md: Likewise.

2004-01-14  J. Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
	(subrange_type_die): Add handle for nameless subrange types.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Replace do_movsi with
	h8300_expand_movsi.
	* config/h8300/h8300.c (do_movsi): Change to
	h8300_expand_movsi.
	* config/h8300/h8300.md (movsi): Replace do_movsi with
	h8300_expand_movsi.
	(movsf): Likewise.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (dosize): Change to
	h8300_emit_stack_adjustment.  Update callers.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (movstrictqi): Add an alternative with
	the source being post_inc.  Tighten the predicate for the
	destination to register_operand.
	(movstricthi): Likewise.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
	* varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
	* doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	Partial fix PR c++/12850
	* cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
	at zero nest level.

2004-01-13  Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
	pseudo-register.

2004-01-13  Devang Patel <dpatel@apple.com

	PR debug/7078
	* dbxout.c (dbxout_symbol_name): Emit mangled names for
	NAMESPACE_DECL memebers.

2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/12709
	* c-common.c (finish_fname_decls): Use the chain only if the
	tree is an expr_stmt.

2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>

	* rtl.def: Add comment about new option in automata_option.

	* genautomata.c (PROGRESS_OPTION): New macro.
	(progress_flag): New global variable.
	(gen_automata_option): Process `progress'.
	(transform_insn_regexps, check_unit_distributions_to_automata,
	make_automaton, NDFA_to_DFA, build_automaton, create_automata,
	expand_automata, write_automata): Print about the progress only if
	progress_flag.  Remove fflush.
	(initiate_automaton_gen): Process command line flag `-progress'.

	* doc/md.texi: Describe the new option.

2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfg.c (dump_bb): Dump entry edges.

2004-01-13  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (thumb_legitimate_address_p): Only allow constant pool
	references from SImode.
	* arm.md (thumb_movhi_insn): Don't allow minipool references.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (TEXT_SECTION): Poison.
	* varasm.c (text_section): Don't use TEXT_SECTION.
	* config/sh/sh.c (sh_file_start): Fix a comment typo.
	* doc/tm.texi (TEXT_SECTION): Remove.

2004-01-13  Ben Elliston  <bje@wasabisystems.com>

	* doc/rtl.texi (Vector Operations): Remove defunct vec_const item.

2004-01-12  James E Wilson  <wilson@specifixinc.com>

	* unwind-libunwind.c: Delete.

2004-01-12  Zack Weinberg  <zack@codesourcery.com>

	PR 13656
	* c-decl.c (diagnose_mismatched_decls): Whenever newtype or
	oldtype is set, set *newtypep or *oldtypep too.  Do not set
	them at the very end.
	(validate_proto_after_old_defn): Restructure for comprehensibility;
	make error messages clearer.

2004-01-12  Zack Weinberg  <zack@codesourcery.com>

	* varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
	(VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
	* varray.c: No need to prototype error.
	(varray_check_failed): Wrap long string onto two lines.
	(varray_underflow): New function.

2004-01-13  Steven Bosscher  <stevenb@suse.de>

	PR c++/13376
	* function.h (struct function): Kill `name' field.
	(current_function_name): Make it an extern function.
	* function.c (current_function_name): New function.
	* graph.c: Update all uses of current_function_name.
	* gcse.c: Likewise.
	* config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
	config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
	* config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
	instead of a strcmp with "main".

2004-01-13  Jan Hubicka  <jh@suse.cz>

	* c-decl.c (diagnose_mismatched_decls):  Fix warning calls.

	* cgraphunit.c (cgraph_optimize_function):  Always do
	optimize_inline_calls when there is always_inline callee.
	(cgraph_decide_inlining): Fix formating.
	* tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
	functions.
	(expand_call_inline): Likewise.
	* toplev.h (sorry): Fix prototype.

2004-01-12  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
	conditional jumps that drop through to unconditional jumps or the
	end of the sequence.

2004-01-13  Jan Hubicka  <jh@suse.cz>

	* alias.c (new_alias_set): Construct the alias_set varray.
	(init_alias_once): Don't do it here.

2004-01-12  Marc Espie <espie@openbsd.org>

	* system.h: handle YYBYACC like YYBISON.

2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>

	PR target/10847
	* config.gcc: No longer includes conflicting header sparc/sol2.h when
	building on sparc64-*-openbsd*.

2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR debug/13539
	* dbxout.c (dbxout_type): Protected inheritance is not
	private but protected.

2004-01-12  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.

2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>

	PR optimization/12508.
	* combine.c (try_combine): Remove a dead set in a parallel
	even if its destination is a subreg.

	Revert:
	2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
	* combine.c (simplify_set): Don't move a subreg in SET_SRC to
	SET_DEST if WORD_REGISTER_OPERATIONS is not defined.

2004-01-12  Geoffrey Keating  <geoffk@apple.com>

	* real.c: Update copyright date.
	* emit-rtl.c: Likewise.
	* rtl.h: Likewise.
	* dwarf2out.c: Likewise.
	* config/rs6000/darwin-ldouble.c: Likewise.
	* config/rs6000/rs6000.md: Likewise.

2004-01-12  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
	TFmode to SImode libfuncs.

2004-01-12  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/11397
	* varasm.c (assemble_alias): Remove weak aliases from weak_decls.

2004-01-12  Jan Hubicka  <jh@suse.cz>

	PR opt/12826
	* loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
	stored.

	PR opt/12863
	* cfgcleanup.c (label_is_jump_target_p): Move to...
	* rtlanal.c (label_is_jump_target_p): ... here.
	* cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
	edges unified with branch edges.

2004-01-12  Richard Earnshaw  <rearnsha@arm.com>

	* simplify-rtx.c (simplify_immed_subreg): Correctly extract the
	high word of an integral CONST_DOUBLE.

2004-01-12  Paul Brook  <paul@codesourcery.com>

	* simplify-rtx.c (simplify_plus_minus): Always generate canonical form.

2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>

	PR target/13585
	* sh-protos.h (check_use_sfunc_addr): Declare.
	* sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
	* sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.

2004-01-12  Jan Hubicka  <jh@suse.cz>

	* alias.c:  Invlude varray.h
	(alias_sets): Turn into varray.
	(get_alias_set_entry): Use VARRAY; mark inline.
	(mems_in_disjoint_alias_sets_p): Mark inline.
	(record_alias_subset): Use varray.
	(init_alias_once): Initialize varray.
	(new_alias_set): Grow array.
	* varray.c: Make VARRAY_GENERIC_PTR non GTYized.

2004-01-12  Jan Hubicka  <jh@suse.cz>

	Partial fix for PR opt/10776 II
	* cselib.c: Include params.h
	(cselib_invalidate_mem):  Limit amount of nonconflicting memory
	locations.
	* params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
	* Makefile.in (cselib.o): Depend on params.h

2004-01-12  Richard Sandiford  <rsandifo@redhat.com>

	* combine.c (combine_simplify_rtx): Don't pass VOIDmode to
	simplify_unary_operation if the operand has a known mode.

2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>

	PR target/13534
	* gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
	predicate to handle 'ld' conform addresses.
	* gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
	contraint.
	(EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
	are memory contraints.
	* gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
	New prototype.
	* gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
	Change 'o' to 'Y' constraint.
	(*movdf_softfloat64): Ditto.

2004-01-12  Bernardo Innocenti  <bernie@develer.com>

	* gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
	brace-enclosed syntax in all C output statements.

2004-01-12  David Edelsohn  <edelsohn@gnu.org>

	PR target/13401
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Objective-C language type value is 14.

2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>

	PR c/12148
	* config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
	`int' in a number of places to make sure we always have a SImode
	and not a HImode.  Add a 'L' suffix to a number of constants.

2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c: Don't include obstack.h.

	* pa.md: Correct constraint in pattern for loading PIC label address.

2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
	 before defining.

2004-01-11  Steven Bosscher  <stevenb@suse.de>

	PR fortran/9972
	* toplev.c (rest_of_handle_inline): Also consider functions
	for deferral if the language is GNU F77.

2004-01-11  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (diagnose_arglist_conflict): Add missing space to
	diagnostic messages.

2004-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/13392
	* builtins.c (expand_builtin_expect_jump): Handle conditional jumps
	to drop through label.  Don't fall back to SCC even when conditional
	jump has not been found.

2004-01-11  Jan Hubicka  <jh@suse.cz>

	* invoke.texi: Fix syntax error in previous patch.

	Partial fix for PR opt/10776
	* Makefile.in (reload.o): Include param.h
	* params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
	* reload.c: Include params.h.
	(find_equiv_reg): Work limiting check.
	* invoke.texi: Document.

2004-01-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_symbolic_constant_p): Don't allow
	out-of-bounds accesses to string constants.  Simplify mips16
	case accordingly.

2004-01-11  Richard Sandiford  <rsandifo@redhat.com>

	PR optimization/13469
	* toplev.c (rest_of_compilation): Call purge_all_dead_edges after
	reload_cse_regs (-fnon-call-exceptions only).

2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mcore/lib1.asm: Fix comment formatting.
	* config/mcore/mcore-elf.h: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mcore/mcore.h: Likewise.
	* config/mcore/mcore.md: Likewise.

2004-01-10  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (duplicate_decls): Break apart into...
	(diagnose_arglist_conflict, validate_proto_after_old_defn)
	(locate_old_defn, diagnose_mismatched_decls, merge_decls):
	... these new functions.  Restructure for comprehensibility.
	Remove various archaic special cases.  Always report the
	location of the previous declaration when a diagnostic is issued.
	(redeclaration_error_message): Fold into diagnose_mismatched_decls.
	(match_builtin_function_types): Delete unnecessary forward declaration.

2004-01-10  Zack Weinberg  <zack@codesourcery.com>

	* genautomata.c (make_automaton, NDFA_to_DFA):
	Print progress bars with '.' characters instead of '*'.
	(build_automaton): Change notes to match.

2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.md: Use define_constants for unspec and
	unspec_volatile.

2004-01-10  Jan Hubicka  <jh@suse.cz>

	PR opt/11635
	* expr.c (expand_expr_real):  More curefully expand union casts.

2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.md (flush_icache): Use 1 for
	unspec_volatile.

2004-01-10  David Edelsohn  <edelsohn@gnu.org>
	    James E Wilson  <wilson@specifixinc.com>

	PR debug/12860
	* dbxout.c (dbxout_symbol): Remove initialization of
	current_sym_code, current_sym_value, and current_sym_addr.
	(dbxout_symbol_location): Same.
	(dbxout_prepare_symbol): Zero current_sym_code,
	current_sym_value, and current_sym_addr.

2004-01-10  Richard Sandiford  <rsandifo@redhat.com>

	* tree.c (get_unwidened): Reorder conditions so that the null pointer
	check is done first.

2004-01-09  Eric Christopher  <echristo@redhat.com>

	* toplev.c (rest_of_handle_cfg): Add reg_scan pass
	if we're running mark_constant_function.

2004-01-09  Jeff Bailey  <jbailey@nisa.net>

	PR target/12561
	* config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.

2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>

	PR debug/11231
	* dbxout.c (dbxout_type_fields): Return if any item is
	error_mark_node or the type is error_mark_node.

2004-01-09  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/darwin-ldouble.c: Add big comment explaining
	exactly what is expected as a 'long double'.
	(_xlqadd): When a value to be returned is representable as a
	'double', just return it directly, do not construct it using a union.
	Also, correct final fixup.
	(_xlqmul): Likewise.
	(_xlqdiv): Likewise.
	* real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.

	* config/rs6000/rs6000.md (fix_trunctfdi2): Delete.

2004-01-09  Richard Henderson  <rth@redhat.com>

	* recog.c (constrain_operands): Validate mem operands.

2004-01-09   James E Wilson  <wilson@specifixinc.com>

	* gcc.c (init_spec): Remove -lunwind from shared case.
	* conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.

2004-01-09  Steve Ellcey  <sje@cup.hp.com>

	* configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
	* configure: Regenerate

2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/11234
	* c-typeck.c (build_c_cast): If pedantic, warn for conversions
	between function and object pointers.
	(digest_init): When comparing a pointer to function type to the
	target type, only apply TREE_TYPE once to the pointer to function
	type.
	* except.c (for_each_eh_label_1): Treat data as a pointer to a
	function pointer rather than casting it to a function pointer.
	(for_each_eh_label): Update caller.
	* recog.h (struct insn_data): Use a struct or union for output.
	* genoutput.c (output_insn_data): Update.
	* final.c (get_insn_template): Update.

2004-01-09  Mark Mitchell  <mark@codesourcery.com>

	* expr.h (expand_expr): Make it a macro, not a function.
	(expand_expr_real): New function.
	* expr.c (store_expr): Adjust logic for deciding whether or not to
	copy the value returned by expand_expr.
	(expand_expr): Rename to ...
	(expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
	calls to language hooks.
	* c-common.h (c_expand_expr): Adjust prototype.
	* c-common.c (c_expand_expr): Add alt_rtl parameter.
	* langhooks-def.h (lhd_expand_expr): Change prototype.
	* langhooks.c (lhd_expand_expr): Add all_rtl parameter.
	* langhooks.h (lang_hooks): Change type of expand_expr.
	* stmt.c (stmt_status): Add x_last_expr_alt_rtl.
	(last_expr_alt_rtl): Likewise.
	(expand_expr_stmt_value): Set last_expr_alt_rtl.
	(clear_last_expr): Clear it.
	(expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
	(expand_end_bindings): Save and restor last_expr_alt_rtl.
	* tree.def (RTL_EXPR): Give it an additional operand.
	* tree.h (RTL_EXPR_ALT_RTL): New macro.

2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
	* config/m32r/m32r.c (call26_operand): Allow in PIC mode.

2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>

	PR target/13380.
	* config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
	or (ne:SI (reg:CC 17) (const_int 0)).
	Be specific about modes wherever possible.

2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.c (m32r_expand_block_move): Call
	gen_movestrsi_internal with two more arguments.
	(m32r_output_block_move): Adjust operand numbers.
	Properly update the source and destination pointers.
	* config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
	'r+'.  Change the set detinations to match_operand.

2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>

	* final.c (FIRST_INSN_ADDRESS): Remove.
	(shorten_branches): Don't use FIRST_INSN_ADDRESS.
	* system.h (FIRST_INSN_ADDRESS): Poison.
	* config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
	* config/m32r/m32r-protos.h: Remove the prototype for
	m32r_first_insn_address.
	* config/m32r/m32r.c (m32r_first_insn_address): Remove.
	* config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
	* doc/md.texi (FIRST_INSN_ADDRESS): Likewise.

2004-01-09  J. Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (gen_enumeration_type_die): Return the DIE that
	we just created.
	(is_ada_subrange_type): DIEs for enumeration subtypes should be
	emitted as subrange types too.
	(subrange_type_die): Add handling of enumeration subtypes.

2004-01-08  Richard Henderson  <rth@redhat.com>

	PR opt/12441
	Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
	* i386.c (aligned_operand): Be prepared for SUBREGed registers.
	(ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
	(ix86_address_cost): Be prepared for SUBREGed registers.
	(legitimate_address_p): Accept SUBREGed registers.

2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in: Rename configure.in to configure.ac
	* doc/sourcebuild.texi: Likewise.
	* configure: Regenerate.
	* config.in: Regenerate.

2004-01-08  Stuart Hastings  <stuart@apple.com>

	* config/i386/i386.md: Typos in MMX/SSE immediate shifts.

2004-01-08  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_decide_inlining):  Fix typo.

2004-01-08  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
	(UNSPEC_FIX_TRUNC_TF): New constant.
	(movtf_internal): Make splitter active only when insn is active.
	(extenddftf2): Rewrite to properly load zero into low part.
	(extenddftf2_internal): New.
	(extendsftf2): Rewrite.
	(truncdftf2): Correct length.
	(floatditf2): Delete.
	(fix_trunc_helper): New.
	(fix_trunctfdi2): Use fix_trunc_helper.
	(fix_trunctfsi2): Likewise.fix_trunc
	(fix_trunctfsi2_internal): New.

	* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
	addresses are legitimate on Darwin even when flag_pic.
	(rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
	non-offsettable addresses for loads of TFmode constants.

2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
	variables in the appropriate bss section.

2004-01-09  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
	target_flags has MASK_POWERPC64 when -m64.
	* config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
	to 620, 630, power3, power4 and rs64a entries.
	* config/rs6000/rs6000.h (MASK_64BIT): Expand comment.

2004-01-08  Richard Sandiford  <rsandifo@redhat.com>

	* simplify-rtx.c (simplify_immed_subreg): Fix construction of
	floating-point constants.

2004-01-08  J. Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (subrange_type_die): Add context_die parameter.
	Create the subrange_type DIE using the given context DIE.
	(modified_type_die): Update call to subrange_type_die.

2004-01-08  Zack Weinberg  <zack@codesourcery.com>

	* dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
	Add multiple-include guard.

2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>

	* gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
	all vector constant loadable by vsplt*.
	(output_vec_const_move): Likewise.

2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/6024
	* c-typeck.c (comptypes): Only treat enumerated types in the same
	translation unit as compatible with each other when they are the
	same type.
	* doc/extend.texi: Update.

2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/12165
	* c-decl.c (grokdeclarator): Take type qualifiers of typedefed
	array type from the array element type.

2004-01-07  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
	* config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
	* config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
	(DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
	* config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.

2004-01-06  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
	(DWARF2_DEBUGGING_INFO): Define.
	(PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
	* config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
	* config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
	for irix as.
	(SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
	* config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
	* config/mips/iris5gas.h: Ditto.
	(DBX_DEBUGGING_INFO): Remove.
	(DWARF2_DEBUGGING_INFO): Ditto.
	(MIPS_DEBUGGING_INFO): Ditto.
	(PREFERRED_DEBUGGING_TYPE): Ditto.
	* config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
	(PREFERRED_DEBUGGING_TYPE): Ditto.
	(SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
	* config/mips/elf64.h: Ditto.

2004-01-06  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
	(STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.

2004-01-06  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
	(TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
	* config/rs6000/darwin-ldouble.c: New.

	* emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
	for constants.
	(constant_subword): Delete.
	* rtl.h (constant_subword): Delete prototype.
	(immed_double_const): Is not in varasm.c.
	* simplify-rtx.c (simplify_immed_subreg): New.
	(simplify_subreg): Use simplify_immed_subreg.

	* config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
	than trying to generate RTL directly.
	(fix_trunctfsi2): Use expand_fix rather than trying to generate
	RTL directly.

	* dwarf2out.c (add_const_value_attribute): Remove incorrect comment.

2004-01-06  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
	function into a separate macro.
	(read_only_data_section): Add void argument.
	(private_data_section): Same.
	(read_only_private_data_section): Same.
	(toc_section): Same.

2004-01-06  Jan Hubicka  <jh@suse.cz>

	* invoke.texi:  Remove typo in last change.

	PR target/10301
	* config.gcc: Accept opteron and athlon-64 as variants
	of k8.
	* i386.c (override_options): Likewise.
	* invoke.texi (i386 -mtune): Expand documentation.

2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>

	* alias.c: Fix comment typos.
	* builtins.c: Likewise.
	* cfg.c: Likewise.
	* df.c: Likewise.
	* dominance.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fold-const.c: Likewise.
	* gcse.c: Likewise.
	* genattrtab.c: Likewise.
	* genrecog.c: Likewise.
	* gensupport.c: Likewise.
	* ggc-zone.c: Likewise.
	* integrate.c: Likewise.
	* local-alloc.c: Likewise.
	* loop.c: Likewise.
	* recog.c: Likewise.
	* regmove.c: Likewise.
	* reg-stack.c: Likewise.
	* reorg.c: Likewise.
	* rtlanal.c: Likewise.
	* rtl.h: Likewise.
	* sched-ebb.c: Likewise.
	* simplify-rtx.c: Likewise.
	* toplev.c: Likewise.
	* varasm.c: Likewise.

2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/install.texi: Fix typos.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.

2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed

2004-01-06  Jan Hubicka  <jh@suse.cz>

	* i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
	(function_arg_advance):  Do not pass aggregates in SSE; deal handling
	of MMX_REGPARM.
	(function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
	add MMX_REGPARM.
	* i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
	(SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
	(MMX_REGPARM_MAX): Similarly for -mmmx.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sh/linux.h: Fix comment formatting.
	* config/sh/netbsd-elf.h: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sh/vxworks.h: Likewise.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
	* toplev.c (output_file_directive): Don't use
	ASM_OUTPUT_MAIN_SOURCE_FILENAME.

2004-01-05  Daniel Berlin  <dberlin@dberlin.org>

	* ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
	(USING_MMAP): We don't support non-mmap.
	(struct alloc_chunk): Steal 1 bit from typecode, use it to mark
	large objects.
	(struct page_entry): Remove bytes_free.
	(struct page_table_chain): Remove.
	(struct globals): Remove page_table member.
	(loookup_page_table_entry): Function deleted.
	(set_page_table_entry): Ditto.
	(ggc_allocated_p): No longer need page table lookups.
	(ggc_marked_p): Ditto.
	(alloc_small_page): Don't care about bytes_free anymore.
	(alloc_large_page): Round up size.
	(ggc_alloc_zone_1): Mark large objects as such, and calculate
	their size the new way.
	Remove page table lookups and setting.
	(ggc_get_size): Calculate large object size the new way.
	(sweep_pages): Redo to account for fact that we no longer have
	bytes_free.
	(ggc_collect): No longer need to reincrement bytes_free.
	(ggc_pch_alloc_object): Handle new large objects properly.
	(ggc_pch_read): Put PCH stuff into it's own uncollected zone.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/invoke.texi: Remove a page break.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/avr/avr.c (avr_output_function_prologue): Remove an
	extra pair of curly braces.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300.c: Fix comment formatting.
	* config/mn10300/mn10300.h: Likewise.

2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree.h: Update documentation on nothrow_flag.
	* print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
	types.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/invoke.texi: Remove traces of dead ports.

2004-01-05  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
	option.

2004-01-05  Richard Sandiford  <rsandifo@redhat.com>

	PR target/12945
	* coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
	counter labels.
	* config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
	(mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
	string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
	the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
	(mips_symbol_insns): Don't trust the local/global classification.
	(m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
	(override_options): Make -mabicalls -fno-unit-at-a-time imply
	-mno-explicit-relocs.
	(mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
	between local and global symbols.

2004-01-05  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
	(mips_preferred_reload_class): Declare.
	* config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
	(EXTRA_CONSTRAINT): Update accordingly.
	(PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
	* config/mips/mips.c (mips_dangerous_for_la25_p): New function.
	(mips_preferred_reload_class): New function.  Prefer LEA_REGS if
	mips_dangerous_for_la25_p.
	(mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
	if mips_dangerous_for_la25_p.

2004-01-05  Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
	warning.

2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Use AC_PROG_CPP_WERROR.
	* configure: Regenerate.

2004-01-04  Zack Weinberg  <zack@codesourcery.com>

	* .cvsignore: Add autom4te.cache.

2004-01-04  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Revamp documentation of MIPS options.  Remove
	-mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
	-m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
	then architecture options, then ABI options.  General rewording.

2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/3414
	* doc/extend.texi: Clarify definition of malloc attribute.

2004-01-04  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
	* cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
	* cgraph.h (cgraph_edge): Replace inline_call by inline_failed
	(cgraph_inline_p): Add extra argument reason.
	* cgraphunit.c: Minor formating fixes.
	cgraph_first_inlined_callee): New functions.
	(record_call_1): Record builtins too.
	(cgraph_analyze_function): Update inline_failed messages.
	(cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
	cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
	(cgraph_check_inline_limits): Likewise; Add argument reason.
	(cgraph_set_inline_failed): New static function.
	(cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
	reasons.
	(cgraph_inline_p): Add new argument reason.
	* tree-inline.c (expand_call_inline):  Update warning.

2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
	with modern equivalents.
	* configure: Regenerate.

	* configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
	* aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
	* configure: Regenerate.

	* doc/install.texi: Note that 'gcc' is now a 2.57 directory.

	* configure.in: Rename to configure.ac.
	* configure.ac: Renamed from configure.in; make minimum necessary
	changes for autoconf 2.5x.
	* aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
	* configure: Regenerate with autoconf 2.57.

2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mips/linux.h: Fix comment formatting.
	* config/mips/mips.c: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mips/mips.md: Likewise.
	* config/mips/netbsd.h: Likewise.
	* config/mips/windiss.h: Likewise.

2004-01-02  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (fp constant pool splitter): Reorg suppression
	for sse and 387; add suppression for mmx.

2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>

	* loop.c (loop_optimize): Free all loops_info's mems.

	* c-typeck.c (finish_init): Free spelling_base before
	setting it again.

	* cfgloop.c (flow_loops_find): Always free the sbitmap
	headers.

	* predict.c (estimate_probability): Free bbs after being
	done with it.

2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300.h (PREDICATE_CODES): Add
	const_8bit_operand and call_address_operand.

2004-01-02  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
	when there is nothing to inline but warnings are requested.
	(cgraph_decide_inlining):  Fix memory leak.

2004-01-02  Jan Hubicka  <jh@suse.cz>

	* expr.c (store_constructor):  Fix pasto in previous patch.

2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/cygming.h: Fix comment formatting.
	* config/i386/djgpp.h: Likewise.
	* config/i386/gthr-win32.c: Likewise.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/openbsd.h: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/i386/xm-mingw32.h: Likewise.

2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
	copyright and last modification dates.

2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>

	* doc/install.texi (Specific): Mention x86_64.

2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>

	* builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
	Call force_operand on plus_constant result.

2004-01-01  Jan Hubicka  <jh@suse.cz>

	* expmed.c (store_bit_field, extract_bit_field): Use new named patterns
	* expr.c (store_constructor): Use vec_init pattern.
	* genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
	* optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
	(vec_set_optab, vec_extract_optab, vec_init_optab): New.
	* i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
	New patterns.
	(sse2_unpc?pd): Fix pattern.
	(sse2_movlpd): Kill.
	(sse2_movsd): Deal with movlpd too.
	* i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
	(ix86_expand_vector_init): New.
	* emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
	* md.texi (vec_set, vec_extract): Document

2003-12-31  Jan Hubicka  <jh@suse.cz>

	PR opt/13473
	* recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
	ASM input operands

	PR opt/12617
	* toplev.c (dump_file_index): Reorder ce3 and bbro.
	(dump_file): Likewise.
	(rest_of_compilation): Likewise.

	PR debug/13367
	* cgraph.c (cgraph_function_possibly_inlined):  Even with
	flag_really_no_inline we inline always_inline functions.
	* cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
	for non-always_inline functions when there is flag_really_no_inline.
	(cgraph_decide_inlining): Limit work done when not inlining.
	(cgraph_decide_inlining_incrementally): Likewise.
	(cgraph_optimize_function): Check whether something got inlined.
	* c-objc-common.c (c_disregard_inline_limits): Do not always inline
	extern inline functions when not inlining.

	* opts.c (decode_options):  Disable crossjumping at -O1
	* invoke.texi (-O1): Document change.

From-SVN: r76701
2004-01-27 12:49:31 +00:00
Mark Mitchell def66b107c Makefile.in (OBJS-common): Remove dwarfout.o.
* Makefile.in (OBJS-common): Remove dwarfout.o.
	(dwarfout.o): Remove.
	* common.opt: Remove -gdwarf, -gdwarf+.
	* defaults.h (PREFERRED_DEBUGGING_TYPE): Do not check for
	DWARF_DEBUGGING_INFO.
	* dwarf2out.c: Fix typo in comment.
	* dwarfout.c: Remove.
	* opts.c (common_handle_option): Remove OPT_gdwarf, OPT_gdwarf_.
	* toplev.c (process_options): Remove check for
	DWARF_DEBUGGING_INFO.
	* config/elfos.h (DWARF_DEBUGGING_INFO): Do not #define it or
	#undef it.
	* config/netware.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/ptx4.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/vxworks.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/alpha/unicosmk.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/arc/arc.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/i386/sco5.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/i386/x86-64.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/m32r/m32r.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/mcore/mcore-elf.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/sparc/linux64.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/sparc/liteelf.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/sparc/sol26-sld.h (DWARF_DEBUGGING_INFO): Likewise.
	* config/sparc/sp86x-elf.h (DWARF_DEBUGGING_INFO): Likewise.
	* doc/invoke.texi: Do not mention -gdwarf, -gdwarf-1, -gdwarf-1+,
	or -gdwarf+.
	* doc/tm.texi: Likewise.

From-SVN: r74996
2003-12-24 00:14:25 +00:00
Jan Hubicka a8a5f53add common.opt (fprofile-generate,fprofile-use): Add.
* common.opt (fprofile-generate,fprofile-use): Add.
	* gcc.c (LINK_COMMAND_SPEC): Arrange -fprofile-generate to imply -lgcov
	* opts.c (profile_arc_flag_set, flag_profile_values_set,
	flag_unroll_loops_set, flag_tracer_set,
	flag_value_profile_transformations_set,
	flag_peel_loops_set): New static variables.
	(common_handle_option): Deal with -fprofile-generate/-fprofile-use
	* invoke.texi (-fprofile-generate, -fprofile-use): Describe.

From-SVN: r74976
2003-12-23 17:55:33 +00:00
Zack Weinberg dc170a876a common.opt: Remove -fgnu-linker.
* common.opt: Remove -fgnu-linker.
	* flags.h: Remove flag_gnu_linker.
	* opts.c: Don't handle OPT_fgnu_linker.
	* toplev.c: Don't initialize flag_gnu_linker.
	Remove gnu-linker entry from f_options.
	* config/dsp16xx/dsp16xx.h (OPTIMIZATION_OPTIONS):
	Don't reset flag_gnu_linker.
	* config/mips/mips.c (override_options): Likewise.
	* doc/invoke.texi: Remove all mention of -fgnu-linker.

From-SVN: r74117
2003-12-01 18:25:39 +00:00
Richard Henderson c132886e7c ssa.c, [...]: Remove files.
* ssa.c, ssa-dce.c, ssa-ccp.c: Remove files.
        * Makefile.in (OBJS-common, GTFILES): Don't reference them.
        (gtype-desc.o, toplev.o, flow.o): Remove ssa.h.
        (ssa.o, ssa-dce.o, ssa-ccp.o): Remove.
        * flow.c: Don't include ssa.h.
        (set_phi_alternative_reg): Remove.
        (calculate_global_regs_live): Don't call it.
        (mark_used_regs): Don't handle PHI.
        * gengtype.c (open_base_files): Don't reference ssa.h.
        * rtl.def (PHI): Remove.
        * timevar.def (TV_TO_SSA, TV_SSA_CCP, TV_SSA_DCE, TV_FROM_SSA): Kill.
        * common.opt: Remove -fssa, -fssa-ccp, -fssa-dce.
        * opts.c (common_handle_option): Likewise.
        * toplev.c (f_options): Likewise.
        (DFI_ssa, DFI_ssa_ccp, DFI_ssa_dce, DFI_ussa): Remove.
        (dump_file): Update to match.
        (flag_ssa, flag_ssa_ccp, flag_ssa_dce): Remove.
        (rest_of_handle_ssa): Remove.
        (rest_of_compilation): Don't call it.
        * toplev.h (flag_ssa, flag_ssa_dce, flag_ssa_ccp): Remove.
        * doc/invoke.texi: Remove -fssa, -fssa-ccp, -fssa-dce.
        * doc/passes.texi (SSA optimizations): Remove.

        * gcc.dg/20020201-2.c: Remove.
        * gcc.dg/20020201-4.c: Remove.
        * gcc.dg/20020304-1.c: Remove.

From-SVN: r73789
2003-11-20 20:05:08 -08:00
Zdenek Dvorak fca9dc0058 Makefile.in (toplev.o): Add value-prof.h dependency.
* Makefile.in (toplev.o): Add value-prof.h dependency.
	(value-prof.o): Add REGS_H dependency.
	* common.opt (fprofile-values, fvpt): New.
	* flags.h (flag_value_profile_transformations): Declare.
	* opts.c (common_handle_option): Handle -fprofile_values and
	-fvpt.
	* profile.c (branch_prob): Don't remove death notes here.
	* timevar.def (TV_VPT): New.
	* value-prof.c: Include regs.h.
	(insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2,
	gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform,
	mod_subtract_transform, value_profile_transformations): New.
	(insn_values_to_profile): Call insn_divmod_values_to_profile.
	(find_values_to_profile): Add dumps.
	* value-prof.h (value_profile_transformations): Declare.
	* toplev.c: Include value-prof.h.
	(rest_of_handle_value_profile_transformations): New.
	(enum dump_file_index): Add DFI_vpt.
	(dump_file): Add vpt dump.
	(flag_value_profile_transformations): New.
	(lang_independent_options): Add flag_profile_values and
	flag_value_profile_transformations.
	(rest_of_compilation): Call
	rest_of_handle_value_profile_transformations.
	(process_options): Let -fvpt imply -fprofile-values.
	* doc/invoke.texi (-fvpt): Document.

From-SVN: r72685
2003-10-19 21:37:32 +00:00
Mostafa Hagog f5f2e3cd9b common.opt: Add description of the new -fgcse-las flag.
2003-10-17  Mostafa Hagog  <mustafa@il.ibm.com>

	* common.opt: Add description of the new -fgcse-las flag.
	* flags.h (flag_gcse_las): Declaration of global flag_gcse_las.
	* gcse.c (hash_scan_set): Handle the case of store expression and
	insert the memory expression to the hash table, this way we make it
	possible to discover redundant loads after stores and remove them.
	(pre_insert_copy_insn): moved the call to update_ld_motion_stores,
	to pre_insert_copies, it is not the correct place to call it after
	adding stores to be in the available expression hash table.
	(pre_insert_copies): Added the call to update_ld_motion_stores when
	one or more copies were inserted.
	* opts.c (common_handle_option): Handle the -fgcse-las flag.
	* toplev.c (flag_gcse_las): Initialization of flag_gcse_las.

	* doc/invoke.tex: Document new -fgcse-las flag.

From-SVN: r72612
2003-10-17 16:16:45 +00:00
Jan Hubicka 62551c66fd Makefile.in (web.o): New.
* Makefile.in (web.o): New.
	* web.c: New file.
	* rtl.h (web_main): Declare.
	* timervar.def (TV_WEB): New.
	* toplev.c (dump_file_index, dump_file_info): Add DFI_web.
	(rest_of_hanle_web): New.
	(flag_web): New static variable.
	(lang_independent_options): Add "web".
	(rest_of_compilation): Call rest_of_handle_web.
	* invoke.texi (-fweb): Document.
	* common.opt (fweb): New.
	* flags.h (flag_web): New.
	* opts.c (decode_options): Set flag_web at -O3.

	* passes.texi (web construction):  Document.
	* invoke.texi (-O3): Document that -fweb is enabled.

	* regrename.c (regrename_optimize): Deal better with situation when
	replacement failed.

	* sched-ebb.c: Include params.h and profile.h
	(schedule_ebbs):  Use tracer parameters to discover superblocks
	* Makefile.in (sched-ebb.o):  Add dependencies.

From-SVN: r72383
2003-10-11 22:57:48 +00:00
Dorit Naishlos 569fa502d1 haifa-sched.c (ok_for_early_schedule): New function.
* haifa-sched.c (ok_for_early_schedule): New function.
        (early_queue_to_ready): New function.
        (schedule_block): Allow early removal of insns from Q.
        (schedule_insn): Update INSN_TICK in case of premature
        issue.
        * common.opt (sched_stalled_insns): New flag.
        (sched_stalled_insns_dep): New flag.
        * flags.h: Same above flags.
        * opts.c: Same as above.
        * toplev.c: Same as above.
        * target.h (targetm.sched.is_costly_dependence): New
        hook.
        * target-def.h: Same as above.
        * config/rs6000/rs6000.h: (rs6000_sched_costly_dep):
        Support new flag -msched-costly-dep.
        (DEFAULT_SCHED_COSTLY_DEP): Define.
        * config/rs6000/rs6000.c:
        (rs6000_is_costly_dependence): New function.
        (is_load_insn, is_store_insn): New functions.
        (is_load_insn1, is_store_insn1, is_mem_ref): New
        functions.
        * doc/invoke.texi (-fsched-stalled-insns-dep)
        (-fsched-stalled-insns, -msched-costly-dep): Document
        options.
        * doc/tm.texi (is_costly_dependence): Define new
        scheduler target hook.

From-SVN: r72261
2003-10-09 09:08:37 +00:00
Roger Sayle 039c3d42d5 toplev.c (flag_rounding_math): New global variable.
* toplev.c (flag_rounding_math): New global variable.
	(f_options): Add to the list of language independent options.
	* flags.h (flag_rounding_math): Prototype here.
	(HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead.
	* common.opt (frounding-math): New common command line option.
	* opts.c (common_handle_option): Handle OPT_frounding_math.
	(set_fast_math_flags): -ffast-math clears flag_rounding_math.

	* doc/invoke.texi: Document this new command line option.

From-SVN: r71032
2003-09-03 20:57:31 +00:00
Neil Booth df38ffef8c common.opt: Add debug switches.
* common.opt: Add debug switches.
	* flags.h (use_gnu_debug_info_extensions): Boolify.
	* opts.c (write_symbols, debug_info_level,
	use_gnu_debug_info_extensions): Move from toplev.c.
	(set_debug_level): New.
	(common_handle_options): Handle debug switches.
	(print_help): Display target options directly.
	* toplev.c (debug_hooks): Don't initialize.
	(write_symbols, debug_info_level,
	use_gnu_debug_info_extensions): Move to opts.c.
	(debug_args, display_help, decode_g_option): Remove.
	(process_options): Set no debug if level zero here,
	and no-debug-hooks.  Error here if impossible debug format selected.
	* toplev.h (display_help, decode_g_option): Remove.
testsuite:
	* lib/gcc-dg.exp: Update for diagnostic change.

From-SVN: r70253
2003-08-08 19:22:44 +00:00
Neil Booth 2cc980567a common.opt: Document --param.
* common.opt:  Document --param.
	* opts.c (columns, undocumented_msg): New.
	(print_help): Get number of columns from environment.  Print
	--param help.  Tweak newline handling.
	(print_param_help): New.
	(print_filtered_help): Better handling of duplicates.  Complain
	about undocumented switches.
	(print_switch): New.
	(wrap_help): Improve wrapping, use COLUMNS.
	* opts.sh: Ignore comments in records.
	* params.def: Fix typos and remove trailing periods.
	* toplev.c (display_help): Don't dump --param help.
	* doc/sourcebuild.texi: Update.
java:
	* lang.opt: Don't show -MD_ and -MDD_.

From-SVN: r69581
2003-07-19 08:13:58 +00:00
Neil Booth f3fdaec48d common.opt: More --help messages.
* common.opt: More --help messages.
	* opts.c (print_help): Use puts().
	* toplev.c (f_options): Remove help text.
	(display_help): Don't dump f_options.

From-SVN: r69217
2003-07-11 05:35:06 +00:00
Neil Booth 28786366d6 toplev.c (warn_dummy, W_options): Die.
* toplev.c (warn_dummy, W_options): Die.
	(display_help): Don't print W_options.
	* common.opt: Add W_options help from toplev.c.

From-SVN: r69125
2003-07-09 05:28:04 +00:00
Neil Booth cf03fd63cd Makefile.in: Update.
* Makefile.in: Update.
	* c-opts.c (c_common_handle_option): opt_text now contains the '-'.
	* c.opt: Update documentation.
	* common.opt: Add some help text.
	* opts.c: Include intl.h.
	(wrap_help, print_help): New.
	(find_opt, handle_option, common_handle_option): opt_text now
	contains the '-'.  Use print_help to output help.
	* opts.h (struct cl_option): New member "help".
	* opts.sh: Update to handle help text output and to prepend
	options with '-'.
	* toplev.c (display_help): Remove some help text.

From-SVN: r69068
2003-07-08 05:25:39 +00:00
Devang Patel 6a08f7b337 final.c (debug_flush_symbol_queue): New function.
* final.c (debug_flush_symbol_queue): New function.
        (debug_queue_symbol): New function.
        (debug_free_queue): New function.
        (debug_nesting): New variable.
        (symbol_queue): New variable.
        (symbol_queue_index): Same.
        (symbol_queue_size): Same.
        * debug.h (debug_flush_symbol_queue): New.
        (debug_queue_symbol): New.
        (debug_free_queue): New.
        (debug_nesting): New.
        (symbol_queue_index): New.
        * dbxout.c (DBXOUT_DECR_NESTING): New macro.
        (DBXOUT_DECR_NESTING_AND_RETURN): New macro.
        (dbxout_init): Delay symbol output.
        (dbxout_global_decl): Save, set and reset TREE_USED bit around dbxout_symbol()
        call.
        (dbxout_begin_function): Same.
        (dbxout_finish): Free symbol queue.
        (dbxout_type): Put appropriate symbols in queue.
        (dbxout_symbol): Put info for symbol's type in queue. Decrement/Increment
        nesting counts flush symbol queue appropriately.
        (dbxout_parms): Increment dbxout nesting.
        (dbxout_reg_parms): Same.
        * flags.h (flag_debug_only_used_symbols): New.
        * toplev.c (flag_debug_only_used_symbols): New variable.
        (lang_independent_options): Add entries for new option -feliminate-unused-debug-symbols.
        * common.opt: Add entry for -feliminate-unused-debug-symbols.
        * opts.c (common_handle_options): Same.
        * config/rs6000/darwin.h (CC1_SPEC): Interpret -gused as -feliminate-unused-debug-symbols.
        * doc/invoke.texi (Debugging Options): Document -feliminate-unused-debug-symbols.

From-SVN: r68556
2003-06-26 20:04:40 -07:00
Neil Booth d302c9d6ce common.opt: Add -finline-limit.
* common.opt: Add -finline-limit.
	* opts.c (common_handle_options): Handle it.
	* opts.sh: Temporary kludge for -finline-limit.
	* toplev.c (decode_f_option, independent_decode_option): Die.
	(parse_options_and_default_flags): No independent_decode_option.

From-SVN: r68348
2003-06-22 20:21:35 +00:00
Neil Booth 6ff3a151fd common.opt: More -f switches.
* common.opt: More -f switches.
	* opts.c (common_handle_options): Handle them.
	* toplev.c (time_report): Make extern.
	(f_options): USe flag_dummy.
	(decode_f_option): No need to use f_options now.
	* toplev.h (flag_cprop_registers, flag_ssa, flag_ssa_ccp,
	flag_ssa_dce, time_report, flag_new_regalloc): Make extern.

From-SVN: r68328
2003-06-22 13:44:40 +00:00
Neil Booth de32c0cb3b Makefile.in: Update.
* Makefile.in: Update.
	* common.opt: New switches.
	* opts.c: Include diagnostic.h.
	(common_handle_option): Handle new switches.
	* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
	flag_if_conversion2, flag_delete_null_pointer_checks,
	flag_rerun_cse_after_loop): Make extern.
	(flag_dummy): New.
	(f_options): Update to use flag_dummy for moved options.
	(decode_f_option): Some switches moved to opts.c.
	* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
	flag_if_conversion2, flag_delete_null_pointer_checks,
	flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
	flag_tracer, flag_thread_jumps, flag_unroll_loops,
	flag_unroll_all_loops, flag_unswitch_loops): New.
f:
	* lang.opt: Add -fpreprocessed.
	* top.c (ffe_handle_option): Handle it.

From-SVN: r68315
2003-06-21 20:28:18 +00:00
Neil Booth 058de654c5 Makefile.in: Update.
* Makefile.in: Update.
	* c-opts.c (c_common_handle_option): Don't return -1.
	* common.opt: New switches.
	* opts.c: Include rtl.h, ggc.h and output.h.
	(find_opt): Only stop searching when input switch compares
	less than the stored switch.  Continue searching if greater.
	(handle_option): No need to handle negative return values.
	(common_handle_option): Handle new switches.
	(set_fast_math_flags, fast_math_flags_set_p): New.
	* toplev.c (set_fast_math_flags, fast_math_flags_set_p):
	Move to opts.c.
	(decode_f_option): Some switches moved to opts.c.
	(parse_options_and_default_flags): No need to cater for negative
	return values.
f:
	* top.c (ffe_handle_option): No need to return -1 any more.

From-SVN: r68307
2003-06-21 15:59:31 +00:00
Neil Booth e01cc6dc62 c-decl.c (store_parm_decls): Make saved_warn_shadow boolean.
* c-decl.c (store_parm_decls): Make saved_warn_shadow boolean.
	* common.opt: Add remaining -W options and -g.
	* diagnostic.c (warnings_are_errors): Remove.
	* flags.h: Make most warning flags boolean.
	* opts.c (common_handle_option): Handle remaining -W options, and -g.
	Move many warning flags from toplev.c, making them boolean.
	* toplev.c: Remove many warning flags.
	(decode_W_option): Remove.
	(decode_g_option): Make extern.  Error on unknown switch.
	(lang_independent_W_options): Use warn_dummy.
	(independent_decode_option): Just handle -f switches now.
	* toplev.h (decode_g_option): New.

From-SVN: r68287
2003-06-20 22:56:36 +00:00
Neil Booth 903caebf49 Makefile.in: Update.
* Makefile.in: Update.
	* common.opt: New options.
	* opts.c (maybe_warn_unused_parameter, set_Wextra, handle_param,
	set_Wunused): New.
	(common_handle_option): Handle new options.
	* toplev.c (set_target_switch): Export.
	(set_Wextra, set_Wunused, maybe_warn_unused_parameter): Move to opts.c.
	(decode_W_option): -Wunused and -Wextra handled in opts.c now.
	(independent_decode_option): More options handled in opts.c now.
	Change prototype.
	* toplev.h (set_target_switch): New.

From-SVN: r68138
2003-06-18 06:00:06 +00:00
Neil Booth 7b086b11df c-opts.c (c_common_handle_option): s/on/value/.
* c-opts.c (c_common_handle_option): s/on/value/.
	(OPT_fabi_version_, OPT_ftabstop_, OPT_ftemplate_depth_): Use value
	directly rather than converting the argument.
	* c.opt: Update docs.  Use UInteger where appropriate.
	* common.opt: Use UInteger where appropriate.
	* opts.c (integral_argument): New.
	(handle_argument): Handle integral arguments, and optional
	joined arguments.
	(common_handle_option): Update.
	* opts.h (CL_MISSING_OK, CL_UINTEGER): New.
	* opts.sh: Handle JoinedOrMissing and UInteger flags.
java:
	* lang.c (java_handle_option): Special-casing of optional
	joined arguments no longer needed.
	* lang.opt: Update switches that take optional argument.

From-SVN: r67999
2003-06-16 05:47:07 +00:00