This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

r115232 - in /branches/mem-ssa/gcc: ChangeLog.m...


Author: dnovillo
Date: Thu Jul  6 21:40:33 2006
New Revision: 115232

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115232
Log:

	* tree-ssa-operands.h (SSA_OPERAND_MEMORY_SIZE): Increase buffer size.
	(get_loads_and_stores): Declare.
	(push_stmt_changes): Declare.
	(pop_stmt_changes): Declare.
	(enum):
	* doc/tree-ssa.texi: Update documentation for virtual operands
	and the use of push_stmt_changes/pop_stmt_changes.
	* doc/invoke.texi: Remove documentation for params
	global-var-threshold and max-aliased-vops.
	* tree-into-ssa.c (stale_ssa_names): New local variable.
	(struct mem_syms_map_d): Declare.
	(mem_syms_map_t): Declare.
	(mem_syms_tbl): New local variable.
	(set_livein_block): Check for empty def blocks set.
	(symbol_marked_for_renaming): Remove superfluous DECL_P assert.
	(add_new_name_mapping): Do not add .MEM to the set of virtual names.
	(mem_syms_hash): New.
	(mem_syms_eq): New.
	(mem_syms_free): New.
	(syms_referenced_by): New.
	(mark_def_sites): Process memory symbols loaded/stored separately.
	(register_new_def): Use BLOCK_DEFS_STACK directly.  Update callers.
	Deal with mismatched symbols when SYM is not a GIMPLE register.
	(rewrite_initialize_block): Assert that we are not dealing
	with .MEM.
	(get_reaching_def): For non-GIMPLE registers use .MEM's
	default definition when necessary.
	(rewrite_memory_stmt): New.
	(rewrite_stmt): Call it when dealing with memory statements.
	(rewrite_finalize_block): Take the symbol for virtual
	SSA_NAMEs from the next slot in the stack.
	(dump_defs_stack): New.
	(debug_defs_stack): New.
	(dump_currdefs): New.
	(debug_currdefs): New.
	(dump_tree_ssa): Call dump_def_blocks, dump_defs_stack and
	dump_currdefs.
	(debug_def_blocks_r): Also show PHI_BLOCKS.
	(dump_def_blocks): New.
	(debug_def_blocks): Call it.
	(maybe_replace_use): Do not handle memory symbols.
	(maybe_register_def): Likewise.
	(name_marked_for_release_p): New.
	(mark_ssa_name_stale): New.
	(stale_ssa_name_p): New.
	(preserve_needed_names_in_vops): New.
	(rewrite_update_stmt_vops): New.
	(register_new_vdef_name): New.
	(rewrite_update_memory_stmt): New.
	(rewrite_update_stmt): Call it.
	(rewrite_update_phi_arguments): Use the LHS of the PHI node
	when the argument is a memory symbol.
	(rewrite_blocks): Move code to delete DEF_BLOCKS to
	fini_ssa_renamer.
	(mark_def_site_blocks): Move DEF_BLOCKS and current def
	initialization to init_ssa_renamer.
	(init_ssa_renamer): New.
	(fini_ssa_renamer): New.
	(rewrite_into_ssa): Call them.
	(prepare_block_for_update): Call syms_referenced_by to process
	memory symbols in the statement.
	(dump_update_ssa): Show SSA names made stale by renaming
	process.
	(init_update_ssa): Initialize STALE_SSA_NAMES.
	(delete_update_ssa): Free STALE_SSA_NAMES.
	Call fini_ssa_renamer.
	(mark_sym_for_renaming): Reject .MEM.
	Add temporary workaround when marking symbols with sub-vars.
	(mark_set_for_renaming): Likewise.
	(release_ssa_name_after_update_ssa): Call init_update_ssa if
	needed.
	(replace_stale_ssa_names): New.
	(update_ssa): Call init_ssa_renamer.
	Call replace_stale_ssa_names if needed.
	* tree-ssa-loop-im.c (rewrite_mem_refs): Call
	get_loads_and_stores to gather memory symbols from a statement.
	(gather_mem_refs_stmt): Likewise.
	* tree-complex.c (update_all_vops): Remove.
	(expand_complex_move): Call mark_symbols_for_renaming.
	* tree-pretty-print.c (dump_generic_node): Show (D) for
	default SSA names.
	(dump_vops): Show all VUSE/VDEF operands in one line.
	* tree.c (is_global_var): Call may_be_aliased.
	* tree.h (struct tree_memory_tag): Remove field is_used_alone.
	Update all users.
	(SMT_USED_ALONE): Remove.  Update all users.
	* tree-pass.h (PROP_smt_usage): Remove.  Update all users.
	* params.h (GLOBAL_VAR_THRESHOLD): Remove.  Update all users.
	(MAX_ALIASED_VOPS): Remove.  Update all users.
	* tree-ssa-dse.c (gate_dse): Temporarily disable.

	* tree-stdarg.c (check_all_va_list_escapes): Call
	get_loads_and_stores to gather memory symbols from the
	statement.
	* tree-ssa-dom.c (stmts_to_rescan): Change to stack of
	'tree *' instead of 'tree'.  Update all users.
	* tree-nrv.c (execute_return_slot_opt): Use
	get_loads_and_stores to gather memory symbols referenced.
	* tree-ssa-alias.c (struct alias_map_d): Remove field
	grouped_p.  Update all users.
	(updating_used_alone): Remove.  Update all users.
	(lhs_may_store_to): Remove.  Update all users.
	(recalculate_used_alone): Remove.  Update all users.
	(total_alias_vops_cmp): Remove.  Update all users.
	(group_aliases_into): Remove.  Update all users.
	(group_aliases): Remove.  Update all users.
	(maybe_create_global_var): Create only if there are no global
	variables and a mix of pure and non-pure function call sites.
	(compute_may_aliases): Remove stale documentation.
	(replace_may_alias): Remove.  Update all users.
	(may_be_aliased): Call is_global_var.
	* tree-dfa.c (mark_symbols_for_renaming): Rename from
	mark_new_vars_to_rename.  Update all users.
	Call get_loads_and_stores to gather memory symbols.
	(find_new_referenced_vars):
	* tree-ssa-pre.c (gate_pre): Temporarily disable.
	* tree-sra.c (sra_replace): Mark virtual SSA names to be
	released after update_ssa.
	* tree-ssa-copy.c (may_propagate_copy): Handle .MEM.
	(merge_alias_info): Likewise.
	* tree-ssa.c (verify_ssa_name):
	(verify_ssa): Only check VDEFs if aliases have been computed
	and the statement has no volatile operands.
	(create_mem_var): New.
	(delete_tree_ssa): Tidy.
	* tree-vect-transform.c (vectorizable_store): Call
	get_loads_and_stores to gather memory symbols.
	* tree-flow.h (struct var_ann_d): Remove fields in_vuse_list
	and in_vdef_list.
	(mem_var): Declare.
	(register_new_def): Remove.
	(recalculate_used_alone): Remove.
	(updating_used_alone): Remove.
	* tree-ssa-structalias.c (update_alias_info): Use
	get_loads_and_stores to gather memory symbols.
	* params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove.
	(PARAM_MAX_ALIASED_VOPS): Remove.
	* tree-ssanames.c (replace_ssa_name_symbol): Assert that we
	are not trying to replace .MEM.
	* tree-ssa-operands.c (mem_var): Declare.
	(opf_implicit): Rename from opf_non_specific.  Update all
	users.
	(opf_def): Rename from opf_is_def.
	(opf_use): Rename from opf_none.
	(loaded_syms): New local variable.
	(stored_syms): New local variable.
	(struct scb_d): Declare.
	(scb_t): Define.
	(scb_stack): New local variable.
	(gathering_loads_stores): New.
	(init_ssa_operands): Initialize scb_stack.
	(fini_ssa_operands): Free scb_stack.
	(truncate_ssa_stmt_operands): New.
	(ssa_operand_alloc): Assert that size fits in
	SSA_OPERAND_MEMORY_SIZE.
	(realloc_vdef): Terminate operand linked list.
	(realloc_vuse): Likewise.
	(finalize_ssa_vdef_ops): Do not handle more than one VDEF.
	(finalize_ssa_vuse_ops): Likewise.
	(finalize_ssa_vuses): Do not look for superfluous VUSE
	operands.
	(append_vdef): Do not add more than a single VDEF.
	(append_vuse): Likewise.
	(add_virtual_operand): Remove.  Update all users.
	(add_virtual_operator): New.
	(add_mem_symbol): New.
	(add_mem_symbols_in_decl): New.
	(get_mem_symbols_in_tag): New.
	(get_mem_symbols_in_indirect_ref): Rename from
	get_indirect_ref_operands.  Move tag processing code to
	get_mem_symbols_in_tag.
	(get_mem_symbols_in_aggregate): New.
	(get_mem_symbols_in_tmr): New.
	(add_call_clobbered_mem_symbols): Rename from
	add_call_clobber_ops.
	(add_call_read_mem_symbols): Rename from add_call_read_ops.
	(get_call_expr_operands): Call add_call_clobbered_mem_symbols
	and add_call_read_mem_symbols.
	(get_asm_expr_operands): Call add_mem_symbols_in_decl when
	gathering loads and stores.
	Only add a single VDEF/VUSE when not gathering loads/stores.
	(get_aggregate_operands): Extract from get_expr_operands.
	Call get_mem_symbols_in_aggregate when gathering loads/stores.
	(get_expr_operands) <case ADDR_EXPR>: Return early if
	gathering loads/stores.
	<case STRUCT_FIELD_TAG>: Remove.
	<case SYMBOL_MEMORY_TAG>: Remove.
	<case NAME_MEMORY_TAG>: Remove.
	<case VAR_DECL>: Do not handle sub-variables.
	(update_stmt_operands): Assert that we are not gathering loads
	and stores.
	(copy_virtual_operands): Do not look for more than one
	VDEF/VUSE.
	(create_ssa_artficial_load_stmt): Likewise.
	(dump_loads_and_stores): New.
	(debug_loads_and_stores): New.
	(get_loads_and_stores_for_phi): New.
	(get_loads_and_stores): New.
	(push_stmt_changes): New.
	(mark_difference_for_renaming): New.
	(pop_stmt_changes): New.


