aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@redhat.com>2004-08-18 18:21:23 +0000
committerDiego Novillo <dnovillo@gcc.gnu.org>2004-08-18 14:21:23 -0400
commit50dc9a88c1edf862816c804f8ea93443d257180c (patch)
tree44097e1b0caa8eb28b72d009d6ad0158ac4c06a9 /gcc/tree-flow.h
parentbb0452b18763a8aa8e082a289ae5848a1753ba3e (diff)
downloadgcc-50dc9a88c1edf862816c804f8ea93443d257180c.zip
gcc-50dc9a88c1edf862816c804f8ea93443d257180c.tar.gz
gcc-50dc9a88c1edf862816c804f8ea93443d257180c.tar.bz2
tree-dfa.c (add_referenced_var): Only global variables are call-clobbered.
* tree-dfa.c (add_referenced_var): Only global variables are call-clobbered. * tree-flow.h (struct ptr_info_def): Add field pt_global_mem. * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark all pointers dereferenced if the statement dereferences them. (create_name_tags): Do not create memory tags for pointers that have PT_ANYTHING set. Also check if PT_VARS is not empty before creating a name tag. (compute_flow_sensitive_aliasing): Don't mark call-clobbered variables that share the same alias set with a pointer that may point anywhere. (add_may_alias): Add FIXME comment to remove clobbering aliased variables and tags. (replace_may_alias): Likewise. (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED. (merge_pointed_to_info): If the original variable has not points-to information, call set_pt_anything. (add_pointed_to_var): Do not prevent adding a pointed-to variable if the pointers is PT_ANYTHING. If the variable is a global, set PT_GLOBAL_MEM. (collect_points_to_info_r): Don't assume that PLUS_EXPRs of pointer type only come in PTR+OFFSET flavours. Always call merge_pointed_to_info on PHI arguments that are SSA_NAMEs. (get_nmt_for): Mark call-clobbered tags whose pointer points to global memory. * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch values. (get_indirect_ref_operands): Always clear OPF_KILL_DEF from FLAGS. (add_stmt_operand): Abort if the caller tried to add a killing definition for a memory tag. * tree-ssa.c (verify_flow_sensitive_alias_info): Remove unnecessary checks. From-SVN: r86198
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index 0e60e41..ca5897a 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -62,6 +62,9 @@ struct ptr_info_def GTY(())
/* Nonzero if this pointer is dereferenced. */
unsigned int is_dereferenced : 1;
+ /* Nonzero if this pointer points to a global variable. */
+ unsigned int pt_global_mem : 1;
+
/* Set of variables that this pointer may point to. */
bitmap pt_vars;