1. 25 Jun, 2005 1 commit
  2. 27 May, 2005 1 commit
    • domwalk.c (walk_dominator_tree, [...]): Use VEC instead of VARRAY. · ea497bb8
      	* domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
      	fini_walk_dominator_tree): Use VEC instead of VARRAY.
      	* domwalk.h (dom_walk_data): Change the type of
      	block_data_stack and free_block_data to VEC(void_p,heap)*.
      	* tree-ssa-dse.c (dse_initialize_block_local_data,
      	dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
      	VEC instead of VARRAY.
      
      From-SVN: r100281
      Kazu Hirata committed
  3. 28 Apr, 2005 1 commit
    • attribs.c, [...]: Update copyright. · fe9565ed
      	* attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
      	coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
      	errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
      	genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
      	integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
      	machmode.def, mips-tfile.c, params.c, pretty-print.c,
      	print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
      	tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
      	config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
      	config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
      	config/i386/cygming.h, config/i386/djgpp.h,
      	config/i386/lynx.h, config/i386/netware.c,
      	config/i386/winnt.c, config/ia64/ia64-c.c,
      	config/iq2000/iq2000.c, config/m32r/little.h,
      	config/m68k/m68k-protos.h, config/m68k/m68k.h,
      	config/m68k/m68k.md, config/mcore/mcore.c,
      	config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
      	config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
      	config/mn10300/mn10300.h, config/ns32k/netbsd.h,
      	config/ns32k/ns32k.c, config/ns32k/ns32k.h,
      	config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
      	config/pdp11/pdp11.h, config/rs6000/darwin.h,
      	config/rs6000/default64.h, config/rs6000/rs6000-c.c,
      	config/s390/2064.md, config/s390/2084.md,
      	config/s390/s390-modes.def, config/s390/s390-protos.h,
      	config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
      	config/stormy16/stormy16.c, config/vax/vax-protos.h,
      	config/vax/vax.c, config/vax/vax.h,
      	config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
      	copyright.
      
      From-SVN: r98914
      Kazu Hirata committed
  4. 09 Apr, 2005 1 commit
    • backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols. · 0bca51f0
      	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
      Diego Novillo committed
  5. 13 Nov, 2004 1 commit
  6. 22 Oct, 2004 1 commit
    • alias.c, [...]: Fix comment formatting. · 471854f8
      	* alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
      	final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
      	lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
      	pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
      	tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
      	tree-scalar-evolution.c, tree-ssa-dom.c,
      	tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
      	tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
      	tree-vectorizer.c, vec.h: Fix comment formatting.
      
      From-SVN: r89453
      Kazu Hirata committed
  7. 18 Sep, 2004 1 commit
    • alias.c, [...]: Fix comment typos. · 454ff5cb
      	* alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
      	gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
      	optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
      	tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
      	tree-ssa-operands.c, tree-ssa-phiopt.c,
      	tree-ssa-threadupdate.c: Fix comment typos.
      
      From-SVN: r87707
      Kazu Hirata committed
  8. 12 Jun, 2004 1 commit
    • configure.ac: Don't invoke ACX_HEADER_STDBOOL. · 2fac9c01
      gcc:
      	* configure.ac: Don't invoke ACX_HEADER_STDBOOL.
      	* configure, config.in: Regenerate.
      	* system.h: Unconditionally define bool as unsigned char,
      	BOOL_BITFIELD as unsigned int.
      	* domwalk.h: Use BOOL_BITFIELD.
      libcpp:
      	* configure.ac: Don't invoke ACX_HEADER_STDBOOL.
      	* configure, config.in: Regenerate.
      	* system.h: Unconditionally define bool as unsigned char,
      	BOOL_BITFIELD as unsigned int.
      	* .cvsignore: New file.
      
      From-SVN: r83020
      Zack Weinberg committed
  9. 13 May, 2004 1 commit