testsuite/ChangeLog.mem-ssa

	* gcc.dg/tree-ssa/pr23382.c: Update for mem-ssa
	patterns.
	* gcc.dg/tree-ssa/20040302-1.c: Remove use of --param 
	global-var-threshold.



Modified:
    branches/mem-ssa/gcc/ChangeLog.mem-ssa
    branches/mem-ssa/gcc/doc/invoke.texi
    branches/mem-ssa/gcc/doc/tree-ssa.texi
    branches/mem-ssa/gcc/params.def
    branches/mem-ssa/gcc/params.h
    branches/mem-ssa/gcc/passes.c
    branches/mem-ssa/gcc/testsuite/ChangeLog.mem-ssa
    branches/mem-ssa/gcc/testsuite/gcc.dg/tree-ssa/20040302-1.c
    branches/mem-ssa/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
    branches/mem-ssa/gcc/tree-cfg.c
    branches/mem-ssa/gcc/tree-complex.c
    branches/mem-ssa/gcc/tree-dfa.c
    branches/mem-ssa/gcc/tree-flow.h
    branches/mem-ssa/gcc/tree-into-ssa.c
    branches/mem-ssa/gcc/tree-nrv.c
    branches/mem-ssa/gcc/tree-pass.h
    branches/mem-ssa/gcc/tree-pretty-print.c
    branches/mem-ssa/gcc/tree-sra.c
    branches/mem-ssa/gcc/tree-ssa-alias.c
    branches/mem-ssa/gcc/tree-ssa-ccp.c
    branches/mem-ssa/gcc/tree-ssa-copy.c
    branches/mem-ssa/gcc/tree-ssa-dce.c
    branches/mem-ssa/gcc/tree-ssa-dom.c
    branches/mem-ssa/gcc/tree-ssa-dse.c
    branches/mem-ssa/gcc/tree-ssa-forwprop.c
    branches/mem-ssa/gcc/tree-ssa-loop-im.c
    branches/mem-ssa/gcc/tree-ssa-loop-ivopts.c
    branches/mem-ssa/gcc/tree-ssa-loop-prefetch.c
    branches/mem-ssa/gcc/tree-ssa-operands.c
    branches/mem-ssa/gcc/tree-ssa-operands.h
    branches/mem-ssa/gcc/tree-ssa-pre.c
    branches/mem-ssa/gcc/tree-ssa-propagate.c
    branches/mem-ssa/gcc/tree-ssa-structalias.c
    branches/mem-ssa/gcc/tree-ssa.c
    branches/mem-ssa/gcc/tree-ssanames.c
    branches/mem-ssa/gcc/tree-stdarg.c
    branches/mem-ssa/gcc/tree-vect-transform.c
    branches/mem-ssa/gcc/tree-vrp.c
    branches/mem-ssa/gcc/tree.c
    branches/mem-ssa/gcc/tree.h


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]