From 306fa91bda69b9ebb411876fa7ac54532c63e3f7 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 26 Oct 2015 10:47:00 +0000 Subject: Add vars in intra_create_variables_info 2015-10-26 Tom de Vries * tree-ssa-structalias.c (intra_create_variable_infos): Add restrict_pointer_p and recursive_restrict_p variables. From-SVN: r229323 --- gcc/ChangeLog | 5 +++++ gcc/tree-ssa-structalias.c | 12 +++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b9ddd7..e4a8b88 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2015-10-26 Tom de Vries + * tree-ssa-structalias.c (intra_create_variable_infos): Add + restrict_pointer_p and recursive_restrict_p variables. + +2015-10-26 Tom de Vries + * tree-ssa-structalias.c (intra_create_variable_infos): Inline get_vi_for_tree call. diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index c5a7e2a..1e1ae95 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -5857,6 +5857,11 @@ intra_create_variable_infos (struct function *fn) passed-by-reference argument. */ for (t = DECL_ARGUMENTS (fn->decl); t; t = DECL_CHAIN (t)) { + bool restrict_pointer_p = (POINTER_TYPE_P (TREE_TYPE (t)) + && TYPE_RESTRICT (TREE_TYPE (t))); + bool recursive_restrict_p + = (restrict_pointer_p + && !type_contains_placeholder_p (TREE_TYPE (TREE_TYPE (t)))); varinfo_t p = lookup_vi_for_tree (t); if (p == NULL) { @@ -5868,9 +5873,7 @@ intra_create_variable_infos (struct function *fn) the pointed-to object. Note that this ends up handling out-of-bound references conservatively by aggregating them in the first/last subfield of the object. */ - if (POINTER_TYPE_P (TREE_TYPE (t)) - && TYPE_RESTRICT (TREE_TYPE (t)) - && !type_contains_placeholder_p (TREE_TYPE (TREE_TYPE (t)))) + if (recursive_restrict_p) { varinfo_t vi; tree heapvar = build_fake_var_decl (TREE_TYPE (TREE_TYPE (t))); @@ -5890,8 +5893,7 @@ intra_create_variable_infos (struct function *fn) continue; } - if (POINTER_TYPE_P (TREE_TYPE (t)) - && TYPE_RESTRICT (TREE_TYPE (t))) + if (restrict_pointer_p) make_constraint_from_global_restrict (p, "PARM_RESTRICT"); else { -- cgit v1.1