summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-structalias.h
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-25 14:11:36 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-25 14:11:36 +0000
commita478a5219d05fc79bc663945608242e077deafd4 (patch)
treecd992f56010b4612bd7ca96d7b77a5d5b92fcc04 /gcc/tree-ssa-structalias.h
parent01c31ba16c455101bc342908a14e25210457e05d (diff)
downloadgcc-a478a5219d05fc79bc663945608242e077deafd4.tar.gz
* tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
(struct alias_info): Add new field ref_all_symbol_mem_tag. * tree-ssa-alias.c (compute_may_aliases): If the program contains ref-all pointers, run a finalization pass for them. (compute_flow_insensitive_aliasing): Skip ref-all pointers. (finalize_ref_all_pointers): New function. (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a regular pointer type to a ref-all pointer type. (get_tmt_for): Return the special memory tag for ref-all pointers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114116 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-structalias.h')
-rw-r--r--gcc/tree-ssa-structalias.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/tree-ssa-structalias.h b/gcc/tree-ssa-structalias.h
index 46fe0c13ad0..5283202e9f8 100644
--- a/gcc/tree-ssa-structalias.h
+++ b/gcc/tree-ssa-structalias.h
@@ -22,6 +22,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#ifndef TREE_SSA_STRUCTALIAS_H
#define TREE_SSA_STRUCTALIAS_H
+/* True if the data pointed to by PTR can alias anything. */
+#define PTR_IS_REF_ALL(PTR) TYPE_REF_CAN_ALIAS_ALL (TREE_TYPE (PTR))
+
struct constraint;
typedef struct constraint *constraint_t;
@@ -64,6 +67,9 @@ struct alias_info
/* Pointers that have been used in an indirect load operation. */
bitmap dereferenced_ptrs_load;
+
+ /* Memory tag for all the PTR_IS_REF_ALL pointers. */
+ tree ref_all_symbol_mem_tag;
};
/* Keep track of how many times each pointer has been dereferenced in