gcc/gcc ChangeLog.tree-ssa Makefile.in tree-df ...
dnovillo@gcc.gnu.org
dnovillo@gcc.gnu.org
Sun Mar 23 05:29:00 GMT 2003
CVSROOT: /cvs/gcc
Module name: gcc
Branch: tree-ssa-20020619-branch
Changes by: dnovillo@gcc.gnu.org 2003-03-23 05:29:27
Modified files:
gcc : ChangeLog.tree-ssa Makefile.in tree-dfa.c
tree-flow.h tree-ssa-ccp.c tree-ssa.c
Log message:
* Makefile.in (gtype-desc.o): Add dependency on $(TREE_FLOW_H).
* tree-dfa.c (struct alias_set_d): Add field 'num_elements'.
(struct walk_state): Move declaration earlier in the file.
(create_global_var): New local function.
(num_referenced_vars, num_aliased_objects): Change type to
'size_t'. Update all users.
(aliased_objects, aliased_objects_base, aliased_objects_aliase_set):
Mark for garbage collection.
(num_call_clobbered_vars, call_clobbered_vars): New global
variable.
(get_expr_operands): For CALL_EXPRs, add a VUSE or VDEF reference
for every pointer argument. If the call may clobber, add a VDEF,
otherwise add a VUSE.
If the call may clobber, add VDEF for GLOBAL_VAR.
(dump_variable): Show whether the variable is call clobbered.
(dump_dfa_stats): Show call clobbered variables.
(compute_may_aliases): Minor formatting changes.
(compute_alias_sets): If the function makes clobbering calls, add
GLOBAL_VAR as an alias to every call-clobbered variable.
Remove alias sets that have exactly one element.
(register_alias_set): Set 'num_elements' to zero for every newly
created alias set.
(find_alias_for): Don't make a second call to add_may_alias to make
alias tags alias themselves. It's redundant.
Increment 'num_elements' when adding a new alias to an alias set.
(may_alias_p): Don't handle GLOBAL_VAR.
Check for structure aliasing when either PTR or VAR are a
structure. Don't do it only when both are structures.
(dump_alias_info): Show all aliases of each variable.
(find_vars_r): When processing a CALL_EXPR node, set
walk_state->is_store if the function may clobber and create a
reference to GLOBAL_VAR.
(add_indirect_ref_var): Change type of second argument from 'void *'
to 'struct walk_state *'. Update all users.
(add_referenced_var): Likewise. If a potentially aliased variabe
is not declared 'const', add it to the list of call clobbered
variables.
* tree-flow.h (struct var_ann_d): Add field 'is_call_clobbered'.
Change type of field 'uid' to size_t. Update all users.
(stmt_ann_d): Add field 'makes_clobbering_call'.
(next_tree_ref_id): Remove unused variable.
(call_clobbered_vars): Declare.
(num_call_clobbered_vars): Declare.
(call_clobbered_var): New inline function.
* tree-ssa-ccp.c (visit_phi_node): If the LHS of a PHI node is
volatile, mark the PHI node VARYING without checking its arguments.
(visit_assignment): Likewise.
(set_value): Remove. Update all users.
(likely_value): If the statement makes aliased loads or has
volatile operands, consider it VARYING.
(get_default_value): If a variable is volatile, consider it
VARYING.
* tree-ssa.c (init_tree_ssa): Initialize num_call_clobbered_vars
and call_clobbered_vars.
Do not create GLOBAL_VAR. Set it to NULL_TREE.
Increase initial size for various hash tables.
(delete_tree_ssa): Reset num_call_clobbered_vars and
call_clobbered_vars.
(get_reaching_def): Rename from currdef_for. Update all users.
Always create default definitions for variables that need them.
Callers that use to call currdef_for with the second argument set
to false now call get_value_for.
(htab_statistics): New function.
(dump_tree_ssa): Call it.
(avail_expr_eq): Also compare VUSE operands.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.tree-ssa.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.1.2.279&r2=1.1.2.280
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/Makefile.in.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.903.2.79&r2=1.903.2.80
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-dfa.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.1.4.90&r2=1.1.4.91
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-flow.h.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.1.4.63&r2=1.1.4.64
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-ccp.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.1.2.63&r2=1.1.2.64
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.1.4.57&r2=1.1.4.58
More information about the Gcc-cvs
mailing list