Commit Graph

67326 Commits

Author SHA1 Message Date
Kazu Hirata
a457d98ca3 cp-tree.h (EXCEPTION_CLEANUP_NAME, [...]): Remove.
* cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
	CONV_STATIC_CAST): Remove.

From-SVN: r97908
2005-04-09 16:55:03 +00:00
Kazu Hirata
eac02e5960 * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
From-SVN: r97907
2005-04-09 16:53:39 +00:00
Kazu Hirata
9c45842f24 * cp-tree.h (cxx_alignof): Remove.
From-SVN: r97906
2005-04-09 16:52:46 +00:00
Kazu Hirata
728522c390 sched-int.h (haifa_insn_data): Remove blockage and units.
* sched-int.h (haifa_insn_data): Remove blockage and units.
	(INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
	ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
	MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.

From-SVN: r97905
2005-04-09 16:51:48 +00:00
Kazu Hirata
f3b569ca7e dominance.c, [...]: Fix comment typos.
* dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
	tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
	config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
	config/rs6000/predicates.md: Fix comment typos.

From-SVN: r97904
2005-04-09 16:43:43 +00:00
Jan Hubicka
7b0cab995d cfglayout.c (copy_bbs): Rename n_edges to num_edges.
* cfglayout.c (copy_bbs): Rename n_edges to num_edges.
	* cfgloop.c (get_loop_exit_edges): Likewise.
	* cfgloopmanip.c (fix_irreducible_loops): Likewise.
	(unloop): Likewise.
	* loop-unroll.c (analyze_insns_in_loop): Likewise.
	* tree-cfg.c (dump_cfg_status): Likewise.

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

From-SVN: r97903
2005-04-09 16:09:11 +00:00
David Edelsohn
5b296c8a76 predicates.md (altivec_register_operand): Remove redundant match_code test.
* config/rs6000/predicates.md (altivec_register_operand): Remove
        redundant match_code test.
        (gpc_reg_operand): Same.
        (cc_reg_operand): Same.
        (cc_reg_not_cr0_operand): Same.

From-SVN: r97902
2005-04-09 11:39:34 -04:00
Jan Hubicka
0be0a2bef8 Forgotten hunk from my last merge patch:
* final.c (output_addr_const): Do not call mark_referenced.

From-SVN: r97897
2005-04-09 13:37:33 +00:00
Andrew MacLeod
43ae1e1c63 tree-ssa.texi: Add immediate use documentation.
2005-04-09  Andrew MacLeod  <amacleod@redhat.com>

	* doc/tree-ssa.texi: Add immediate use documentation.

From-SVN: r97895
2005-04-09 12:07:44 +00:00
Richard Earnshaw
abac3b49c2 arm.c (FL_WBUF): Define.
* arm.c (FL_WBUF): Define.
	(arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
	(arm_is_6_or_7): Delete.
	(arm_tune_wbuf): New.
	(arm_override_options): Set arm_tune_wbuf.
	* arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
	(arm_is_6_or_7): Delete declaration.
	(arm_tune_wbuf): New declartion.
	* arm.md (is_strongarm): Derive from arm_tune_strongarm.
	(model_wbuf): Derive from arm_tune_wbuf.
	* arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
	(arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
	(arm740t): Mark CPUs as having a write buffer.

From-SVN: r97894
2005-04-09 12:03:54 +00:00
Francois-Xavier Coudert
835d64ab88 match.c (match_arithmetic_if): Remove gfc_ prefix and correct comment according to GNU coding style.
* match.c (match_arithmetic_if): Remove gfc_ prefix and correct
	comment according to GNU coding style.

From-SVN: r97890
2005-04-09 09:13:53 +00:00
Uros Bizjak
17153653c0 i386.md (*fp_jcc_7_387): Use 'const0_operand' instead of 'const_double_operand' in operand 2 constraints.
* config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
	of 'const_double_operand' in operand 2 constraints.  Update enable
	condition.

From-SVN: r97887
2005-04-09 07:39:47 +02:00
Uros Bizjak
d8b42d069e * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
(BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
	* optabs.h (enum optab_index): Add new OTI_lfloor.
	(lfloor_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize lfloor_optab.
	* genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
	and lfloordi2 patterns.

	* builtins.c (expand_builtin_int_roundingfn): New prototype.
	(expand_builtin_int_roundingfn): New function.
	(fold_builtin_int_roundingfn): New prototype.
	(fold_builtin_int_roundingfn): New function, renamed from
	fold_builtin_lround.
	Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
	BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
	(fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
	BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
	(mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
	(expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
	BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.

	* convert.c (convert_to_integer): Convert (long int)floor{,f,l},
	into lfloor built-in function and (long long int)floor{,f,l} into
	llfloor built-in function.
	* fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
	BUILT_IN_LLFLOOR.

testsuite:

	* gcc.dg/builtins-53.c: New test.

From-SVN: r97886
2005-04-09 07:31:46 +02:00
Ian Lance Taylor
fbc315db4a c-common.def: Move FOR_STMT...
./	* c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
	CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
	* c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
	(DO_COND, DO_BODY): Likewise.
	(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
	(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
	(c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
	BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
	(build_continue_stmt, build_break_stmt): Don't declare.
	(c_do_switch_warnings): Update declaration.
	* c-gimplify.c (enum bc_t): Remove.
	(struct c_gimplify_ctx, ctxp): Remove.
	(push_context, pop_context): Remove static functions.
	(c_genericize): Don't call push_context or pop_context.
	(begin_bc_block, finish_bc_block): Remove static functions.
	(build_bc_goto): Likewise.
	(gimplify_c_loop): Likewise.
	(gimplify_for_stmt, gimplify_while_stmt): Likewise.
	(gimplify_do_stmt, gimplify_switch_stmt): Likewise.
	(c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
	DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
	* c-common.c (c_do_switch_warnings): Rename from
	c_do_switch_warnings_1.
	(c_do_switch_warnings) [old version]: Remove.
	(c_do_switch_expr_warnings): Remove.
	* c-typeck.c (c_finish_case): Call new c_do_switch_warnings
	function instead of c_do_switch_expr_warnings.
	* c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
	CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
	* c-pretty-print.c (pp_c_statement): Likewise.
	* c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
cp/
	* cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
	CONTINUE_STMT, SWITCH_STMT.
	* cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
	BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
	(WHILE_COND, WHILE_BODY): Define.
	(DO_COND, DO_BODY): Define.
	(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
	(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
	* cp-gimplify.c (enum bc_t): Define.
	(struct cp_gimplify_ctx, ctxp): Define.
	(push_context, pop_context): New static functions.
	(begin_bc_block, finish_bc_block): New static functions.
	(build_bc_goto): New static function.
	(gimplify_cp_loop, gimplify_for_stmt): New static functions.
	(gimplify_while_stmt, gimplify_do_stmt): Likewise.
	(gimplify_switch_stmt): Likewise.
	(cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
	SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
	(cp_genericize): Call push_context and pop_context.
	* semantics.c (finish_break_stmt): Just call build_stmt
	(BREAK_STMT) rather than build_break_stmt.
	(finish_continue_stmt): Corresponding change.
	* decl.c (pop_switch): Update call to c_do_switch_warnings for new
	parameters.
	* cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
	WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
	* dump.c (cp_dump_tree): Likewise.

From-SVN: r97885
2005-04-09 03:18:18 +00:00
Diego Novillo
0bca51f080 backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols.
Merge from tree-cleanup-branch: VRP, store CCP, store
	    copy-prop, incremental SSA updating of FUD chains and
	    newly exposed symbols.

	* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
	(OBJS-common): Add tree-vrp.o.
	(tree-vrp.o): New rule.
	* basic-block.h (nearest_common_dominator_for_set): Declare.
	* common.opt (ftree-store-ccp): New flag.
	(ftree-copy-prop): New flag.
	(ftree-vrp): New flag.
	(ftree-store-copy-prop): New flag.
	* dominance.c (nearest_common_dominator_for_set): New.
	* domwalk.c (walk_dominator_tree): Only traverse
	statements in blocks marked in walk_data->interesting_blocks.
	* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
	* fold-const.c (fold): Handle ASSERT_EXPR.
	* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
	Set flag_tree_store_ccp, flag_tree_store_copy_prop and
	flag_tree_vrp at -O2.
	* timevar.def (TV_TREE_VRP): Define.
	(TV_TREE_COPY_PROP): Define.
	(TV_TREE_STORE_COPY_PROP): Define.
	(TV_TREE_SSA_INCREMENTAL): Define.
	(TV_TREE_STORE_CCP): Define.
	* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
	to kill_redundant_phi_nodes from comment.
	(verify_expr): Handle ASSERT_EXPR.
	* tree-dfa.c (mark_new_vars_to_rename): Remove second
	argument.  Update all users.
	(mark_call_clobbered_vars_to_rename): Remove.  Update all
	users.
	* tree-flow-inline.h (unmodifiable_var_p): New.
	* tree-flow.h (enum value_range_type): Declare.
	(struct value_range_def): Declare.
	(value_range): Declare.
	(remove_all_phi_nodes_for): Remove.  Update all users.
	(find_phi_node_for): Declare.
	(add_type_alias): Declare.
	(count_uses_and_derefs): Declare.
	(kill_redundant_phi_nodes): Remove.
	(rewrite_into_ssa): Remove.
	(rewrite_def_def_chains): Remove.
	(update_ssa, register_new_name_mapping, create_new_def_for,
	need_ssa_update_p, name_registered_for_update_p,
	release_ssa_name_after_update_ssa, dump_repl_tbl,
	debug_repl_tbl, dump_names_replaced_by,
	debug_names_replaced_by, mark_sym_for_renaming,
	mark_set_for_renaming, get_current_def, set_current_def,
	get_value_range, dump_value_range, debug_value_range,
	dump_all_value_ranges, debug_all_value_ranges,
	expr_computes_nonzero, loop_depth_of_name,
	unmodifiable_var_p): Declare.
	* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
	ASSERT_EXPR.
	* tree-into-ssa.c (block_defs_stack): Update comment.
	(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
	syms_to_rename, names_to_release, repl_tbl,
	need_to_initialize_update_ssa_p, need_to_update_vops_p,
	need_to_replace_names_p): New locals.
	(NAME_SETS_GROWTH_FACTOR): Define.
	(struct repl_map_d): Declare.
	(struct mark_def_sites_global_data): Add field
	interesting_blocks.
	(enum rewrite_mode): Declare.
	(REGISTER_DEFS_IN_THIS_STMT): Define.
	(compute_global_livein): Use last_basic_block instead of
	n_basic_blocks.
	(set_def_block): Remove last argument.  Update all callers.
	(prepare_use_operand_for_rename): Remove.  Update all callers.
	(prepare_def_operand_for_rename): Remove.  Update all callers.
	(symbol_marked_for_renaming): New.
	(is_old_name): New.
	(is_new_name): New.
	(repl_map_hash): New.
	(repl_map_eq): New.
	(repl_map_free): New.
	(names_replaced_by): New.
	(add_to_repl_tbl): New.
	(add_new_name_mapping): New.
	(mark_def_sites): Assume that all the operands in the
	statement are in normal form.
	(find_idf): Assert that the block in the stack is valid.
	(get_default_def_for): New.
	(insert_phi_nodes_for): Add new argument 'update_p'.
	Add documentation.
	If update_p is true, add a new mapping between the LHS of
	each new PHI and the name that it replaces.
	(insert_phi_nodes_1): Only call find_idf if needed.
	(get_reaching_def): Call get_default_def_for.
	(rewrite_operand): Remove.
	(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
	and REWRITE_THIS_STMT are false.
	Assume that all the operands in the statement are in
	normal form.
	(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
	(rewrite_virtual_phi_arguments): Remove.
	(invalidate_name_tags): Remove.
	(register_new_update_single, register_new_update_set,
	rewrite_update_init_block, replace_use,
	rewrite_update_fini_block, rewrite_update_stmt,
	rewrite_update_phi_arguments): New.
	rewrite_blocks): Remove argument 'fix_virtual_phis'.
	Add arguments 'entry', 'what' and 'blocks'.
	Initialize the dominator walker according to 'what' and
	'blocks'.
	Start the dominator walk at 'entry'.
	(mark_def_site_blocks): Add argument 'interesting_blocks'.
	Use it to configure the dominator walker.
	(rewrite_into_ssa): Remove argument 'all'.
	Make internal.
	(rewrite_all_into_ssa): Remove.
	(rewrite_def_def_chains): Remove.
	(mark_def_interesting, mark_use_interesting,
	prepare_phi_args_for_update, prepare_block_for_update,
	prepare_def_site_for, prepare_def_sites,
	dump_names_replaced_by, debug_names_replaced_by,
	dump_repl_tbl, debug_repl_tbl, init_update_ssa,
	delete_update_ssa, create_new_def_for,
	register_new_name_mapping, mark_sym_for_renaming,
	mark_set_for_renaming, need_ssa_update_p,
	name_registered_for_update_p, ssa_names_to_replace,
	release_ssa_name_after_update_ssa,
	insert_updated_phi_nodes_for, update_ssa): New.
	* tree-loop-linear.c (linear_transform_loops): Call
	update_ssa instead of rewrite_into_ssa.
	* tree-optimize.c (vars_to_rename): Remove.
	Update all users.
	(init_tree_optimization_passes): Replace
	pass_redundant_phi with pass_copy_prop.
	Add pass_vrp.
	Replace pass_ccp with pass_store_ccp.
	Add pass_store_copy_prop after pass_store_ccp.
	(execute_todo): If the TODO_ flags don't include updating
	the SSA form, assert that it does not need to be updated.
	Call update_ssa instead of rewrite_into_ssa and
	rewrite_def_def_chains.
	If TODO_verify_loops is set, call verify_loop_closed_ssa.
	(tree_rest_of_compilation):
	* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
	TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
	TODO_cleanup_cfg): Renumber.
	(TODO_verify_loops, TODO_update_ssa,
	TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
	TODO_update_ssa_only_virtuals): Define.
	(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
	Declare.
	* tree-phinodes.c (make_phi_node): Update documentation.
	(remove_all_phi_nodes_for): Remove.
	(find_phi_node_for): New.
	* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
	(interpret_rhs_modify_expr): Likewise.
	* tree-sra.c (decide_instantiations): Mark all symbols in
	SRA_CANDIDATES for renaming.
	(mark_all_v_defs_1): Rename from mark_all_v_defs.
	(mark_all_v_defs): New function.  Update all users to call it
	with the whole list of scalarized statements, not just the
	first one.
	* tree-ssa-alias.c (count_ptr_derefs): Make extern.
	(compute_flow_insensitive_aliasing): If the tag is
	unmodifiable and the variable isn't or vice-versa, don't
	make them alias of each other.
	(setup_pointers_and_addressables): If the type tag for
	VAR is about to change, mark the old one for renaming.
	(add_type_alias): New.
	* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
	(ccp_lattice_t): Rename from latticevalue.
	(value): Remove.  Update all users.
	(const_val): New local variable.
	(do_store_ccp): New local variable.
	(dump_lattice_value): Handle UNINITIALIZED.
	(debug_lattice_value): New.
	(get_default_value): Re-write.
	(set_lattice_value): Re-write.
	(def_to_varying): Remove.  Update all users.
	(likely_value): Return VARYING for statements that make
	stores when STORE_CCP is false.
	Return VARYING for any statement other than MODIFY_EXPR,
	COND_EXPR and SWITCH_EXPR.
	(ccp_initialize): Re-write.
	(replace_uses_in, replace_vuse_in, substitute_and_fold):
	Move to tree-ssa-propagate.c.
	(ccp_lattice_meet): Handle memory stores when
	DO_STORE_CCP is true.
	(ccp_visit_phi_node): Likewise.
	(ccp_fold): Likewise.
	(evaluate_stmt): Likewise.
	(visit_assignment): Likewise.
	(ccp_visit_stmt): Likewise.
	(execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
	into DO_STORE_CCP.
	(do_ssa_ccp): New.
	(pass_ccp): Use it.
	(do_ssa_store_ccp): New.
	(gate_store_ccp): New.
	(pass_store_ccp): Declare.
	* tree-ssa-copy.c: Include tree-ssa-propagate.h.
	(may_propagate_copy): Reformat.
	Don't abort if ORIG is a virtual and DEST isn't.
	If NEW does not have alias information but DEST does,
	copy it.
	(copy_of, cached_last_copy_of, do_store_copy_prop, enum
	copy_prop_kind, which_copy_prop): Declare.
	(stmt_may_generate_copy, get_copy_of_val,
	get_last_copy_of, set_copy_of_val, dump_copy_of,
	copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
	copy_prop_visit_stmt, copy_prop_visit_phi_node,
	init_copy_prop, fini_copy_prop, execute_copy_prop,
	gate_copy_prop, do_copy_prop, gate_store_copy_prop,
	store_copy_prop): New.
	(pass_copy_prop, pass_store_copy_prop): Declare.
	* tree-ssa-dom.c (struct opt_stats_d): Add fields
	'num_const_prop' and 'num_copy_prop'.
	(cprop_operand): Update them.
	(dump_dominator_optimization_stats): Dump them.
	(tree_ssa_dominator_optimize): Call update_ssa instead of
	rewrite_into_ssa.
	(loop_depth_of_name): Declare extern.
	(simplify_cond_and_lookup_avail_expr): Guard against NULL
	values for LOW or HIGH.
	(cprop_into_successor_phis): Only propagate if NEW != ORIG.
	(record_equivalences_from_stmt): Call expr_computes_nonzero.
	(cprop_operand): Only propagate if VAL != OP.
	* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
	statement for renaming.
	* tree-ssa-loop-im.c (move_computations): Call update_ssa.
	* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
	add_type_alias if necessary.
	Call mark_new_vars_to_rename.
	(tree_ssa_iv_optimize): If new symbols need to be renamed,
	mark every statement updated, call update_ssa and
	rewrite_into_loop_closed_ssa.
	* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
	from LIVEIN if VAR is a virtual.
	* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
	* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
	(get_call_expr_operands): Reformat statement.
	(add_stmt_operand): Don't create V_MAY_DEFs for read-only
	symbols.
	* tree-ssa-propagate.c (ssa_prop_init): Initialize
	SSA_NAME_VALUE for every name.
	(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
	get_value_loaded_by): New.
	(replace_uses_in, replace_vuses_in, replace_phi_args_in,
	substitute_and_fold): Move from tree-ssa-ccp.c.
	* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
	first_vdef, stmt_makes_single_load, stmt_makes_single_store,
	get_value_loaded_by, replace_uses_in, substitute_and_fold):
	Declare.
	* tree-ssa.c (verify_use): Fix error message.
	(propagate_into_addr, replace_immediate_uses, get_eq_name,
	check_phi_redundancy, kill_redundant_phi_nodes,
	pass_redundant_phi): Remove.  Update all users.
	* tree-vect-transform.c (vect_create_data_ref_ptr): Call
	add_type_alias, if necessary.
	* tree-vectorizer.h (struct _stmt_vect_info): Update
	documentation for field 'memtag'.
	* tree-vrp.c: New file.
	* tree.def (ASSERT_EXPR): Define.
	* tree.h (ASSERT_EXPR_VAR): Define.
	(ASSERT_EXPR_COND): Define.
	(SSA_NAME_VALUE_RANGE): Define.
	(struct tree_ssa_name): Add field 'value_range'.
	(PHI_REWRITTEN): Remove.
	(struct tree_phi_node): Remove field 'rewritten'.
	* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
	-ftree-store-copy-prop): Document.
	* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
	Document usage of update_ssa.

testsuite/ChangeLog

	* g++.dg/tree-ssa/pr18178.C: New test.
	* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
	* gcc.c-torture/execute/20041019-1.c: New test.
	* gcc.dg/tree-ssa/20041008-1.c: New test.
	* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
	* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
	* gcc.dg/tree-ssa/20030917-1.c: Likewise.
	* gcc.dg/tree-ssa/20030917-3.c: Likewise.
	* gcc.dg/tree-ssa/20040721-1.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
	* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.

From-SVN: r97884
2005-04-08 21:37:54 -04:00
GCC Administrator
45f9480e29 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r97880.2
2005-04-09 00:16:27 +00:00
Paolo Carlini
eaf727f9d8 re PR libstdc++/20909 (incorrect floating point format)
2005-04-08  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/20909
	* include/bits/locale_facets.tcc (num_put<>::_M_insert_float):
	Don't even try to group numbers like 2e20, i.e., no decimal
	point, scientific notation.
	* testsuite/22_locale/num_put/put/char/20909.cc: New.
	* testsuite/22_locale/num_put/put/wchar_t/20909.cc: Likewise.

From-SVN: r97873
2005-04-09 00:08:58 +00:00
David Edelsohn
334269b9dd re PR target/20814 (ICE in extract_insn for test vmx/varargs-1.c)
PR target/20814
        * config/rs6000/predicates.md (altivec_register_operand): Accept
        SUBREG.
        (and64_operand): Do not limit CONST_INT to mask64_operand.
        (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
        (and_operand): Do not limit CONST_INT to mask_operand.

From-SVN: r97872
2005-04-08 19:42:06 -04:00
Mike Stump
de2ab0ca8b rs6000.c (rs6000_emit_prologue): Use 5 nops, instead of 4.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
        instead of 4.

From-SVN: r97871
2005-04-08 23:30:23 +00:00
Hans-Peter Nilsson
797e15eb88 re PR rtl-optimization/20466 (Missed invalidation of known memory contents in flow2...)
PR rtl-optimization/20466
	* flow.c (invalidate_mems_from_set): Handle a MEM by checking it
	for overlap of the address of each list member.
	(mark_set_1): Call invalidate_mems_from_set for MEMs too.

From-SVN: r97870
2005-04-08 23:21:07 +00:00
Hans-Peter Nilsson
69ea8c65c9 re PR rtl-optimization/20466 (Missed invalidation of known memory contents in flow2...)
PR rtl-optimization/20466
	* gcc.c-torture/execute/pr20466-1.c: New test.

From-SVN: r97869
2005-04-08 23:18:32 +00:00
Kelley Cook
0cb7f060b2 acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Define _GLIBCXX_ASM_SYMVER.
2005-04-08  Kelley Cook  <kcook@gcc.gnu.org>

	* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Define _GLIBCXX_ASM_SYMVER.
	* acconfig.h: Delete file.
	* Makefile.in, acinclude.m4, configure: Regenerate.

From-SVN: r97868
2005-04-08 23:09:32 +00:00
Mike Stump
ad6aaeb698 * config/darwin.c (indirect_data): Fix typo in strncmp logic.
From-SVN: r97866
2005-04-08 22:53:31 +00:00
Mike Stump
b5969637ac Fix typo.
From-SVN: r97862
2005-04-08 22:00:58 +00:00
Kelley Cook
42dedaee7c linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): New macro.
2005-04-08  Kelley Cook  <kcook@gcc.gnu.org>

	* linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): New macro.
	(GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1,
	GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2,
	GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3,
	GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1,
	GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Use it.
	(GLIBCXX_CHECK_MATH_SUPPORT): Delete obsolete comment.
	* acconfig.h: Delete redundant macros.
	* config.h.in, configure: Regenerate.

From-SVN: r97861
2005-04-08 21:54:31 +00:00
Kelley Cook
3df45831d7 linkage.m4 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Eliminate a subshell and if test fails...
2005-04-08  Kelley Cook  <kcook@gcc.gnu.org>

	* linkage.m4 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Eliminate
	a subshell and if test fails, test for same functions with
	leading underscore.
	(GLIBCXX_CHECK_MATH_SUPPORT): Eliminate seperate checks for _funcs.
	* configure: Regenerate.

From-SVN: r97860
2005-04-08 21:29:13 +00:00
Mark Mitchell
d411365616 re PR c++/20905 (confuses unrelated type name with instance name)
PR c++/20905
	* parser.c (cp_parser_type_specifier_seq): Add is_condition
	parameter.
	(cp_parser_new_type_id): Pass it.
	(cp_parser_condition): Likewise.
	(cp_parser_conversion_type_id): Likewise.
	(cp_parser_type_id): Likewise.
	(cp_parser_type_specifier_seq): In a condition, do not allow
	invalid type-specifier combinations.
	(cp_parser_exception_declaration): Adjust call to
	cp_parser_type_specifier_seq.

	PR c++/20905
	* g++.dg/parse/cond2.C: New test.

From-SVN: r97857
2005-04-08 21:13:57 +00:00
Mark Mitchell
12af7ba340 re PR c++/20145 (template "class has virtual functions ... " is not suppressed with -isystem)
* cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
	* cp-tree.h (struct tinst_level): Add in_system_header_p.
	(TINST_IN_SYSTEM_HEADER_P): New macro.
	(make_tinst_level): Remove.
	* pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
	the instantiated class.
	(push_tinst_level): Do not use make_tinst_level.  Set
	TINST_IN_SYSTEM_HEADER_P.
	(pop_tinst_level): Likewise.
	(instantiate_class_template): Set in_system_header.
	(instantiate_pending_templates): Likewise.
	* tree.c (make_tinst_level): Remove.

	PR c++/20145
	* g++.dg/warn/Wdtor1.C: New test.

From-SVN: r97854
2005-04-08 19:39:59 +00:00
Eric Botcazou
01d87b6f3d backspace.c (unformatted_backspace): Do not dereference the pointer to the stream.
* io/backspace.c (unformatted_backspace): Do not dereference
	the pointer to the stream.

From-SVN: r97851
2005-04-08 19:07:54 +00:00
Kazu Hirata
9ff7d88e0f * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
From-SVN: r97849
2005-04-08 18:47:40 +00:00
Diego Novillo
f55e72cef7 * match.c (gfc_match_arithmetic_if): Declare static.
From-SVN: r97846
2005-04-08 14:05:38 -04:00
Danny Smith
1ae4835877 re PR libstdc++/20806 (basic_filebuf::xsgetn() fails with text mode and DOS line endings and large buffers)
2005-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
	    Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/20806
	* config/os/mingw32/os_defines.h: Define
	_GLIBCXX_HAVE_DOS_BASED_FILESYSTEM.
	* config/os/newlib/os_defines.h: Likewise, for __CYGWIN__.
	* include/bits/fstream.tcc (basic_filebuf<>::showmanyc()):
	Use it.
	(basic_filebuf<>::xsgetn(_CharT*, streamsize)): Likewise.

Co-Authored-By: Paolo Carlini <pcarlini@suse.de>

From-SVN: r97842
2005-04-08 17:31:33 +00:00
Kazu Hirata
db77171de4 genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
* genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
	(check_attr_value, write_attr_get, write_expr_attr_cache,
	find_attr, make_internal_attr): Don't reference negative_ok or
	unsigned_p.
	* genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
	ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
	(ATTR_STATIC): Adjust the value.

From-SVN: r97841
2005-04-08 17:20:15 +00:00
Kazu Hirata
54c1f9206d * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
From-SVN: r97840
2005-04-08 17:13:31 +00:00
Kazu Hirata
df696025bc * function.h (nonlocal_labels): Remove.
From-SVN: r97839
2005-04-08 17:12:03 +00:00
Kazu Hirata
bdad3e2df6 function.h (function): Remove instrument_entry_exit.
* function.h (function): Remove instrument_entry_exit.
	(current_function_instrument_entry_exit): Remove.

From-SVN: r97838
2005-04-08 17:10:37 +00:00
Kazu Hirata
5acbdd12d9 function.c (push_function_context_to): Don't set contains_functions.
* function.c (push_function_context_to): Don't set
	contains_functions.
	* function.h (function): Remove contains_functions.
	(current_function_contains_functions): Remove.

From-SVN: r97837
2005-04-08 17:09:20 +00:00
Kazu Hirata
da25d93e46 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
From-SVN: r97836
2005-04-08 17:07:49 +00:00
Ulrich Weigand
937d85bac5 * config/s390/tpf.h (ASM_SPEC): Define.
From-SVN: r97832
2005-04-08 16:59:40 +00:00
Kazu Hirata
e7e094467b tree-flow.h: Remove the prototype for redirect_immediate_uses.
* tree-flow.h: Remove the prototype for
	redirect_immediate_uses.
	(TDFA_USE_OPS, TDFA_USE_VOPS): Remove.

From-SVN: r97830
2005-04-08 15:32:38 +00:00
Richard Earnshaw
b4a58f80ff arm.c (arm_const_double_by_parts): New function.
* arm.c (arm_const_double_by_parts): New function.
	* arm-protos.h (arm_const_double_by_parts): Add prototype.
	* arm.md (define_split for 64-bit constants): Add another one.

From-SVN: r97828
2005-04-08 13:34:27 +00:00
Andrew MacLeod
3623aa7017 tree-ssa-operands.c (correct_use_link): Remove linear scan.
2005-04-08  Andrew MacLeod  <amacleod@redhat.com>

	* tree-ssa-operands.c (correct_use_link): Remove linear scan.

From-SVN: r97827
2005-04-08 13:09:26 +00:00
Kaveh R. Ghazi
627aa08ae9 * system.h: Revert last change.
From-SVN: r97826
2005-04-08 11:23:32 +00:00
Francois-Xavier Coudert
43e1c5f720 re PR fortran/17229 (parser confused by arithmetic if inside an if)
PR fortran/17229

	* match.c (gfc_match_arithmetic_if): New function to match an
	arithmetic IF statement.
	(gfc_match_if): Use gfc_match_arithmetic_if to match an
	arithmetic IF statement embedded in a simple IF statement.

	* gfortran.dg/pr17229.f: New test.

From-SVN: r97825
2005-04-08 10:56:59 +00:00
Richard Sandiford
66beb87a64 * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
(MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
	(TARGET_SWITCHES): Delete.
	* config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
	* config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
	TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
	* config/xtensa/xtensa.opt: New file.

From-SVN: r97822
2005-04-08 07:57:27 +00:00
Ben Elliston
1a269cbb57 fp-bit.c: Include L_mul_tf in #endif comment.
* config/fp-bit.c: Include L_mul_tf in #endif comment.
	* config/fp-bit.h: Tidy comments.

From-SVN: r97819
2005-04-08 11:51:00 +10:00
Kelley Cook
bffc79099a acconfig.h: Sort the bottom section.
2005-04-08  Kelley Cook  <kcook@gcc.gnu.org>

	* acconfig.h: Sort the bottom section.
	* config.h.in: Regenerate.

From-SVN: r97818
2005-04-08 01:23:25 +00:00
Kelley Cook
2d5feb1680 acconfig.h: Remove redundant HAVE_FLOAT_H.
2005-04-08  Kelley Cook  <kcook@gcc.gnu.org>

	* acconfig.h: Remove redundant HAVE_FLOAT_H.
	* config.h.in: Regenerate.

From-SVN: r97817
2005-04-08 01:05:01 +00:00
Kaveh R. Ghazi
d502f210b9 system.h: Poison PARAMS.
* system.h: Poison PARAMS.

java:
	* java-tree.h: Don't use PARAMS().

From-SVN: r97816
2005-04-08 01:02:59 +00:00
Kelley Cook
3a24bf5d16 configure.ac: Create template for PACKAGE and VERSION.
2005-04-08  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.ac: Create template for PACKAGE and VERSION.
	Update comment on how to regenerate file.  Update minimum
	automake version to 1.9.3.
	* acconfig.h: Remove PACKAGE and VERSION.
	* aclocal.m4, configure, Makefile.in, po/Makefile.in,
	src/Makefile.in, include/Makefile.in, libmath/Makefile.in,
	testsuite/Makefile.in, config.h.in: Regenerate.

From-SVN: r97815
2005-04-08 00:59:08 +00:00